4 * GDI device driver interface
6 * This file is part of the w32api package.
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
27 #error video.h cannot be included with winddi.h
37 #ifndef DECLSPEC_IMPORT
38 #define DECLSPEC_IMPORT __attribute__((dllimport))
42 #define WIN32KAPI DECLSPEC_ADDRSAFE
45 #define DDI_DRIVER_VERSION_NT4 0x00020000
46 #define DDI_DRIVER_VERSION_SP3 0x00020003
47 #define DDI_DRIVER_VERSION_NT5 0x00030000
48 #define DDI_DRIVER_VERSION_NT5_01 0x00030100
50 #define GDI_DRIVER_VERSION 0x4000
66 typedef ULONG_PTR HFF
;
67 typedef ULONG_PTR HFC
;
70 typedef PTRDIFF
*PPTRDIFF
;
76 typedef HGLYPH
*PHGLYPH
;
78 typedef LONG_PTR (APIENTRY
*PFN
)();
82 DECLARE_HANDLE(HSURF
);
83 DECLARE_HANDLE(DHSURF
);
84 DECLARE_HANDLE(DHPDEV
);
85 DECLARE_HANDLE(HDRVOBJ
);
88 typedef struct _ENG_EVENT
*PEVENT
;
91 #define OPENGL_CMD 4352
92 #define OPENGL_GETINFO 4353
93 #define WNDOBJ_SETUP 4354
95 #define FD_ERROR 0xFFFFFFFF
96 #define DDI_ERROR 0xFFFFFFFF
98 #define HFF_INVALID ((HFF) 0)
99 #define HFC_INVALID ((HFC) 0)
100 #define HGLYPH_INVALID ((HGLYPH) -1)
102 #define FP_ALTERNATEMODE 1
103 #define FP_WINDINGMODE 2
105 #define DN_ACCELERATION_LEVEL 1
106 #define DN_DEVICE_ORIGIN 2
107 #define DN_SLEEP_MODE 3
108 #define DN_DRAWING_BEGIN 4
112 #define DCR_HALFTONE 2
114 #define GX_IDENTITY 0
119 #define LTOFX(x) ((x) << 4)
120 #define FXTOL(x) ((x) >> 4)
121 #define FXTOLFLOOR(x) ((x) >> 4)
122 #define FXTOLCEILING(x) ((x + 0x0F) >> 4)
123 #define FXTOLROUND(x) ((((x) >> 3) + 1) >> 1)
125 typedef struct _POINTE
{
130 typedef union _FLOAT_LONG
{
133 } FLOAT_LONG
, *PFLOAT_LONG
;
135 typedef struct _POINTFIX
{
138 } POINTFIX
, *PPOINTFIX
;
140 typedef struct _RECTFX
{
147 typedef struct _POINTQF
{
150 } POINTQF
, *PPOINTQF
;
153 typedef struct _BLENDOBJ
{
154 BLENDFUNCTION BlendFunction
;
155 } BLENDOBJ
,*PBLENDOBJ
;
157 /* BRUSHOBJ.flColorType */
158 #define BR_DEVICE_ICM 0x01
159 #define BR_HOST_ICM 0x02
160 #define BR_CMYKCOLOR 0x04
161 #define BR_ORIGCOLOR 0x08
163 typedef struct _BRUSHOBJ
{
169 typedef struct _CIECHROMA
{
175 typedef struct _RUN
{
180 typedef struct _CLIPLINE
{
186 } CLIPLINE
, *PCLIPLINE
;
188 /* CLIPOBJ.iDComplexity constants */
193 /* CLIPOBJ.iFComplexity constants */
198 /* CLIPOBJ.iMode constants */
199 #define TC_RECTANGLES 0
202 /* CLIPOBJ.fjOptions constants */
203 #define OC_BANK_CLIP 1
205 typedef struct _CLIPOBJ
{
214 typedef struct _COLORINFO
{
221 CIECHROMA AlignmentWhite
;
225 LDECI4 MagentaInCyanDye
;
226 LDECI4 YellowInCyanDye
;
227 LDECI4 CyanInMagentaDye
;
228 LDECI4 YellowInMagentaDye
;
229 LDECI4 CyanInYellowDye
;
230 LDECI4 MagentaInYellowDye
;
231 } COLORINFO
, *PCOLORINFO
;
233 /* DEVHTADJDATA.DeviceFlags constants */
234 #define DEVHTADJF_COLOR_DEVICE 0x00000001
235 #define DEVHTADJF_ADDITIVE_DEVICE 0x00000002
237 typedef struct _DEVHTINFO
{
242 } DEVHTINFO
, *PDEVHTINFO
;
244 typedef struct _DEVHTADJDATA
{
248 PDEVHTINFO pDefHTInfo
;
249 PDEVHTINFO pAdjHTInfo
;
250 } DEVHTADJDATA
, *PDEVHTADJDATA
;
252 /* DEVINFO.flGraphicsCaps flags */
253 #define GCAPS_BEZIERS 0x00000001
254 #define GCAPS_GEOMETRICWIDE 0x00000002
255 #define GCAPS_ALTERNATEFILL 0x00000004
256 #define GCAPS_WINDINGFILL 0x00000008
257 #define GCAPS_HALFTONE 0x00000010
258 #define GCAPS_COLOR_DITHER 0x00000020
259 #define GCAPS_HORIZSTRIKE 0x00000040
260 #define GCAPS_VERTSTRIKE 0x00000080
261 #define GCAPS_OPAQUERECT 0x00000100
262 #define GCAPS_VECTORFONT 0x00000200
263 #define GCAPS_MONO_DITHER 0x00000400
264 #define GCAPS_ASYNCCHANGE 0x00000800
265 #define GCAPS_ASYNCMOVE 0x00001000
266 #define GCAPS_DONTJOURNAL 0x00002000
267 #define GCAPS_DIRECTDRAW 0x00004000
268 #define GCAPS_ARBRUSHOPAQUE 0x00008000
269 #define GCAPS_PANNING 0x00010000
270 #define GCAPS_HIGHRESTEXT 0x00040000
271 #define GCAPS_PALMANAGED 0x00080000
272 #define GCAPS_DITHERONREALIZE 0x00200000
273 #define GCAPS_NO64BITMEMACCESS 0x00400000
274 #define GCAPS_FORCEDITHER 0x00800000
275 #define GCAPS_GRAY16 0x01000000
276 #define GCAPS_ICM 0x02000000
277 #define GCAPS_CMYKCOLOR 0x04000000
278 #define GCAPS_LAYERED 0x08000000
279 #define GCAPS_ARBRUSHTEXT 0x10000000
280 #define GCAPS_SCREENPRECISION 0x20000000
281 #define GCAPS_FONT_RASTERIZER 0x40000000
282 #define GCAPS_NUP 0x80000000
284 /* DEVINFO.iDitherFormat constants */
296 /* DEVINFO.flGraphicsCaps2 flags */
297 #define GCAPS2_JPEGSRC 0x00000001
298 #define GCAPS2_xxxx 0x00000002
299 #define GCAPS2_PNGSRC 0x00000008
300 #define GCAPS2_CHANGEGAMMARAMP 0x00000010
301 #define GCAPS2_ALPHACURSOR 0x00000020
302 #define GCAPS2_SYNCFLUSH 0x00000040
303 #define GCAPS2_SYNCTIMER 0x00000080
304 #define GCAPS2_ICD_MULTIMON 0x00000100
305 #define GCAPS2_MOUSETRAILS 0x00000200
306 #define GCAPS2_RESERVED1 0x00000400
308 typedef struct _DEVINFO
{
309 FLONG flGraphicsCaps
;
310 LOGFONTW lfDefaultFont
;
311 LOGFONTW lfAnsiVarFont
;
312 LOGFONTW lfAnsiFixFont
;
317 HPALETTE hpalDefault
;
318 FLONG flGraphicsCaps2
;
319 } DEVINFO
, *PDEVINFO
;
324 (APIENTRY CALLBACK
*FREEOBJPROC
)(
325 IN
struct _DRIVEROBJ
*pDriverObj
);
327 typedef struct _DRIVEROBJ
{
329 FREEOBJPROC pFreeProc
;
334 /* DRVFN.iFunc constants */
335 #define INDEX_DrvEnablePDEV 0L
336 #define INDEX_DrvCompletePDEV 1L
337 #define INDEX_DrvDisablePDEV 2L
338 #define INDEX_DrvEnableSurface 3L
339 #define INDEX_DrvDisableSurface 4L
340 #define INDEX_DrvAssertMode 5L
341 #define INDEX_DrvOffset 6L
342 #define INDEX_DrvResetPDEV 7L
343 #define INDEX_DrvDisableDriver 8L
344 #define INDEX_DrvUnknown1 9L
345 #define INDEX_DrvCreateDeviceBitmap 10L
346 #define INDEX_DrvDeleteDeviceBitmap 11L
347 #define INDEX_DrvRealizeBrush 12L
348 #define INDEX_DrvDitherColor 13L
349 #define INDEX_DrvStrokePath 14L
350 #define INDEX_DrvFillPath 15L
351 #define INDEX_DrvStrokeAndFillPath 16L
352 #define INDEX_DrvPaint 17L
353 #define INDEX_DrvBitBlt 18L
354 #define INDEX_DrvCopyBits 19L
355 #define INDEX_DrvStretchBlt 20L
356 #define INDEX_DrvUnknown2 21L
357 #define INDEX_DrvSetPalette 22L
358 #define INDEX_DrvTextOut 23L
359 #define INDEX_DrvEscape 24L
360 #define INDEX_DrvDrawEscape 25L
361 #define INDEX_DrvQueryFont 26L
362 #define INDEX_DrvQueryFontTree 27L
363 #define INDEX_DrvQueryFontData 28L
364 #define INDEX_DrvSetPointerShape 29L
365 #define INDEX_DrvMovePointer 30L
366 #define INDEX_DrvLineTo 31L
367 #define INDEX_DrvSendPage 32L
368 #define INDEX_DrvStartPage 33L
369 #define INDEX_DrvEndDoc 34L
370 #define INDEX_DrvStartDoc 35L
371 #define INDEX_DrvUnknown3 36L
372 #define INDEX_DrvGetGlyphMode 37L
373 #define INDEX_DrvSynchronize 38L
374 #define INDEX_DrvUnknown4 39L
375 #define INDEX_DrvSaveScreenBits 40L
376 #define INDEX_DrvGetModes 41L
377 #define INDEX_DrvFree 42L
378 #define INDEX_DrvDestroyFont 43L
379 #define INDEX_DrvQueryFontCaps 44L
380 #define INDEX_DrvLoadFontFile 45L
381 #define INDEX_DrvUnloadFontFile 46L
382 #define INDEX_DrvFontManagement 47L
383 #define INDEX_DrvQueryTrueTypeTable 48L
384 #define INDEX_DrvQueryTrueTypeOutline 49L
385 #define INDEX_DrvGetTrueTypeFile 50L
386 #define INDEX_DrvQueryFontFile 51L
387 #define INDEX_DrvMovePanning 52L
388 #define INDEX_DrvQueryAdvanceWidths 53L
389 #define INDEX_DrvSetPixelFormat 54L
390 #define INDEX_DrvDescribePixelFormat 55L
391 #define INDEX_DrvSwapBuffers 56L
392 #define INDEX_DrvStartBanding 57L
393 #define INDEX_DrvNextBand 58L
394 #define INDEX_DrvGetDirectDrawInfo 59L
395 #define INDEX_DrvEnableDirectDraw 60L
396 #define INDEX_DrvDisableDirectDraw 61L
397 #define INDEX_DrvQuerySpoolType 62L
398 #define INDEX_DrvUnknown5 63L
399 #define INDEX_DrvIcmCreateColorTransform 64L
400 #define INDEX_DrvIcmDeleteColorTransform 65L
401 #define INDEX_DrvIcmCheckBitmapBits 66L
402 #define INDEX_DrvIcmSetDeviceGammaRamp 67L
403 #define INDEX_DrvGradientFill 68L
404 #define INDEX_DrvStretchBltROP 69L
405 #define INDEX_DrvPlgBlt 70L
406 #define INDEX_DrvAlphaBlend 71L
407 #define INDEX_DrvSynthesizeFont 72L
408 #define INDEX_DrvGetSynthesizedFontFiles 73L
409 #define INDEX_DrvTransparentBlt 74L
410 #define INDEX_DrvQueryPerBandInfo 75L
411 #define INDEX_DrvQueryDeviceSupport 76L
412 #define INDEX_DrvReserved1 77L
413 #define INDEX_DrvReserved2 78L
414 #define INDEX_DrvReserved3 79L
415 #define INDEX_DrvReserved4 80L
416 #define INDEX_DrvReserved5 81L
417 #define INDEX_DrvReserved6 82L
418 #define INDEX_DrvReserved7 83L
419 #define INDEX_DrvReserved8 84L
420 #define INDEX_DrvDeriveSurface 85L
421 #define INDEX_DrvQueryGlyphAttrs 86L
422 #define INDEX_DrvNotify 87L
423 #define INDEX_DrvSynchronizeSurface 88L
424 #define INDEX_DrvResetDevice 89L
425 #define INDEX_DrvReserved9 90L
426 #define INDEX_DrvReserved10 91L
427 #define INDEX_DrvReserved11 92L
428 #define INDEX_LAST 93L
430 typedef struct _DRVFN
{
435 /* DRVENABLEDATA.iDriverVersion constants */
436 #define DDI_DRIVER_VERSION_NT4 0x00020000
437 #define DDI_DRIVER_VERSION_SP3 0x00020003
438 #define DDI_DRIVER_VERSION_NT5 0x00030000
439 #define DDI_DRIVER_VERSION_NT5_01 0x00030100
440 #define DDI_DRIVER_VERSION_NT5_01_SP1 0x00030101
442 typedef struct _DRVENABLEDATA
{
443 ULONG iDriverVersion
;
446 } DRVENABLEDATA
, *PDRVENABLEDATA
;
448 DECLARE_HANDLE(HSEMAPHORE
);
454 PBYTE pvCurrentRecord
;
455 } EMFINFO
, *PEMFINFO
;
457 typedef struct _ENGSAFESEMAPHORE
{
462 typedef struct _ENG_TIME_FIELDS
{
469 USHORT usMilliseconds
;
471 } ENG_TIME_FIELDS
, *PENG_TIME_FIELDS
;
473 typedef struct _ENUMRECTS
{
478 typedef struct _FD_XFORM
{
483 } FD_XFORM
, *PFD_XFORM
;
485 /* FD_DEVICEMETRICS.flRealizedType constants */
486 #define FDM_TYPE_BM_SIDE_CONST 0x00000001
487 #define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE 0x00000002
488 #define FDM_TYPE_CHAR_INC_EQUAL_BM_BASE 0x00000004
489 #define FDM_TYPE_ZERO_BEARINGS 0x00000008
490 #define FDM_TYPE_CONST_BEARINGS 0x00000010
492 typedef struct _FD_DEVICEMETRICS
{
493 FLONG flRealizedType
;
499 POINTL ptlUnderline1
;
501 POINTL ptlULThickness
;
502 POINTL ptlSOThickness
;
506 FD_XFORM fdxQuantized
;
507 LONG lNonLinearExtLeading
;
508 LONG lNonLinearIntLeading
;
509 LONG lNonLinearMaxCharWidth
;
510 LONG lNonLinearAvgCharWidth
;
515 } FD_DEVICEMETRICS
, *PFD_DEVICEMETRICS
;
517 /* FD_GLYPHATTR.iMode constants */
518 #define FO_ATTR_MODE_ROTATE 1
520 typedef struct _FD_GLYPHATTR
{
525 } FD_GLYPHATTR
, *PFD_GLYPHATTR
;
527 /* FD_GLYPHSET.flAccel */
528 #define GS_UNICODE_HANDLES 0x00000001
529 #define GS_8BIT_HANDLES 0x00000002
530 #define GS_16BIT_HANDLES 0x00000004
532 typedef struct _WCRUN
{
538 typedef struct _FD_GLYPHSET
{
541 ULONG cGlyphsSupported
;
544 } FD_GLYPHSET
, *PFD_GLYPHSET
;
546 typedef struct _FD_KERNINGPAIR
{
552 #if defined(_X86_) && !defined(USERMODE_DRIVER)
553 typedef struct _FLOATOBJ
557 } FLOATOBJ
, *PFLOATOBJ
;
559 typedef FLOAT FLOATOBJ
, *PFLOATOBJ
;
562 typedef struct _FLOATOBJ_XFORM
{
569 } FLOATOBJ_XFORM
, *PFLOATOBJ_XFORM
, FAR
*LPFLOATOBJ_XFORM
;
571 /* FONTDIFF.fsSelection */
572 #define FM_SEL_ITALIC 0x0001
573 #define FM_SEL_UNDERSCORE 0x0002
574 #define FM_SEL_NEGATIVE 0x0004
575 #define FM_SEL_OUTLINED 0x0008
576 #define FM_SEL_STRIKEOUT 0x0010
577 #define FM_SEL_BOLD 0x0020
578 #define FM_SEL_REGULAR 0x0040
580 typedef struct _FONTDIFF
{
587 FWORD fwdAveCharWidth
;
592 typedef struct _FONTSIM
{
595 PTRDIFF dpBoldItalic
;
598 /* FONTINFO.flCaps constants */
599 #define FO_DEVICE_FONT 1L
600 #define FO_OUTLINE_CAPABLE 2L
602 typedef struct _FONTINFO
{
605 ULONG cGlyphsSupported
;
610 } FONTINFO
, *PFONTINFO
;
612 /* FONTOBJ.flFontType constants */
613 #define FO_TYPE_RASTER RASTER_FONTTYPE
614 #define FO_TYPE_DEVICE DEVICE_FONTTYPE
615 #define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE
616 #define FO_TYPE_OPENTYPE OPENTYPE_FONTTYPE
618 #define FO_SIM_BOLD 0x00002000
619 #define FO_SIM_ITALIC 0x00004000
620 #define FO_EM_HEIGHT 0x00008000
621 #define FO_GRAY16 0x00010000
622 #define FO_NOGRAY16 0x00020000
623 #define FO_NOHINTS 0x00040000
624 #define FO_NO_CHOICE 0x00080000
625 #define FO_CFF 0x00100000
626 #define FO_POSTSCRIPT 0x00200000
627 #define FO_MULTIPLEMASTER 0x00400000
628 #define FO_VERT_FACE 0x00800000
629 #define FO_DBCS_FONT 0X01000000
630 #define FO_NOCLEARTYPE 0x02000000
631 #define FO_CLEARTYPE_X 0x10000000
632 #define FO_CLEARTYPE_Y 0x20000000
634 typedef struct _FONTOBJ
{
647 typedef struct _GAMMARAMP
{
651 } GAMMARAMP
, *PGAMMARAMP
;
653 /* GDIINFO.ulPrimaryOrder constants */
654 #define PRIMARY_ORDER_ABC 0
655 #define PRIMARY_ORDER_ACB 1
656 #define PRIMARY_ORDER_BAC 2
657 #define PRIMARY_ORDER_BCA 3
658 #define PRIMARY_ORDER_CBA 4
659 #define PRIMARY_ORDER_CAB 5
661 /* GDIINFO.ulHTPatternSize constants */
662 #define HT_PATSIZE_2x2 0
663 #define HT_PATSIZE_2x2_M 1
664 #define HT_PATSIZE_4x4 2
665 #define HT_PATSIZE_4x4_M 3
666 #define HT_PATSIZE_6x6 4
667 #define HT_PATSIZE_6x6_M 5
668 #define HT_PATSIZE_8x8 6
669 #define HT_PATSIZE_8x8_M 7
670 #define HT_PATSIZE_10x10 8
671 #define HT_PATSIZE_10x10_M 9
672 #define HT_PATSIZE_12x12 10
673 #define HT_PATSIZE_12x12_M 11
674 #define HT_PATSIZE_14x14 12
675 #define HT_PATSIZE_14x14_M 13
676 #define HT_PATSIZE_16x16 14
677 #define HT_PATSIZE_16x16_M 15
678 #define HT_PATSIZE_SUPERCELL 16
679 #define HT_PATSIZE_SUPERCELL_M 17
680 #define HT_PATSIZE_USER 18
681 #define HT_PATSIZE_MAX_INDEX HT_PATSIZE_USER
682 #define HT_PATSIZE_DEFAULT HT_PATSIZE_SUPERCELL_M
683 #define HT_USERPAT_CX_MIN 4
684 #define HT_USERPAT_CX_MAX 256
685 #define HT_USERPAT_CY_MIN 4
686 #define HT_USERPAT_CY_MAX 256
688 /* GDIINFO.ulHTOutputFormat constants */
689 #define HT_FORMAT_1BPP 0
690 #define HT_FORMAT_4BPP 2
691 #define HT_FORMAT_4BPP_IRGB 3
692 #define HT_FORMAT_8BPP 4
693 #define HT_FORMAT_16BPP 5
694 #define HT_FORMAT_24BPP 6
695 #define HT_FORMAT_32BPP 7
697 /* GDIINFO.flHTFlags */
698 #define HT_FLAG_SQUARE_DEVICE_PEL 0x00000001
699 #define HT_FLAG_HAS_BLACK_DYE 0x00000002
700 #define HT_FLAG_ADDITIVE_PRIMS 0x00000004
701 #define HT_FLAG_USE_8BPP_BITMASK 0x00000008
702 #define HT_FLAG_INK_HIGH_ABSORPTION 0x00000010
703 #define HT_FLAG_INK_ABSORPTION_INDICES 0x00000060
704 #define HT_FLAG_DO_DEVCLR_XFORM 0x00000080
705 #define HT_FLAG_OUTPUT_CMY 0x00000100
706 #define HT_FLAG_PRINT_DRAFT_MODE 0x00000200
707 #define HT_FLAG_INVERT_8BPP_BITMASK_IDX 0x00000400
708 #define HT_FLAG_8BPP_CMY332_MASK 0xFF000000
710 #define MAKE_CMYMASK_BYTE(c,m,y) ((BYTE)(((BYTE)(c) & 0x07) << 5) \
711 |(BYTE)(((BYTE)(m) & 0x07) << 2) \
712 |(BYTE)((BYTE)(y) & 0x03))
714 #define MAKE_CMY332_MASK(c,m,y) ((DWORD)(((DWORD)(c) & 0x07) << 29)\
715 |(DWORD)(((DWORD)(m) & 0x07) << 26)\
716 |(DWORD)(((DWORD)(y) & 0x03) << 24))
718 /* GDIINFO.flHTFlags constants */
719 #define HT_FLAG_INK_ABSORPTION_IDX0 0x00000000
720 #define HT_FLAG_INK_ABSORPTION_IDX1 0x00000020
721 #define HT_FLAG_INK_ABSORPTION_IDX2 0x00000040
722 #define HT_FLAG_INK_ABSORPTION_IDX3 0x00000060
724 #define HT_FLAG_HIGHEST_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
725 |HT_FLAG_INK_ABSORPTION_IDX3)
726 #define HT_FLAG_HIGHER_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
727 |HT_FLAG_INK_ABSORPTION_IDX2)
728 #define HT_FLAG_HIGH_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
729 |HT_FLAG_INK_ABSORPTION_IDX1)
730 #define HT_FLAG_NORMAL_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX0
731 #define HT_FLAG_LOW_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX1
732 #define HT_FLAG_LOWER_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX2
733 #define HT_FLAG_LOWEST_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX3
735 #define HT_BITMASKPALRGB (DWORD)'0BGR'
736 #define HT_SET_BITMASKPAL2RGB(pPal) (*((LPDWORD)(pPal)) = HT_BITMASKPALRGB)
737 #define HT_IS_BITMASKPALRGB(pPal) (*((LPDWORD)(pPal)) == (DWORD)0)
739 /* GDIINFO.ulPhysicalPixelCharacteristics constants */
740 #define PPC_DEFAULT 0x0
741 #define PPC_UNDEFINED 0x1
742 #define PPC_RGB_ORDER_VERTICAL_STRIPES 0x2
743 #define PPC_BGR_ORDER_VERTICAL_STRIPES 0x3
744 #define PPC_RGB_ORDER_HORIZONTAL_STRIPES 0x4
745 #define PPC_BGR_ORDER_HORIZONTAL_STRIPES 0x5
747 #define PPG_DEFAULT 0
750 typedef struct _GDIINFO
{
773 POINTL ptlPhysOffset
;
777 ULONG ulDevicePelsDPI
;
778 ULONG ulPrimaryOrder
;
779 ULONG ulHTPatternSize
;
780 ULONG ulHTOutputFormat
;
783 ULONG ulBltAlignment
;
784 ULONG ulPanningHorzRes
;
785 ULONG ulPanningVertRes
;
786 ULONG xPanningAlignment
;
787 ULONG yPanningAlignment
;
794 ULONG ulPhysicalPixelCharacteristics
;
795 ULONG ulPhysicalPixelGamma
;
796 } GDIINFO
, *PGDIINFO
;
798 /* PATHDATA.flags constants */
799 #define PD_BEGINSUBPATH 0x00000001
800 #define PD_ENDSUBPATH 0x00000002
801 #define PD_RESETSTYLE 0x00000004
802 #define PD_CLOSEFIGURE 0x00000008
803 #define PD_BEZIERS 0x00000010
804 #define PD_ALL (PD_BEGINSUBPATH \
810 typedef struct _PATHDATA
{
814 } PATHDATA
, *PPATHDATA
;
816 /* PATHOBJ.fl constants */
817 #define PO_BEZIERS 0x00000001
818 #define PO_ELLIPSE 0x00000002
819 #define PO_ALL_INTEGERS 0x00000004
820 #define PO_ENUM_AS_INTEGERS 0x00000008
822 typedef struct _PATHOBJ
{
827 typedef struct _GLYPHBITS
{
833 typedef union _GLYPHDEF
{
838 typedef struct _GLYPHPOS
{
842 } GLYPHPOS
, *PGLYPHPOS
;
844 typedef struct _GLYPHDATA
{
856 typedef struct _IFIEXTRA
{
860 PTRDIFF dpDesignVector
;
862 ULONG aulReserved
[1];
863 } IFIEXTRA
, *PIFIEXTRA
;
865 /* IFIMETRICS constants */
867 #define FM_VERSION_NUMBER 0x0
869 /* IFIMETRICS.fsType constants */
870 #define FM_TYPE_LICENSED 0x2
871 #define FM_READONLY_EMBED 0x4
872 #define FM_EDITABLE_EMBED 0x8
873 #define FM_NO_EMBEDDING FM_TYPE_LICENSED
875 /* IFIMETRICS.flInfo constants */
876 #define FM_INFO_TECH_TRUETYPE 0x00000001
877 #define FM_INFO_TECH_BITMAP 0x00000002
878 #define FM_INFO_TECH_STROKE 0x00000004
879 #define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008
880 #define FM_INFO_ARB_XFORMS 0x00000010
881 #define FM_INFO_1BPP 0x00000020
882 #define FM_INFO_4BPP 0x00000040
883 #define FM_INFO_8BPP 0x00000080
884 #define FM_INFO_16BPP 0x00000100
885 #define FM_INFO_24BPP 0x00000200
886 #define FM_INFO_32BPP 0x00000400
887 #define FM_INFO_INTEGER_WIDTH 0x00000800
888 #define FM_INFO_CONSTANT_WIDTH 0x00001000
889 #define FM_INFO_NOT_CONTIGUOUS 0x00002000
890 #define FM_INFO_TECH_MM 0x00004000
891 #define FM_INFO_RETURNS_OUTLINES 0x00008000
892 #define FM_INFO_RETURNS_STROKES 0x00010000
893 #define FM_INFO_RETURNS_BITMAPS 0x00020000
894 #define FM_INFO_DSIG 0x00040000
895 #define FM_INFO_RIGHT_HANDED 0x00080000
896 #define FM_INFO_INTEGRAL_SCALING 0x00100000
897 #define FM_INFO_90DEGREE_ROTATIONS 0x00200000
898 #define FM_INFO_OPTICALLY_FIXED_PITCH 0x00400000
899 #define FM_INFO_DO_NOT_ENUMERATE 0x00800000
900 #define FM_INFO_ISOTROPIC_SCALING_ONLY 0x01000000
901 #define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x02000000
902 #define FM_INFO_TECH_CFF 0x04000000
903 #define FM_INFO_FAMILY_EQUIV 0x08000000
904 #define FM_INFO_DBCS_FIXED_PITCH 0x10000000
905 #define FM_INFO_NONNEGATIVE_AC 0x20000000
906 #define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000
907 #define FM_INFO_TECH_TYPE1 0x80000000
909 #define MAXCHARSETS 16
911 /* IFIMETRICS.ulPanoseCulture constants */
912 #define FM_PANOSE_CULTURE_LATIN 0x0
914 typedef struct _IFIMETRICS
{
917 PTRDIFF dpwszFamilyName
;
918 PTRDIFF dpwszStyleName
;
919 PTRDIFF dpwszFaceName
;
920 PTRDIFF dpwszUniqueName
;
927 BYTE jWinPitchAndFamily
;
934 FWORD fwdWinAscender
;
935 FWORD fwdWinDescender
;
936 FWORD fwdMacAscender
;
937 FWORD fwdMacDescender
;
939 FWORD fwdTypoAscender
;
940 FWORD fwdTypoDescender
;
941 FWORD fwdTypoLineGap
;
942 FWORD fwdAveCharWidth
;
946 FWORD fwdSubscriptXSize
;
947 FWORD fwdSubscriptYSize
;
948 FWORD fwdSubscriptXOffset
;
949 FWORD fwdSubscriptYOffset
;
950 FWORD fwdSuperscriptXSize
;
951 FWORD fwdSuperscriptYSize
;
952 FWORD fwdSuperscriptXOffset
;
953 FWORD fwdSuperscriptYOffset
;
954 FWORD fwdUnderscoreSize
;
955 FWORD fwdUnderscorePosition
;
956 FWORD fwdStrikeoutSize
;
957 FWORD fwdStrikeoutPosition
;
972 ULONG ulPanoseCulture
;
977 } IFIMETRICS
, *PIFIMETRICS
;
980 #define LA_GEOMETRIC 0x00000001
981 #define LA_ALTERNATE 0x00000002
982 #define LA_STARTGAP 0x00000004
983 #define LA_STYLED 0x00000008
985 /* LINEATTRS.iJoin */
986 #define JOIN_ROUND 0L
987 #define JOIN_BEVEL 1L
988 #define JOIN_MITER 2L
990 /* LINEATTRS.iEndCap */
991 #define ENDCAP_ROUND 0L
992 #define ENDCAP_SQUARE 1L
993 #define ENDCAP_BUTT 2L
995 typedef struct _LINEATTRS
{
1003 FLOAT_LONG elStyleState
;
1004 } LINEATTRS
, *PLINEATTRS
;
1006 typedef struct _PALOBJ
{
1010 typedef struct _PERBANDINFO
{
1011 BOOL bRepeatThisBand
;
1015 } PERBANDINFO
, *PPERBANDINFO
;
1017 /* STROBJ.flAccel constants */
1018 #define SO_FLAG_DEFAULT_PLACEMENT 0x00000001
1019 #define SO_HORIZONTAL 0x00000002
1020 #define SO_VERTICAL 0x00000004
1021 #define SO_REVERSED 0x00000008
1022 #define SO_ZERO_BEARINGS 0x00000010
1023 #define SO_CHAR_INC_EQUAL_BM_BASE 0x00000020
1024 #define SO_MAXEXT_EQUAL_BM_SIDE 0x00000040
1025 #define SO_DO_NOT_SUBSTITUTE_DEVICE_FONT 0x00000080
1026 #define SO_GLYPHINDEX_TEXTOUT 0x00000100
1027 #define SO_ESC_NOT_ORIENT 0x00000200
1028 #define SO_DXDY 0x00000400
1029 #define SO_CHARACTER_EXTRA 0x00000800
1030 #define SO_BREAK_EXTRA 0x00001000
1032 typedef struct _STROBJ
{
1043 /* SURFOBJ.iType constants */
1044 #define STYPE_BITMAP 0L
1045 #define STYPE_DEVICE 1L
1046 #define STYPE_DEVBITMAP 3L
1048 /* SURFOBJ.fjBitmap constants */
1049 #define BMF_TOPDOWN 0x0001
1050 #define BMF_NOZEROINIT 0x0002
1051 #define BMF_DONTCACHE 0x0004
1052 #define BMF_USERMEM 0x0008
1053 #define BMF_KMSECTION 0x0010
1054 #define BMF_NOTSYSMEM 0x0020
1055 #define BMF_WINDOW_BLT 0x0040
1056 #define BMF_UMPDMEM 0x0080
1057 #define BMF_RESERVED 0xFF00
1059 typedef struct _SURFOBJ
{
1070 ULONG iBitmapFormat
;
1075 typedef struct _TYPE1_FONT
{
1081 typedef struct _WNDOBJ
{
1088 typedef struct _XFORML
{
1097 typedef struct _XFORMOBJ
{
1101 /* XLATEOBJ.flXlate constants */
1102 #define XO_TRIVIAL 0x00000001
1103 #define XO_TABLE 0x00000002
1104 #define XO_TO_MONO 0x00000004
1105 #define XO_FROM_CMYK 0x00000008
1106 #define XO_DEVICE_ICM 0x00000010
1107 #define XO_HOST_ICM 0x00000020
1109 typedef struct _XLATEOBJ
{
1118 /* WNDOBJCHANGEPROC.fl constants */
1119 #define WOC_RGN_CLIENT_DELTA 0x00000001
1120 #define WOC_RGN_CLIENT 0x00000002
1121 #define WOC_RGN_SURFACE_DELTA 0x00000004
1122 #define WOC_RGN_SURFACE 0x00000008
1123 #define WOC_CHANGED 0x00000010
1124 #define WOC_DELETE 0x00000020
1125 #define WOC_DRAWN 0x00000040
1126 #define WOC_SPRITE_OVERLAP 0x00000080
1127 #define WOC_SPRITE_NO_OVERLAP 0x00000100
1129 typedef VOID (APIENTRY CALLBACK
*WNDOBJCHANGEPROC
)(
1137 BRUSHOBJ_hGetColorTransform(
1143 BRUSHOBJ_pvAllocRbrush(
1150 BRUSHOBJ_pvGetRbrush(
1156 BRUSHOBJ_ulGetBrushColor(
1167 /* CLIPOBJ_cEnumStart.iType constants */
1168 #define CT_RECTANGLES 0L
1170 /* CLIPOBJ_cEnumStart.iDirection constants */
1171 #define CD_RIGHTDOWN 0x00000000
1172 #define CD_LEFTDOWN 0x00000001
1173 #define CD_LEFTWARDS 0x00000001
1174 #define CD_RIGHTUP 0x00000002
1175 #define CD_UPWARDS 0x00000002
1176 #define CD_LEFTUP 0x00000003
1177 #define CD_ANY 0x00000004
1186 IN ULONG iDirection
,
1198 EngAcquireSemaphore(
1199 IN HSEMAPHORE hsem
);
1201 #define FL_ZERO_MEMORY 0x00000001
1202 #define FL_NONPAGED_MEMORY 0x00000002
1215 EngAllocPrivateUserMem(
1216 IN PDD_SURFACE_LOCAL psl
,
1231 IN SURFOBJ
*psoDest
,
1237 IN BLENDOBJ
*pBlendObj
);
1239 /* EngAssociateSurface.flHooks constants */
1240 #define HOOK_BITBLT 0x00000001
1241 #define HOOK_STRETCHBLT 0x00000002
1242 #define HOOK_PLGBLT 0x00000004
1243 #define HOOK_TEXTOUT 0x00000008
1244 #define HOOK_PAINT 0x00000010
1245 #define HOOK_STROKEPATH 0x00000020
1246 #define HOOK_FILLPATH 0x00000040
1247 #define HOOK_STROKEANDFILLPATH 0x00000080
1248 #define HOOK_LINETO 0x00000100
1249 #define HOOK_COPYBITS 0x00000400
1250 #define HOOK_MOVEPANNING 0x00000800
1251 #define HOOK_SYNCHRONIZE 0x00001000
1252 #define HOOK_STRETCHBLTROP 0x00002000
1253 #define HOOK_SYNCHRONIZEACCESS 0x00004000
1254 #define HOOK_TRANSPARENTBLT 0x00008000
1255 #define HOOK_ALPHABLEND 0x00010000
1256 #define HOOK_GRADIENTFILL 0x00020000
1257 #define HOOK_FLAGS 0x0003b5ff
1262 EngAssociateSurface(
1273 IN SURFOBJ
*psoMask
,
1278 IN POINTL
*pptlMask
,
1280 IN POINTL
*pptlBrush
,
1303 /* EngControlSprites.fl constants */
1304 #define ECS_TEARDOWN 0x00000001
1305 #define ECS_REDRAW 0x00000002
1318 OUT SURFOBJ
*psoDest
,
1323 IN POINTL
*pptlSrc
);
1344 EngCreateDeviceBitmap(
1347 IN ULONG iFormatCompat
);
1352 EngCreateDeviceSurface(
1355 ULONG iFormatCompat
);
1363 FREEOBJPROC pFreeObjProc
,
1371 OUT PEVENT
*ppEvent
);
1373 /* EngCreatePalette.iMode constants */
1374 #define PAL_INDEXED 0x00000001
1375 #define PAL_BITFIELDS 0x00000002
1376 #define PAL_RGB 0x00000004
1377 #define PAL_BGR 0x00000008
1378 #define PAL_CMYK 0x00000010
1386 IN ULONG
*pulColors
,
1403 /* EngCreateWnd.fl constants */
1404 #define WO_RGN_CLIENT_DELTA 0x00000001
1405 #define WO_RGN_CLIENT 0x00000002
1406 #define WO_RGN_SURFACE_DELTA 0x00000004
1407 #define WO_RGN_SURFACE 0x00000008
1408 #define WO_RGN_UPDATE_ALL 0x00000010
1409 #define WO_RGN_WINDOW 0x00000020
1410 #define WO_DRAW_NOTIFY 0x00000040
1411 #define WO_SPRITE_NOTIFY 0x00000080
1412 #define WO_RGN_DESKTOP_COORD 0x00000100
1420 WNDOBJCHANGEPROC pfn
,
1434 IN PCHAR StandardPrefix
,
1435 IN PCHAR DebugMessage
,
1462 IN LPWSTR pwszFileName
);
1479 EngDeleteSafeSemaphore(
1480 IN OUT ENGSAFESEMAPHORE
*pssem
);
1486 IN OUT HSEMAPHORE hsem
);
1505 IN DWORD dwIoControlCode
,
1506 IN LPVOID lpInBuffer
,
1507 IN DWORD nInBufferSize
,
1508 IN OUT LPVOID lpOutBuffer
,
1509 IN DWORD nOutBufferSize
,
1510 OUT LPDWORD lpBytesReturned
);
1529 OUT LPDWORD pcbNeeded
,
1530 OUT LPDWORD pcReturned
);
1548 IN POINTL
*pptlBrushOrg
,
1550 IN FLONG flOptions
);
1555 EngFindImageProcAddress(
1557 IN LPSTR lpProcName
);
1566 OUT PULONG pulSize
);
1572 IN ULONG FastCheckSum
,
1575 /* EngFntCacheFault.iFaultMode constants */
1576 #define ENG_FNT_CACHE_READ_FAULT 0x00000001
1577 #define ENG_FNT_CACHE_WRITE_FAULT 0x00000002
1583 IN ULONG ulFastCheckSum
,
1584 IN ULONG iFaultMode
);
1590 IN ULONG FastCheckSum
,
1591 OUT ULONG
*pulSize
);
1608 EngFreePrivateUserMem(
1609 IN PDD_SURFACE_LOCAL psl
,
1621 EngGetCurrentCodePage(
1622 OUT PUSHORT OemCodePage
,
1623 OUT PUSHORT AnsiCodePage
);
1628 EngGetCurrentProcessId(
1634 EngGetCurrentThreadId(
1646 EngGetFileChangeTime(
1648 OUT LARGE_INTEGER
*pChangeTime
);
1655 OUT
WCHAR (*pDest
)[MAX_PATH
+1]);
1662 IN LPWSTR pFormName
,
1666 OUT LPDWORD pcbNeeded
);
1680 OUT LPBYTE pPrinter
,
1682 OUT LPDWORD pcbNeeded
);
1689 IN LPWSTR pValueName
,
1693 OUT LPDWORD pcbNeeded
);
1698 EngGetPrinterDataFileName(
1704 EngGetPrinterDriver(
1706 IN LPWSTR pEnvironment
,
1708 OUT BYTE
*lpbDrvInfo
,
1710 OUT DWORD
*pcbNeeded
);
1715 EngGetProcessHandle(
1721 EngGetType1FontList(
1723 OUT TYPE1_FONT
*pType1Buffer
,
1724 IN ULONG cjType1Buffer
,
1725 OUT PULONG pulLocalFonts
,
1726 OUT PULONG pulRemoteFonts
,
1727 OUT LARGE_INTEGER
*pLastModified
);
1733 IN SURFOBJ
*psoDest
,
1736 IN TRIVERTEX
*pVertex
,
1740 IN RECTL
*prclExtents
,
1741 IN POINTL
*pptlDitherOrg
,
1744 /* EngHangNotification return values */
1745 #define EHN_RESTORED 0x00000000
1746 #define EHN_ERROR 0x00000001
1751 EngHangNotification(
1758 EngInitializeSafeSemaphore(
1759 OUT ENGSAFESEMAPHORE
*pssem
);
1764 EngIsSemaphoreOwned(
1765 IN HSEMAPHORE hsem
);
1770 EngIsSemaphoreOwnedByCurrentThread(
1771 IN HSEMAPHORE hsem
);
1791 IN LPWSTR pwszDriver
);
1802 EngLoadModuleForWrite(
1804 IN ULONG cjSizeOfModule
);
1809 EngLockDirectDrawSurface(
1810 IN HANDLE hSurface
);
1835 IN HANDLE hUserObject
,
1838 IN PVOID Reserved3
);
1846 OUT ULONG_PTR
*piFile
);
1874 EngMarkBandingSurface(
1877 /* EngModifySurface.flSurface constants */
1878 #define MS_NOTSYSTEMMEMORY 0x00000001
1879 #define MS_SHAREDACCESS 0x00000002
1892 IN VOID
*pvReserved
);
1914 EngMultiByteToUnicodeN(
1915 OUT LPWSTR UnicodeString
,
1916 IN ULONG MaxBytesInUnicodeString
,
1917 OUT PULONG BytesInUnicodeString
,
1918 IN PCHAR MultiByteString
,
1919 IN ULONG BytesInMultiByteString
);
1924 EngMultiByteToWideChar(
1926 OUT LPWSTR WideCharString
,
1927 IN INT BytesInWideCharString
,
1928 IN LPSTR MultiByteString
,
1929 IN INT BytesInMultiByteString
);
1938 IN POINTL
*pptlBrushOrg
,
1950 IN COLORADJUSTMENT
*pca
,
1951 IN POINTL
*pptlBrushOrg
,
1963 IN ULONG Alignment
);
1968 EngProbeForReadAndWrite(
1971 IN ULONG Alignment
);
1973 typedef enum _ENG_DEVICE_ATTRIBUTE
{
1975 QDA_ACCELERATION_LEVEL
1976 } ENG_DEVICE_ATTRIBUTE
;
1981 EngQueryDeviceAttribute(
1983 IN ENG_DEVICE_ATTRIBUTE devAttr
,
1987 OUT ULONG ulOutSize
);
1992 EngQueryFileTimeStamp(
1999 OUT PENG_TIME_FIELDS ptf
);
2008 OUT ULONG
*pulColors
);
2013 EngQueryPerformanceCounter(
2014 OUT LONGLONG
*pPerformanceCount
);
2019 EngQueryPerformanceFrequency(
2020 OUT LONGLONG
*pFrequency
);
2022 typedef enum _ENG_SYSTEM_ATTRIBUTE
{
2023 EngProcessorFeature
= 1,
2024 EngNumberOfProcessors
,
2025 EngOptimumAvailableUserMemory
,
2026 EngOptimumAvailableSystemMemory
,
2027 } ENG_SYSTEM_ATTRIBUTE
;
2029 #define QSA_MMX 0x00000100
2030 #define QSA_SSE 0x00002000
2031 #define QSA_3DNOW 0x00004000
2036 EngQuerySystemAttribute(
2037 IN ENG_SYSTEM_ATTRIBUTE CapNum
,
2038 OUT PDWORD pCapability
);
2049 EngReleaseSemaphore(
2050 IN HSEMAPHORE hsem
);
2055 EngRestoreFloatingPointState(
2061 EngSaveFloatingPointState(
2063 IN ULONG cjBufferSize
);
2089 IN SURFOBJ
*psoMask
,
2090 IN SURFOBJ
*psoColor
,
2104 IN SURFOBJ
*psoMask
,
2105 IN SURFOBJ
*psoColor
,
2116 IN LPBYTE lpbPrinterData
,
2117 IN DWORD cjPrinterData
);
2119 typedef int (CDECL
*SORTCOMP
)(const void *pv1
, const void *pv2
);
2128 IN SORTCOMP pfnComp
);
2134 IN SURFOBJ
*psoDest
,
2136 IN SURFOBJ
*psoMask
,
2139 IN COLORADJUSTMENT
*pca
,
2140 IN POINTL
*pptlHTOrg
,
2143 IN POINTL
*pptlMask
,
2150 IN SURFOBJ
*psoDest
,
2152 IN SURFOBJ
*psoMask
,
2155 IN COLORADJUSTMENT
*pca
,
2156 IN POINTL
*pptlHTOrg
,
2159 IN POINTL
*pptlMask
,
2167 EngStrokeAndFillPath(
2172 IN BRUSHOBJ
*pboStroke
,
2173 IN LINEATTRS
*plineattrs
,
2174 IN BRUSHOBJ
*pboFill
,
2175 IN POINTL
*pptlBrushOrg
,
2177 IN FLONG flOptions
);
2188 IN POINTL
*pptlBrushOrg
,
2189 IN LINEATTRS
*plineattrs
,
2200 IN RECTL
*prclExtra
,
2201 IN RECTL
*prclOpaque
,
2202 IN BRUSHOBJ
*pboFore
,
2203 IN BRUSHOBJ
*pboOpaque
,
2217 IN ULONG iTransColor
,
2218 IN ULONG ulReserved
);
2223 EngUnicodeToMultiByteN(
2224 OUT PCHAR MultiByteString
,
2225 IN ULONG MaxBytesInMultiByteString
,
2226 OUT PULONG BytesInMultiByteString
,
2227 IN PWSTR UnicodeString
,
2228 IN ULONG BytesInUnicodeString
);
2239 EngUnlockDirectDrawSurface(
2240 IN PDD_SURFACE_LOCAL pSurface
);
2264 IN ULONG_PTR iFile
);
2276 IN ULONG_PTR iFile
);
2287 EngWaitForSingleObject(
2289 IN PLARGE_INTEGER pTimeOut
);
2294 EngWideCharToMultiByte(
2296 IN LPWSTR WideCharString
,
2297 IN INT BytesInWideCharString
,
2298 OUT LPSTR MultiByteString
,
2299 IN INT BytesInMultiByteString
);
2308 OUT LPDWORD pcWritten
);
2310 #if defined(_X86_) && !defined(USERMODE_DRIVER)
2315 IN OUT PFLOATOBJ pf
,
2322 IN OUT PFLOATOBJ pf
,
2329 IN OUT PFLOATOBJ pf
,
2336 IN OUT PFLOATOBJ pf
,
2343 IN OUT PFLOATOBJ pf
,
2350 IN OUT PFLOATOBJ pf
,
2382 FLOATOBJ_GreaterThan(
2389 FLOATOBJ_GreaterThanLong(
2403 FLOATOBJ_LessThanLong(
2411 IN OUT PFLOATOBJ pf
,
2418 IN OUT PFLOATOBJ pf
,
2425 IN OUT PFLOATOBJ pf
,
2432 IN OUT PFLOATOBJ pf
);
2452 IN OUT PFLOATOBJ pf
,
2459 IN OUT PFLOATOBJ pf
,
2466 IN OUT PFLOATOBJ pf
,
2471 #define FLOATOBJ_SetFloat(pf, f) {*(pf) = (f);}
2472 #define FLOATOBJ_SetLong(pf, l) {*(pf) = (FLOAT)(l);}
2473 #define FLOATOBJ_GetFloat(pf) (*(PULONG)(pf))
2474 #define FLOATOBJ_GetLong(pf) ((LONG)*(pf))
2475 #define FLOATOBJ_Add(pf, pf1) {*(pf) += *(pf1);}
2476 #define FLOATOBJ_AddFloat(pf, f) {*(pf) += (f);}
2477 #define FLOATOBJ_AddLong(pf, l) {*(pf) += (l);}
2478 #define FLOATOBJ_Sub(pf, pf1) {*(pf) -= *(pf1);}
2479 #define FLOATOBJ_SubFloat(pf, f) {*(pf) -= (f);}
2480 #define FLOATOBJ_SubLong(pf, l) {*(pf) -= (l);}
2481 #define FLOATOBJ_Mul(pf, pf1) {*(pf) *= *(pf1);}
2482 #define FLOATOBJ_MulFloat(pf, f) {*(pf) *= (f);}
2483 #define FLOATOBJ_MulLong(pf, l) {*(pf) *= (l);}
2484 #define FLOATOBJ_Div(pf, pf1) {*(pf) /= *(pf1);}
2485 #define FLOATOBJ_DivFloat(pf, f) {*(pf) /= (f);}
2486 #define FLOATOBJ_DivLong(pf, l) {*(pf) /= (l);}
2487 #define FLOATOBJ_Neg(pf) {*(pf) = -(*(pf));}
2488 #define FLOATOBJ_Equal(pf, pf1) (*(pf) == *(pf1))
2489 #define FLOATOBJ_GreaterThan(pf, pf1) (*(pf) > *(pf1))
2490 #define FLOATOBJ_LessThan(pf, pf1) (*(pf) < *(pf1))
2491 #define FLOATOBJ_EqualLong(pf, l) (*(pf) == (FLOAT)(l))
2492 #define FLOATOBJ_GreaterThanLong(pf, l) (*(pf) > (FLOAT)(l))
2493 #define FLOATOBJ_LessThanLong(pf, l) (*(pf) < (FLOAT)(l))
2500 FONTOBJ_cGetAllGlyphHandles(
2512 OUT PVOID
*ppvGlyph
);
2529 FONTOBJ_pjOpenTypeTablePointer(
2532 OUT ULONG
*pcjTable
);
2537 FONTOBJ_pQueryGlyphAttrs(
2544 FONTOBJ_pvTrueTypeFontFile(
2546 OUT ULONG
*pcjFile
);
2551 FONTOBJ_pwszFontFilePaths(
2558 FONTOBJ_pxoGetXform(
2574 HT_ComputeRGBGammaTable(
2575 IN USHORT GammaTableEntries
,
2576 IN USHORT GammaTableType
,
2578 IN USHORT GreenGamma
,
2579 IN USHORT BlueGamma
,
2580 OUT LPBYTE pGammaTable
);
2585 HT_Get8BPPFormatPalette(
2586 OUT LPPALETTEENTRY pPaletteEntry
,
2588 IN USHORT GreenGamma
,
2589 IN USHORT BlueGamma
);
2594 HT_Get8BPPMaskPalette(
2595 IN OUT LPPALETTEENTRY pPaletteEntry
,
2596 IN BOOL Use8BPPMaskPal
,
2599 IN USHORT GreenGamma
,
2600 IN USHORT BlueGamma
);
2605 HTUI_DeviceColorAdjustment(
2606 IN LPSTR pDeviceName
,
2607 OUT PDEVHTADJDATA pDevHTAdjData
);
2616 OUT ULONG
*pulColors
);
2621 PATHOBJ_bCloseFigure(
2634 PATHOBJ_bEnumClipLines(
2649 PATHOBJ_bPolyBezierTo(
2657 PATHOBJ_bPolyLineTo(
2671 PATHOBJ_vEnumStartClipLines(
2682 OUT PRECTFX prectfx
);
2690 OUT PGLYPHPOS
*ppgpos
);
2695 STROBJ_bEnumPositionsOnly(
2698 OUT PGLYPHPOS
*ppgpos
);
2703 STROBJ_bGetAdvanceWidths(
2707 OUT POINTQF
*pptqD
);
2712 STROBJ_dwGetCodePage(
2718 STROBJ_fxBreakExtra(
2724 STROBJ_fxCharacterExtra(
2747 IN ULONG iDirection
,
2753 WNDOBJ_vSetConsumer(
2755 IN PVOID pvConsumer
);
2757 /* XFORMOBJ_bApplyXform.iMode constants */
2759 #define XF_INV_LTOL 1L
2761 #define XF_INV_FXTOL 3L
2766 XFORMOBJ_bApplyXform(
2776 XFORMOBJ_iGetFloatObjXform(
2778 OUT FLOATOBJ_XFORM
*pxfo
);
2785 OUT XFORML
*pxform
);
2787 /* XLATEOBJ_cGetPalette.iPal constants */
2788 #define XO_SRCPALETTE 1
2789 #define XO_DESTPALETTE 2
2790 #define XO_DESTDCPALETTE 3
2791 #define XO_SRCBITFIELDS 4
2792 #define XO_DESTBITFIELDS 5
2797 XLATEOBJ_cGetPalette(
2806 XLATEOBJ_hGetColorTransform(
2824 /* Graphics Driver Functions */
2829 IN SURFOBJ
*psoDest
,
2835 IN BLENDOBJ
*pBlendObj
);
2848 IN SURFOBJ
*psoMask
,
2853 IN POINTL
*pptlMask
,
2855 IN POINTL
*pptlBrush
,
2867 IN SURFOBJ
*psoDest
,
2872 IN POINTL
*pptlSrc
);
2876 DrvCreateDeviceBitmap(
2883 DrvDeleteDeviceBitmap(
2889 DD_DIRECTDRAW_GLOBAL
*pDirectDraw
,
2890 DD_SURFACE_LOCAL
*pSurface
);
2894 DrvDescribePixelFormat(
2896 IN LONG iPixelFormat
,
2898 OUT PIXELFORMATDESCRIPTOR
*ppfd
);
2920 #define DM_DEFAULT 0x00000001
2921 #define DM_MONOCHROME 0x00000002
2944 IN ULONG iEngineVersion
,
2946 OUT DRVENABLEDATA
*pded
);
2952 IN LPWSTR pwszLogAddress
,
2954 OUT HSURF
*phsurfPatterns
,
2956 OUT ULONG
*pdevcaps
,
2960 IN LPWSTR pwszDeviceName
,
2968 /* DrvEndDoc.fl constants */
2969 #define ED_ABORTDOC 0x00000001
2994 IN POINTL
*pptlBrushOrg
,
2996 IN FLONG flOptions
);
3015 /* DrvGetGlyphMode return values */
3016 #define FO_HGLYPHS 0L
3017 #define FO_GLYPHBITS 1L
3018 #define FO_PATHOBJ 2L
3042 IN SURFOBJ
*psoDest
,
3045 IN TRIVERTEX
*pVertex
,
3049 IN RECTL
*prclExtents
,
3050 IN POINTL
*pptlDitherOrg
,
3055 DrvIcmCheckBitmapBits(
3057 IN HANDLE hColorTransform
,
3059 OUT PBYTE paResults
);
3063 DrvIcmCreateColorTransform(
3065 IN LPLOGCOLORSPACEW pLogColorSpace
,
3066 IN PVOID pvSourceProfile
,
3067 IN ULONG cjSourceProfile
,
3068 IN PVOID pvDestProfile
,
3069 IN ULONG cjDestProfile
,
3070 IN PVOID pvTargetProfile
,
3071 IN ULONG cjTargetProfile
,
3072 IN DWORD dwReserved
);
3076 DrvIcmDeleteColorTransform(
3078 IN HANDLE hcmXform
);
3080 /* DrvIcmSetDeviceGammaRamp.iFormat constants */
3081 #define IGRF_RGB_256BYTES 0x00000000
3082 #define IGRF_RGB_256WORDS 0x00000001
3086 DrvIcmSetDeviceGammaRamp(
3113 ULONG ulFastCheckSum
);
3142 IN FLONG flReserved
);
3150 IN POINTL
*pptlBrushOrg
,
3161 IN COLORADJUSTMENT
*pca
,
3162 IN POINTL
*pptlBrushOrg
,
3168 /* DrvQueryAdvanceWidths.iMode constants */
3169 #define QAW_GETWIDTHS 0
3170 #define QAW_GETEASYWIDTHS 1
3174 DrvQueryAdvanceWidths(
3182 /* DrvQueryDeviceSupport.iType constants */
3183 #define QDS_CHECKJPEGFORMAT 0x00000000
3184 #define QDS_CHECKPNGFORMAT 0x00000001
3188 DrvQueryDeviceSupport(
3198 /* DrvQueryDriverInfo.dwMode constants */
3199 #define DRVQUERY_USERMODE 0x00000001
3217 /* DrvQueryFontCaps.pulCaps constants */
3218 #define QC_OUTLINES 0x00000001
3219 #define QC_1BIT 0x00000002
3220 #define QC_4BIT 0x00000004
3222 #define QC_FONTDRIVERCAPS (QC_OUTLINES | QC_1BIT | QC_4BIT)
3228 OUT ULONG
*pulCaps
);
3230 /* DrvQueryFontData.iMode constants */
3231 #define QFD_GLYPHANDBITMAP 1L
3232 #define QFD_GLYPHANDOUTLINE 2L
3233 #define QFD_MAXEXTENTS 3L
3234 #define QFD_TT_GLYPHANDBITMAP 4L
3235 #define QFD_TT_GRAY1_BITMAP 5L
3236 #define QFD_TT_GRAY2_BITMAP 6L
3237 #define QFD_TT_GRAY4_BITMAP 8L
3238 #define QFD_TT_GRAY8_BITMAP 9L
3240 #define QFD_TT_MONO_BITMAP QFD_TT_GRAY1_BITMAP
3249 IN OUT GLYPHDATA
*pgd
,
3253 /* DrvQueryFontFile.ulMode constants */
3254 #define QFF_DESCRIPTION 0x00000001
3255 #define QFF_NUMFACES 0x00000002
3265 /* DrvQueryFontTree.iMode constants */
3266 #define QFT_UNICODE 0L
3267 #define QFT_LIGATURES 1L
3268 #define QFT_KERNPAIRS 2L
3269 #define QFT_GLYPHSET 3L
3288 DrvQueryPerBandInfo(
3290 IN OUT PERBANDINFO
*pbi
);
3292 /* DrvQueryTrueTypeOutline.bMetricsOnly constants */
3293 #define TTO_METRICS_ONLY 0x00000001
3294 #define TTO_QUBICS 0x00000002
3295 #define TTO_UNHINTED 0x00000004
3299 DrvQueryTrueTypeOutline(
3303 IN BOOL bMetricsOnly
,
3304 IN GLYPHDATA
*pgldt
,
3306 OUT TTPOLYGONHEADER
*ppoly
);
3310 DrvQueryTrueTypeTable(
3317 OUT PBYTE
*ppjTable
,
3318 OUT ULONG
*pcjTable
);
3320 /* DrvRealizeBrush.iHatch constants */
3321 #define RB_DITHERCOLOR 0x80000000L
3323 #define HS_DDI_MAX 6
3329 IN SURFOBJ
*psoTarget
,
3330 IN SURFOBJ
*psoPattern
,
3331 IN SURFOBJ
*psoMask
,
3335 /* DrvResetDevice return values */
3336 #define DRD_SUCCESS 0
3351 /* DrvSaveScreenBits.iMode constants */
3352 #define SS_SAVE 0x00000000
3353 #define SS_RESTORE 0x00000001
3354 #define SS_FREE 0x00000002
3382 IN LONG iPixelFormat
,
3385 /* DrvSetPointerShape return values */
3386 #define SPS_ERROR 0x00000000
3387 #define SPS_DECLINE 0x00000001
3388 #define SPS_ACCEPT_NOEXCLUDE 0x00000002
3389 #define SPS_ACCEPT_EXCLUDE 0x00000003
3390 #define SPS_ACCEPT_SYNCHRONOUS 0x00000004
3392 /* DrvSetPointerShape.fl constants */
3393 #define SPS_CHANGE 0x00000001L
3394 #define SPS_ASYNCCHANGE 0x00000002L
3395 #define SPS_ANIMATESTART 0x00000004L
3396 #define SPS_ANIMATEUPDATE 0x00000008L
3397 #define SPS_ALPHA 0x00000010L
3398 #define SPS_LENGTHMASK 0x00000F00L
3399 #define SPS_FREQMASK 0x000FF000L
3405 IN SURFOBJ
*psoMask
,
3406 IN SURFOBJ
*psoColor
,
3425 IN LPWSTR pwszDocName
,
3436 IN SURFOBJ
*psoDest
,
3438 IN SURFOBJ
*psoMask
,
3441 IN COLORADJUSTMENT
*pca
,
3442 IN POINTL
*pptlHTOrg
,
3445 IN POINTL
*pptlMask
,
3451 IN SURFOBJ
*psoDest
,
3453 IN SURFOBJ
*psoMask
,
3456 IN COLORADJUSTMENT
*pca
,
3457 IN POINTL
*pptlHTOrg
,
3460 IN POINTL
*pptlMask
,
3467 DrvStrokeAndFillPath(
3472 IN BRUSHOBJ
*pboStroke
,
3473 IN LINEATTRS
*plineattrs
,
3474 IN BRUSHOBJ
*pboFill
,
3475 IN POINTL
*pptlBrushOrg
,
3477 IN FLONG flOptions
);
3487 IN POINTL
*pptlBrushOrg
,
3488 IN LINEATTRS
*plineattrs
,
3503 /* DrvSynchronizeSurface.fl constants */
3504 #define DSS_TIMER_EVENT 0x00000001
3505 #define DSS_FLUSH_EVENT 0x00000002
3509 DrvSynchronizeSurface(
3521 IN RECTL
*prclExtra
,
3522 IN RECTL
*prclOpaque
,
3523 IN BRUSHOBJ
*pboFore
,
3524 IN BRUSHOBJ
*pboOpaque
,
3537 IN ULONG iTransColor
,
3538 IN ULONG ulReserved
);
3543 IN ULONG_PTR iFile
);
3546 (APIENTRY
*PFN_DrvAlphaBlend
)(
3547 IN SURFOBJ
*psoDest
,
3553 IN BLENDOBJ
*pBlendObj
);
3556 (APIENTRY
*PFN_DrvAssertMode
)(
3561 (APIENTRY
*PFN_DrvBitBlt
)(
3564 IN SURFOBJ
*psoMask
,
3569 IN POINTL
*pptlMask
,
3571 IN POINTL
*pptlBrush
,
3575 (APIENTRY
*PFN_DrvCompletePDEV
)(
3580 (APIENTRY
*PFN_DrvCopyBits
)(
3581 IN SURFOBJ
*psoDest
,
3586 IN POINTL
*pptlSrc
);
3589 (APIENTRY
*PFN_DrvCreateDeviceBitmap
)(
3595 (APIENTRY
*PFN_DrvDeleteDeviceBitmap
)(
3599 (APIENTRY
*PFN_DrvDeriveSurface
)(
3600 DD_DIRECTDRAW_GLOBAL
*pDirectDraw
,
3601 DD_SURFACE_LOCAL
*pSurface
);
3604 (APIENTRY
*PFN_DrvDescribePixelFormat
)(
3606 IN LONG iPixelFormat
,
3608 OUT PIXELFORMATDESCRIPTOR
*ppfd
);
3611 (APIENTRY
*PFN_DrvDestroyFont
)(
3615 (APIENTRY
*PFN_DrvDisableDriver
)(
3619 (APIENTRY
*PFN_DrvDisablePDEV
)(
3623 (APIENTRY
*PFN_DrvDisableSurface
)(
3627 (APIENTRY
*PFN_DrvDitherColor
)(
3634 (APIENTRY
*PFN_DrvDrawEscape
)(
3643 (APIENTRY
*PFN_DrvEnableDriver
)(
3644 IN ULONG iEngineVersion
,
3646 OUT DRVENABLEDATA
*pded
);
3649 (APIENTRY
*PFN_DrvEnablePDEV
)(
3651 IN LPWSTR pwszLogAddress
,
3653 OUT HSURF
*phsurfPatterns
,
3659 IN LPWSTR pwszDeviceName
,
3663 (APIENTRY
*PFN_DrvEnableSurface
)(
3667 (APIENTRY
*PFN_DrvEndDoc
)(
3672 (APIENTRY
*PFN_DrvEscape
)(
3681 (APIENTRY
*PFN_DrvFillPath
)(
3686 IN POINTL
*pptlBrushOrg
,
3688 IN FLONG flOptions
);
3691 (APIENTRY
*PFN_DrvFontManagement
)(
3701 (APIENTRY
*PFN_DrvFree
)(
3706 (APIENTRY
*PFN_DrvGetGlyphMode
)(
3711 (APIENTRY
*PFN_DrvGetModes
)(
3717 (APIENTRY
*PFN_DrvGetTrueTypeFile
)(
3722 (APIENTRY
*PFN_DrvGradientFill
)(
3723 IN SURFOBJ
*psoDest
,
3726 IN TRIVERTEX
*pVertex
,
3730 IN RECTL
*prclExtents
,
3731 IN POINTL
*pptlDitherOrg
,
3735 (APIENTRY
*PFN_DrvIcmCheckBitmapBits
)(
3737 IN HANDLE hColorTransform
,
3739 OUT PBYTE paResults
);
3742 (APIENTRY
*PFN_DrvIcmCreateColorTransform
)(
3744 IN LPLOGCOLORSPACEW pLogColorSpace
,
3745 IN PVOID pvSourceProfile
,
3746 IN ULONG cjSourceProfile
,
3747 IN PVOID pvDestProfile
,
3748 IN ULONG cjDestProfile
,
3749 IN PVOID pvTargetProfile
,
3750 IN ULONG cjTargetProfile
,
3751 IN DWORD dwReserved
);
3754 (APIENTRY
*PFN_DrvIcmDeleteColorTransform
)(
3756 IN HANDLE hcmXform
);
3759 (APIENTRY
*PFN_DrvIcmSetDeviceGammaRamp
)(
3765 (APIENTRY
*PFN_DrvLineTo
)(
3777 (APIENTRY
*PFN_DrvLoadFontFile
)(
3784 ULONG ulFastCheckSum
);
3787 (APIENTRY
*PFN_DrvMovePointer
)(
3794 (APIENTRY
*PFN_DrvNextBand
)(
3799 (APIENTRY
*PFN_DrvNotify
)(
3805 (APIENTRY
*PFN_DrvOffset
)(
3809 IN FLONG flReserved
);
3812 (APIENTRY
*PFN_DrvPaint
)(
3816 IN POINTL
*pptlBrushOrg
,
3820 (APIENTRY
*PFN_DrvPlgBlt
)(
3826 IN COLORADJUSTMENT
*pca
,
3827 IN POINTL
*pptlBrushOrg
,
3834 (APIENTRY
*PFN_DrvQueryAdvanceWidths
)(
3843 (APIENTRY
*PFN_DrvQueryDeviceSupport
)(
3854 (APIENTRY
*PFN_DrvQueryDriverInfo
)(
3861 (APIENTRY
*PFN_DrvQueryFont
)(
3868 (APIENTRY
*PFN_DrvQueryFontCaps
)(
3870 OUT ULONG
*pulCaps
);
3873 (APIENTRY
*PFN_DrvQueryFontData
)(
3878 IN OUT GLYPHDATA
*pgd
,
3883 (APIENTRY
*PFN_DrvQueryFontFile
)(
3890 (APIENTRY
*PFN_DrvQueryFontTree
)(
3897 typedef PFD_GLYPHATTR
3898 (APIENTRY
*PFN_DrvQueryGlyphAttrs
)(
3903 (APIENTRY
*PFN_DrvQueryPerBandInfo
)(
3905 IN OUT PERBANDINFO
*pbi
);
3908 (APIENTRY
*PFN_DrvQueryTrueTypeOutline
)(
3912 IN BOOL bMetricsOnly
,
3913 IN GLYPHDATA
*pgldt
,
3915 OUT TTPOLYGONHEADER
*ppoly
);
3918 (APIENTRY
*PFN_DrvQueryTrueTypeTable
)(
3925 OUT PBYTE
*ppjTable
,
3926 OUT ULONG
*pcjTable
);
3929 (APIENTRY
*PFN_DrvRealizeBrush
)(
3931 IN SURFOBJ
*psoTarget
,
3932 IN SURFOBJ
*psoPattern
,
3933 IN SURFOBJ
*psoMask
,
3938 (APIENTRY
*PFN_DrvResetDevice
)(
3943 (APIENTRY
*PFN_DrvResetPDEV
)(
3948 (APIENTRY
*PFN_DrvSaveScreenBits
)(
3955 (APIENTRY
*PFN_DrvSendPage
)(
3959 (APIENTRY
*PFN_DrvSetPalette
)(
3967 (APIENTRY
*PFN_DrvSetPixelFormat
)(
3969 IN LONG iPixelFormat
,
3973 (APIENTRY
*PFN_DrvSetPointerShape
)(
3975 IN SURFOBJ
*psoMask
,
3976 IN SURFOBJ
*psoColor
,
3986 (APIENTRY
*PFN_DrvStartBanding
)(
3991 (APIENTRY
*PFN_DrvStartDoc
)(
3993 IN LPWSTR pwszDocName
,
3997 (APIENTRY
*PFN_DrvStartPage
)(
4001 (APIENTRY
*PFN_DrvStretchBlt
)(
4002 IN SURFOBJ
*psoDest
,
4004 IN SURFOBJ
*psoMask
,
4007 IN COLORADJUSTMENT
*pca
,
4008 IN POINTL
*pptlHTOrg
,
4011 IN POINTL
*pptlMask
,
4015 (APIENTRY
*PFN_DrvStretchBltROP
)(
4016 IN SURFOBJ
*psoDest
,
4018 IN SURFOBJ
*psoMask
,
4021 IN COLORADJUSTMENT
*pca
,
4022 IN POINTL
*pptlHTOrg
,
4025 IN POINTL
*pptlMask
,
4031 (APIENTRY
*PFN_DrvStrokeAndFillPath
)(
4036 IN BRUSHOBJ
*pboStroke
,
4037 IN LINEATTRS
*plineattrs
,
4038 IN BRUSHOBJ
*pboFill
,
4039 IN POINTL
*pptlBrushOrg
,
4041 IN FLONG flOptions
);
4044 (APIENTRY
*PFN_DrvStrokePath
)(
4050 IN POINTL
*pptlBrushOrg
,
4051 IN LINEATTRS
*plineattrs
,
4055 (APIENTRY
*PFN_DrvSwapBuffers
)(
4060 (APIENTRY
*PFN_DrvSynchronize
)(
4065 (APIENTRY
*PFN_DrvSynchronizeSurface
)(
4071 (APIENTRY
*PFN_DrvTextOut
)(
4076 IN RECTL
*prclExtra
,
4077 IN RECTL
*prclOpaque
,
4078 IN BRUSHOBJ
*pboFore
,
4079 IN BRUSHOBJ
*pboOpaque
,
4084 (APIENTRY
*PFN_DrvTransparentBlt
)(
4091 IN ULONG iTransColor
,
4092 IN ULONG ulReserved
);
4095 (APIENTRY
*PFN_DrvUnloadFontFile
)(
4096 IN ULONG_PTR iFile
);
4102 DrvDisableDirectDraw(
4106 (APIENTRY
*PFN_DrvDisableDirectDraw
)(
4112 DrvEnableDirectDraw(
4114 OUT DD_CALLBACKS
*pCallBacks
,
4115 OUT DD_SURFACECALLBACKS
*pSurfaceCallBacks
,
4116 OUT DD_PALETTECALLBACKS
*pPaletteCallBacks
);
4119 (APIENTRY
*PFN_DrvEnableDirectDraw
)(
4121 OUT DD_CALLBACKS
*pCallBacks
,
4122 OUT DD_SURFACECALLBACKS
*pSurfaceCallBacks
,
4123 OUT DD_PALETTECALLBACKS
*pPaletteCallBacks
);
4128 DrvGetDirectDrawInfo(
4130 OUT DD_HALINFO
*pHalInfo
,
4131 OUT DWORD
*pdwNumHeaps
,
4132 OUT VIDEOMEMORY
*pvmList
,
4133 OUT DWORD
*pdwNumFourCCCodes
,
4134 OUT DWORD
*pdwFourCC
);
4137 (APIENTRY
*PFN_DrvGetDirectDrawInfo
)(
4139 OUT DD_HALINFO
*pHalInfo
,
4140 OUT DWORD
*pdwNumHeaps
,
4141 OUT VIDEOMEMORY
*pvmList
,
4142 OUT DWORD
*pdwNumFourCCCodes
,
4143 OUT DWORD
*pdwFourCC
);
4145 //DECLSPEC_DEPRECATED_DDK
4150 IN LPWSTR pwchType
);
4153 (APIENTRY
*PFN_DrvQuerySpoolType
)(
4155 IN LPWSTR pwchType
);
4162 #endif /* defined __VIDEO_H__ */
4164 #endif /* _WINDDI_ */