| /* | 
 |  * winddi.h | 
 |  * | 
 |  * GDI device driver interface | 
 |  * | 
 |  * This file is part of the w32api package. | 
 |  * | 
 |  * Contributors: | 
 |  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net> | 
 |  * | 
 |  * THIS SOFTWARE IS NOT COPYRIGHTED | 
 |  * | 
 |  * This source code is offered for use in the public domain. You may | 
 |  * use, modify or distribute it freely. | 
 |  * | 
 |  * This code is distributed in the hope that it will be useful but | 
 |  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY | 
 |  * DISCLAIMED. This includes but is not limited to warranties of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 
 |  * | 
 |  */ | 
 |  | 
 | #ifndef _WINDDI_ | 
 | #define _WINDDI_ | 
 |  | 
 | #ifdef __VIDEO_H__ | 
 | #error video.h cannot be included with winddi.h | 
 | #else | 
 |  | 
 | #include <ddrawint.h> | 
 | #include <d3dnthal.h> | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | #ifndef DECLSPEC_IMPORT | 
 | #ifndef __WIDL__ | 
 | #define DECLSPEC_IMPORT __declspec(dllimport) | 
 | #else | 
 | #define DECLSPEC_IMPORT | 
 | #endif | 
 | #endif | 
 |  | 
 | #ifndef WIN32KAPI | 
 | #define WIN32KAPI DECLSPEC_ADDRSAFE | 
 | #endif | 
 |  | 
 | #define DDI_DRIVER_VERSION_NT4            0x00020000 | 
 | #define DDI_DRIVER_VERSION_SP3            0x00020003 | 
 | #define DDI_DRIVER_VERSION_NT5            0x00030000 | 
 | #define DDI_DRIVER_VERSION_NT5_01         0x00030100 | 
 |  | 
 | #define GDI_DRIVER_VERSION                0x4000 | 
 |  | 
 | #ifdef _X86_ | 
 |  | 
 | typedef DWORD FLOATL; | 
 |  | 
 | #else /* !_X86_ */ | 
 |  | 
 | typedef FLOAT FLOATL; | 
 |  | 
 | #endif | 
 |  | 
 | typedef SHORT FWORD; | 
 | typedef LONG LDECI4; | 
 | typedef ULONG IDENT; | 
 |  | 
 | typedef ULONG_PTR HFF; | 
 | typedef ULONG_PTR HFC; | 
 |  | 
 | typedef LONG PTRDIFF; | 
 | typedef PTRDIFF *PPTRDIFF; | 
 | typedef LONG FIX; | 
 | typedef FIX *PFIX; | 
 | typedef ULONG ROP4; | 
 | typedef ULONG MIX; | 
 | typedef ULONG HGLYPH; | 
 | typedef HGLYPH *PHGLYPH; | 
 |  | 
 | typedef LONG_PTR (APIENTRY *PFN)(); | 
 |  | 
 | DECLARE_HANDLE(HBM); | 
 | DECLARE_HANDLE(HDEV); | 
 | DECLARE_HANDLE(HSURF); | 
 | DECLARE_HANDLE(DHSURF); | 
 | DECLARE_HANDLE(DHPDEV); | 
 | DECLARE_HANDLE(HDRVOBJ); | 
 |  | 
 | #ifndef _NTDDVDEO_ | 
 | typedef struct _ENG_EVENT *PEVENT; | 
 | #endif | 
 |  | 
 | #define OPENGL_CMD                        4352 | 
 | #define OPENGL_GETINFO                    4353 | 
 | #define WNDOBJ_SETUP                      4354 | 
 |  | 
 | #define FD_ERROR                          0xFFFFFFFF | 
 | #define DDI_ERROR                         0xFFFFFFFF | 
 |  | 
 | #define HFF_INVALID                       ((HFF) 0) | 
 | #define HFC_INVALID                       ((HFC) 0) | 
 | #define HGLYPH_INVALID                    ((HGLYPH) -1) | 
 |  | 
 | #define FP_ALTERNATEMODE                  1 | 
 | #define FP_WINDINGMODE                    2 | 
 |  | 
 | #define DN_ACCELERATION_LEVEL             1 | 
 | #define DN_DEVICE_ORIGIN                  2 | 
 | #define DN_SLEEP_MODE                     3 | 
 | #define DN_DRAWING_BEGIN                  4 | 
 |  | 
 | #define DCR_SOLID                         0 | 
 | #define DCR_DRIVER                        1 | 
 | #define DCR_HALFTONE                      2 | 
 |  | 
 | #define GX_IDENTITY                       0 | 
 | #define GX_OFFSET                         1 | 
 | #define GX_SCALE                          2 | 
 | #define GX_GENERAL                        3 | 
 |  | 
 | #define LTOFX(x)        ((x) << 4) | 
 | #define FXTOL(x)        ((x) >> 4) | 
 | #define FXTOLFLOOR(x)   ((x) >> 4) | 
 | #define FXTOLCEILING(x) ((x + 0x0F) >> 4) | 
 | #define FXTOLROUND(x)   ((((x) >> 3) + 1) >> 1) | 
 |  | 
 | typedef struct _POINTE { | 
 | 	FLOATL  x; | 
 | 	FLOATL  y; | 
 | } POINTE, *PPOINTE; | 
 |  | 
 | typedef union _FLOAT_LONG { | 
 |   FLOATL  e; | 
 |   LONG  l; | 
 | } FLOAT_LONG, *PFLOAT_LONG; | 
 |  | 
 | typedef struct _POINTFIX { | 
 |   FIX  x; | 
 |   FIX  y; | 
 | } POINTFIX, *PPOINTFIX; | 
 |  | 
 | typedef struct _RECTFX { | 
 |   FIX  xLeft; | 
 |   FIX  yTop; | 
 |   FIX  xRight; | 
 |   FIX  yBottom; | 
 | } RECTFX, *PRECTFX; | 
 |  | 
 | typedef struct _POINTQF { | 
 |   LARGE_INTEGER  x; | 
 |   LARGE_INTEGER  y; | 
 | } POINTQF, *PPOINTQF; | 
 |  | 
 |  | 
 | typedef struct _BLENDOBJ { | 
 |   BLENDFUNCTION  BlendFunction; | 
 | } BLENDOBJ,*PBLENDOBJ; | 
 |  | 
 | /* BRUSHOBJ.flColorType */ | 
 | #define BR_DEVICE_ICM    0x01 | 
 | #define BR_HOST_ICM      0x02 | 
 | #define BR_CMYKCOLOR     0x04 | 
 | #define BR_ORIGCOLOR     0x08 | 
 |  | 
 | typedef struct _BRUSHOBJ { | 
 |   ULONG  iSolidColor; | 
 |   PVOID  pvRbrush; | 
 |   FLONG  flColorType; | 
 | } BRUSHOBJ; | 
 |  | 
 | typedef struct _CIECHROMA { | 
 |   LDECI4  x; | 
 |   LDECI4  y; | 
 |   LDECI4  Y; | 
 | } CIECHROMA; | 
 |  | 
 | typedef struct _RUN { | 
 |   LONG  iStart; | 
 |   LONG  iStop; | 
 | } RUN, *PRUN; | 
 |  | 
 | typedef struct _CLIPLINE { | 
 |   POINTFIX  ptfxA; | 
 |   POINTFIX  ptfxB; | 
 |   LONG  lStyleState; | 
 |   ULONG  c; | 
 |   RUN  arun[1]; | 
 | } CLIPLINE, *PCLIPLINE; | 
 |  | 
 | /* CLIPOBJ.iDComplexity constants */ | 
 | #define DC_TRIVIAL                        0 | 
 | #define DC_RECT                           1 | 
 | #define DC_COMPLEX                        3 | 
 |  | 
 | /* CLIPOBJ.iFComplexity constants */ | 
 | #define FC_RECT                           1 | 
 | #define FC_RECT4                          2 | 
 | #define FC_COMPLEX                        3 | 
 |  | 
 | /* CLIPOBJ.iMode constants */ | 
 | #define TC_RECTANGLES                     0 | 
 | #define TC_PATHOBJ                        2 | 
 |  | 
 | /* CLIPOBJ.fjOptions constants */ | 
 | #define OC_BANK_CLIP                      1 | 
 |  | 
 | typedef struct _CLIPOBJ { | 
 |   ULONG  iUniq; | 
 |   RECTL  rclBounds; | 
 |   BYTE  iDComplexity; | 
 |   BYTE  iFComplexity; | 
 |   BYTE  iMode; | 
 |   BYTE  fjOptions; | 
 | } CLIPOBJ; | 
 |  | 
 | typedef struct _COLORINFO { | 
 |   CIECHROMA  Red; | 
 |   CIECHROMA  Green; | 
 |   CIECHROMA  Blue; | 
 |   CIECHROMA  Cyan; | 
 |   CIECHROMA  Magenta; | 
 |   CIECHROMA  Yellow; | 
 |   CIECHROMA  AlignmentWhite; | 
 |   LDECI4  RedGamma; | 
 |   LDECI4  GreenGamma; | 
 |   LDECI4  BlueGamma; | 
 |   LDECI4  MagentaInCyanDye; | 
 |   LDECI4  YellowInCyanDye; | 
 |   LDECI4  CyanInMagentaDye; | 
 |   LDECI4  YellowInMagentaDye; | 
 |   LDECI4  CyanInYellowDye; | 
 |   LDECI4  MagentaInYellowDye; | 
 | } COLORINFO, *PCOLORINFO; | 
 |  | 
 | /* DEVHTADJDATA.DeviceFlags constants */ | 
 | #define DEVHTADJF_COLOR_DEVICE            0x00000001 | 
 | #define DEVHTADJF_ADDITIVE_DEVICE         0x00000002 | 
 |  | 
 | typedef struct _DEVHTINFO { | 
 |   DWORD  HTFlags; | 
 |   DWORD  HTPatternSize; | 
 |   DWORD  DevPelsDPI; | 
 |   COLORINFO  ColorInfo; | 
 | } DEVHTINFO, *PDEVHTINFO; | 
 |  | 
 | typedef struct _DEVHTADJDATA { | 
 |   DWORD   DeviceFlags; | 
 |   DWORD   DeviceXDPI; | 
 |   DWORD   DeviceYDPI; | 
 |   PDEVHTINFO  pDefHTInfo; | 
 |   PDEVHTINFO  pAdjHTInfo; | 
 | } DEVHTADJDATA, *PDEVHTADJDATA; | 
 |  | 
 | /* DEVINFO.flGraphicsCaps flags */ | 
 | #define GCAPS_BEZIERS           0x00000001 | 
 | #define GCAPS_GEOMETRICWIDE     0x00000002 | 
 | #define GCAPS_ALTERNATEFILL     0x00000004 | 
 | #define GCAPS_WINDINGFILL       0x00000008 | 
 | #define GCAPS_HALFTONE          0x00000010 | 
 | #define GCAPS_COLOR_DITHER      0x00000020 | 
 | #define GCAPS_HORIZSTRIKE       0x00000040 | 
 | #define GCAPS_VERTSTRIKE        0x00000080 | 
 | #define GCAPS_OPAQUERECT        0x00000100 | 
 | #define GCAPS_VECTORFONT        0x00000200 | 
 | #define GCAPS_MONO_DITHER       0x00000400 | 
 | #define GCAPS_ASYNCCHANGE       0x00000800 | 
 | #define GCAPS_ASYNCMOVE         0x00001000 | 
 | #define GCAPS_DONTJOURNAL       0x00002000 | 
 | #define GCAPS_DIRECTDRAW        0x00004000 | 
 | #define GCAPS_ARBRUSHOPAQUE     0x00008000 | 
 | #define GCAPS_PANNING           0x00010000 | 
 | #define GCAPS_HIGHRESTEXT       0x00040000 | 
 | #define GCAPS_PALMANAGED        0x00080000 | 
 | #define GCAPS_DITHERONREALIZE   0x00200000 | 
 | #define GCAPS_NO64BITMEMACCESS  0x00400000 | 
 | #define GCAPS_FORCEDITHER       0x00800000 | 
 | #define GCAPS_GRAY16            0x01000000 | 
 | #define GCAPS_ICM               0x02000000 | 
 | #define GCAPS_CMYKCOLOR         0x04000000 | 
 | #define GCAPS_LAYERED           0x08000000 | 
 | #define GCAPS_ARBRUSHTEXT       0x10000000 | 
 | #define GCAPS_SCREENPRECISION   0x20000000 | 
 | #define GCAPS_FONT_RASTERIZER   0x40000000 | 
 | #define GCAPS_NUP               0x80000000 | 
 |  | 
 | /* DEVINFO.iDitherFormat constants */ | 
 | #define BMF_1BPP       __MSABI_LONG(1) | 
 | #define BMF_4BPP       __MSABI_LONG(2) | 
 | #define BMF_8BPP       __MSABI_LONG(3) | 
 | #define BMF_16BPP      __MSABI_LONG(4) | 
 | #define BMF_24BPP      __MSABI_LONG(5) | 
 | #define BMF_32BPP      __MSABI_LONG(6) | 
 | #define BMF_4RLE       __MSABI_LONG(7) | 
 | #define BMF_8RLE       __MSABI_LONG(8) | 
 | #define BMF_JPEG       __MSABI_LONG(9) | 
 | #define BMF_PNG       __MSABI_LONG(10) | 
 |  | 
 | /* DEVINFO.flGraphicsCaps2 flags */ | 
 | #define GCAPS2_JPEGSRC          0x00000001 | 
 | #define GCAPS2_xxxx             0x00000002 | 
 | #define GCAPS2_PNGSRC           0x00000008 | 
 | #define GCAPS2_CHANGEGAMMARAMP  0x00000010 | 
 | #define GCAPS2_ALPHACURSOR      0x00000020 | 
 | #define GCAPS2_SYNCFLUSH        0x00000040 | 
 | #define GCAPS2_SYNCTIMER        0x00000080 | 
 | #define GCAPS2_ICD_MULTIMON     0x00000100 | 
 | #define GCAPS2_MOUSETRAILS      0x00000200 | 
 | #define GCAPS2_RESERVED1        0x00000400 | 
 |  | 
 | typedef struct _DEVINFO { | 
 |   FLONG  flGraphicsCaps; | 
 |   LOGFONTW  lfDefaultFont; | 
 |   LOGFONTW  lfAnsiVarFont; | 
 |   LOGFONTW  lfAnsiFixFont; | 
 |   ULONG  cFonts; | 
 |   ULONG  iDitherFormat; | 
 |   USHORT  cxDither; | 
 |   USHORT  cyDither; | 
 |   HPALETTE  hpalDefault; | 
 |   FLONG  flGraphicsCaps2; | 
 | } DEVINFO, *PDEVINFO; | 
 |  | 
 | struct _DRIVEROBJ; | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY CALLBACK *FREEOBJPROC)( | 
 |   struct _DRIVEROBJ  *pDriverObj); | 
 |  | 
 | typedef struct _DRIVEROBJ { | 
 |   PVOID  pvObj; | 
 |   FREEOBJPROC  pFreeProc; | 
 |   HDEV  hdev; | 
 |   DHPDEV  dhpdev; | 
 | } DRIVEROBJ; | 
 |  | 
 | /* DRVFN.iFunc constants */ | 
 | #define INDEX_DrvEnablePDEV               __MSABI_LONG(0) | 
 | #define INDEX_DrvCompletePDEV             __MSABI_LONG(1) | 
 | #define INDEX_DrvDisablePDEV              __MSABI_LONG(2) | 
 | #define INDEX_DrvEnableSurface            __MSABI_LONG(3) | 
 | #define INDEX_DrvDisableSurface           __MSABI_LONG(4) | 
 | #define INDEX_DrvAssertMode               __MSABI_LONG(5) | 
 | #define INDEX_DrvOffset                   __MSABI_LONG(6) | 
 | #define INDEX_DrvResetPDEV                __MSABI_LONG(7) | 
 | #define INDEX_DrvDisableDriver            __MSABI_LONG(8) | 
 | #define INDEX_DrvUnknown1                 __MSABI_LONG(9) | 
 | #define INDEX_DrvCreateDeviceBitmap       __MSABI_LONG(10) | 
 | #define INDEX_DrvDeleteDeviceBitmap       __MSABI_LONG(11) | 
 | #define INDEX_DrvRealizeBrush             __MSABI_LONG(12) | 
 | #define INDEX_DrvDitherColor              __MSABI_LONG(13) | 
 | #define INDEX_DrvStrokePath               __MSABI_LONG(14) | 
 | #define INDEX_DrvFillPath                 __MSABI_LONG(15) | 
 | #define INDEX_DrvStrokeAndFillPath        __MSABI_LONG(16) | 
 | #define INDEX_DrvPaint                    __MSABI_LONG(17) | 
 | #define INDEX_DrvBitBlt                   __MSABI_LONG(18) | 
 | #define INDEX_DrvCopyBits                 __MSABI_LONG(19) | 
 | #define INDEX_DrvStretchBlt               __MSABI_LONG(20) | 
 | #define INDEX_DrvUnknown2                 __MSABI_LONG(21) | 
 | #define INDEX_DrvSetPalette               __MSABI_LONG(22) | 
 | #define INDEX_DrvTextOut                  __MSABI_LONG(23) | 
 | #define INDEX_DrvEscape                   __MSABI_LONG(24) | 
 | #define INDEX_DrvDrawEscape               __MSABI_LONG(25) | 
 | #define INDEX_DrvQueryFont                __MSABI_LONG(26) | 
 | #define INDEX_DrvQueryFontTree            __MSABI_LONG(27) | 
 | #define INDEX_DrvQueryFontData            __MSABI_LONG(28) | 
 | #define INDEX_DrvSetPointerShape          __MSABI_LONG(29) | 
 | #define INDEX_DrvMovePointer              __MSABI_LONG(30) | 
 | #define INDEX_DrvLineTo                   __MSABI_LONG(31) | 
 | #define INDEX_DrvSendPage                 __MSABI_LONG(32) | 
 | #define INDEX_DrvStartPage                __MSABI_LONG(33) | 
 | #define INDEX_DrvEndDoc                   __MSABI_LONG(34) | 
 | #define INDEX_DrvStartDoc                 __MSABI_LONG(35) | 
 | #define INDEX_DrvUnknown3                 __MSABI_LONG(36) | 
 | #define INDEX_DrvGetGlyphMode             __MSABI_LONG(37) | 
 | #define INDEX_DrvSynchronize              __MSABI_LONG(38) | 
 | #define INDEX_DrvUnknown4                 __MSABI_LONG(39) | 
 | #define INDEX_DrvSaveScreenBits           __MSABI_LONG(40) | 
 | #define INDEX_DrvGetModes                 __MSABI_LONG(41) | 
 | #define INDEX_DrvFree                     __MSABI_LONG(42) | 
 | #define INDEX_DrvDestroyFont              __MSABI_LONG(43) | 
 | #define INDEX_DrvQueryFontCaps            __MSABI_LONG(44) | 
 | #define INDEX_DrvLoadFontFile             __MSABI_LONG(45) | 
 | #define INDEX_DrvUnloadFontFile           __MSABI_LONG(46) | 
 | #define INDEX_DrvFontManagement           __MSABI_LONG(47) | 
 | #define INDEX_DrvQueryTrueTypeTable       __MSABI_LONG(48) | 
 | #define INDEX_DrvQueryTrueTypeOutline     __MSABI_LONG(49) | 
 | #define INDEX_DrvGetTrueTypeFile          __MSABI_LONG(50) | 
 | #define INDEX_DrvQueryFontFile            __MSABI_LONG(51) | 
 | #define INDEX_DrvMovePanning              __MSABI_LONG(52) | 
 | #define INDEX_DrvQueryAdvanceWidths       __MSABI_LONG(53) | 
 | #define INDEX_DrvSetPixelFormat           __MSABI_LONG(54) | 
 | #define INDEX_DrvDescribePixelFormat      __MSABI_LONG(55) | 
 | #define INDEX_DrvSwapBuffers              __MSABI_LONG(56) | 
 | #define INDEX_DrvStartBanding             __MSABI_LONG(57) | 
 | #define INDEX_DrvNextBand                 __MSABI_LONG(58) | 
 | #define INDEX_DrvGetDirectDrawInfo        __MSABI_LONG(59) | 
 | #define INDEX_DrvEnableDirectDraw         __MSABI_LONG(60) | 
 | #define INDEX_DrvDisableDirectDraw        __MSABI_LONG(61) | 
 | #define INDEX_DrvQuerySpoolType           __MSABI_LONG(62) | 
 | #define INDEX_DrvUnknown5                 __MSABI_LONG(63) | 
 | #define INDEX_DrvIcmCreateColorTransform  __MSABI_LONG(64) | 
 | #define INDEX_DrvIcmDeleteColorTransform  __MSABI_LONG(65) | 
 | #define INDEX_DrvIcmCheckBitmapBits       __MSABI_LONG(66) | 
 | #define INDEX_DrvIcmSetDeviceGammaRamp    __MSABI_LONG(67) | 
 | #define INDEX_DrvGradientFill             __MSABI_LONG(68) | 
 | #define INDEX_DrvStretchBltROP            __MSABI_LONG(69) | 
 | #define INDEX_DrvPlgBlt                   __MSABI_LONG(70) | 
 | #define INDEX_DrvAlphaBlend               __MSABI_LONG(71) | 
 | #define INDEX_DrvSynthesizeFont           __MSABI_LONG(72) | 
 | #define INDEX_DrvGetSynthesizedFontFiles  __MSABI_LONG(73) | 
 | #define INDEX_DrvTransparentBlt           __MSABI_LONG(74) | 
 | #define INDEX_DrvQueryPerBandInfo         __MSABI_LONG(75) | 
 | #define INDEX_DrvQueryDeviceSupport       __MSABI_LONG(76) | 
 | #define INDEX_DrvReserved1                __MSABI_LONG(77) | 
 | #define INDEX_DrvReserved2                __MSABI_LONG(78) | 
 | #define INDEX_DrvReserved3                __MSABI_LONG(79) | 
 | #define INDEX_DrvReserved4                __MSABI_LONG(80) | 
 | #define INDEX_DrvReserved5                __MSABI_LONG(81) | 
 | #define INDEX_DrvReserved6                __MSABI_LONG(82) | 
 | #define INDEX_DrvReserved7                __MSABI_LONG(83) | 
 | #define INDEX_DrvReserved8                __MSABI_LONG(84) | 
 | #define INDEX_DrvDeriveSurface            __MSABI_LONG(85) | 
 | #define INDEX_DrvQueryGlyphAttrs          __MSABI_LONG(86) | 
 | #define INDEX_DrvNotify                   __MSABI_LONG(87) | 
 | #define INDEX_DrvSynchronizeSurface       __MSABI_LONG(88) | 
 | #define INDEX_DrvResetDevice              __MSABI_LONG(89) | 
 | #define INDEX_DrvReserved9                __MSABI_LONG(90) | 
 | #define INDEX_DrvReserved10               __MSABI_LONG(91) | 
 | #define INDEX_DrvReserved11               __MSABI_LONG(92) | 
 | #define INDEX_LAST                        __MSABI_LONG(93) | 
 |  | 
 | typedef struct _DRVFN { | 
 |   ULONG  iFunc; | 
 |   PFN  pfn; | 
 | } DRVFN, *PDRVFN; | 
 |  | 
 | /* DRVENABLEDATA.iDriverVersion constants */ | 
 | #define DDI_DRIVER_VERSION_NT4            0x00020000 | 
 | #define DDI_DRIVER_VERSION_SP3            0x00020003 | 
 | #define DDI_DRIVER_VERSION_NT5            0x00030000 | 
 | #define DDI_DRIVER_VERSION_NT5_01         0x00030100 | 
 | #define DDI_DRIVER_VERSION_NT5_01_SP1     0x00030101 | 
 |  | 
 | typedef struct _DRVENABLEDATA { | 
 |   ULONG  iDriverVersion; | 
 |   ULONG  c; | 
 |   DRVFN  *pdrvfn; | 
 | } DRVENABLEDATA, *PDRVENABLEDATA; | 
 |  | 
 | DECLARE_HANDLE(HSEMAPHORE); | 
 |  | 
 | typedef struct { | 
 |   DWORD  nSize; | 
 |   HDC  hdc; | 
 |   PBYTE  pvEMF; | 
 |   PBYTE  pvCurrentRecord; | 
 | } EMFINFO, *PEMFINFO; | 
 |  | 
 | typedef struct _ENGSAFESEMAPHORE { | 
 |   HSEMAPHORE  hsem; | 
 |   LONG  lCount; | 
 | } ENGSAFESEMAPHORE; | 
 |  | 
 | typedef struct _ENG_TIME_FIELDS { | 
 |   USHORT  usYear; | 
 |   USHORT  usMonth; | 
 |   USHORT  usDay; | 
 |   USHORT  usHour; | 
 |   USHORT  usMinute; | 
 |   USHORT  usSecond; | 
 |   USHORT  usMilliseconds; | 
 |   USHORT  usWeekday; | 
 | } ENG_TIME_FIELDS, *PENG_TIME_FIELDS; | 
 |  | 
 | typedef struct _ENUMRECTS { | 
 |   ULONG  c; | 
 |   RECTL  arcl[1]; | 
 | } ENUMRECTS; | 
 |  | 
 | typedef struct _FD_XFORM { | 
 |   FLOATL  eXX; | 
 |   FLOATL  eXY; | 
 |   FLOATL  eYX; | 
 |   FLOATL  eYY; | 
 | } FD_XFORM, *PFD_XFORM; | 
 |  | 
 | /* FD_DEVICEMETRICS.flRealizedType constants */ | 
 | #define FDM_TYPE_BM_SIDE_CONST            0x00000001 | 
 | #define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE     0x00000002 | 
 | #define FDM_TYPE_CHAR_INC_EQUAL_BM_BASE   0x00000004 | 
 | #define FDM_TYPE_ZERO_BEARINGS            0x00000008 | 
 | #define FDM_TYPE_CONST_BEARINGS           0x00000010 | 
 |  | 
 | typedef struct _FD_DEVICEMETRICS { | 
 |   FLONG  flRealizedType; | 
 |   POINTE  pteBase; | 
 |   POINTE  pteSide; | 
 |   LONG  lD; | 
 |   FIX  fxMaxAscender; | 
 |   FIX  fxMaxDescender; | 
 |   POINTL  ptlUnderline1; | 
 |   POINTL  ptlStrikeout; | 
 |   POINTL  ptlULThickness; | 
 |   POINTL  ptlSOThickness; | 
 |   ULONG  cxMax; | 
 |   ULONG  cyMax; | 
 |   ULONG  cjGlyphMax; | 
 |   FD_XFORM  fdxQuantized; | 
 |   LONG  lNonLinearExtLeading; | 
 |   LONG  lNonLinearIntLeading; | 
 |   LONG  lNonLinearMaxCharWidth; | 
 |   LONG  lNonLinearAvgCharWidth; | 
 |   LONG  lMinA; | 
 |   LONG  lMinC; | 
 |   LONG  lMinD; | 
 |   LONG  alReserved[1]; | 
 | } FD_DEVICEMETRICS, *PFD_DEVICEMETRICS; | 
 |  | 
 | /* FD_GLYPHATTR.iMode constants */ | 
 | #define FO_ATTR_MODE_ROTATE               1 | 
 |  | 
 | typedef struct _FD_GLYPHATTR { | 
 |   ULONG  cjThis; | 
 |   ULONG  cGlyphs; | 
 |   ULONG  iMode; | 
 |   BYTE  aGlyphAttr[1]; | 
 | } FD_GLYPHATTR, *PFD_GLYPHATTR; | 
 |  | 
 | /* FD_GLYPHSET.flAccel */ | 
 | #define GS_UNICODE_HANDLES                0x00000001 | 
 | #define GS_8BIT_HANDLES                   0x00000002 | 
 | #define GS_16BIT_HANDLES                  0x00000004 | 
 |  | 
 | typedef struct _WCRUN { | 
 |   WCHAR  wcLow; | 
 |   USHORT  cGlyphs; | 
 |   HGLYPH  *phg; | 
 | } WCRUN, *PWCRUN; | 
 |  | 
 | typedef struct _FD_GLYPHSET { | 
 |   ULONG  cjThis; | 
 |   FLONG  flAccel; | 
 |   ULONG  cGlyphsSupported; | 
 |   ULONG  cRuns; | 
 |   WCRUN  awcrun[1]; | 
 | } FD_GLYPHSET, *PFD_GLYPHSET; | 
 |  | 
 | typedef struct _FD_KERNINGPAIR { | 
 |   WCHAR  wcFirst; | 
 |   WCHAR  wcSecond; | 
 |   FWORD  fwdKern; | 
 | } FD_KERNINGPAIR; | 
 |  | 
 | #if defined(_X86_) && !defined(USERMODE_DRIVER) | 
 | typedef struct _FLOATOBJ | 
 | { | 
 |   ULONG  ul1; | 
 |   ULONG  ul2; | 
 | } FLOATOBJ, *PFLOATOBJ; | 
 | #else | 
 | typedef FLOAT FLOATOBJ, *PFLOATOBJ; | 
 | #endif | 
 |  | 
 | typedef struct _FLOATOBJ_XFORM { | 
 |   FLOATOBJ  eM11; | 
 |   FLOATOBJ  eM12; | 
 |   FLOATOBJ  eM21; | 
 |   FLOATOBJ  eM22; | 
 |   FLOATOBJ  eDx; | 
 |   FLOATOBJ  eDy; | 
 | } FLOATOBJ_XFORM, *PFLOATOBJ_XFORM, FAR *LPFLOATOBJ_XFORM; | 
 |  | 
 | /* FONTDIFF.fsSelection */ | 
 | #define FM_SEL_ITALIC                     0x0001 | 
 | #define FM_SEL_UNDERSCORE                 0x0002 | 
 | #define FM_SEL_NEGATIVE                   0x0004 | 
 | #define FM_SEL_OUTLINED                   0x0008 | 
 | #define FM_SEL_STRIKEOUT                  0x0010 | 
 | #define FM_SEL_BOLD                       0x0020 | 
 | #define FM_SEL_REGULAR                    0x0040 | 
 |  | 
 | typedef struct _FONTDIFF { | 
 |   BYTE  jReserved1; | 
 |   BYTE  jReserved2; | 
 |   BYTE  jReserved3; | 
 |   BYTE  bWeight; | 
 |   USHORT  usWinWeight; | 
 |   FSHORT  fsSelection; | 
 |   FWORD  fwdAveCharWidth; | 
 |   FWORD  fwdMaxCharInc; | 
 |   POINTL  ptlCaret; | 
 | } FONTDIFF; | 
 |  | 
 | typedef struct _FONTSIM { | 
 |   PTRDIFF  dpBold; | 
 |   PTRDIFF  dpItalic; | 
 |   PTRDIFF  dpBoldItalic; | 
 | } FONTSIM; | 
 |  | 
 | /* FONTINFO.flCaps constants */ | 
 | #define FO_DEVICE_FONT                    __MSABI_LONG(1) | 
 | #define FO_OUTLINE_CAPABLE                __MSABI_LONG(2) | 
 |  | 
 | typedef struct _FONTINFO { | 
 |   ULONG  cjThis; | 
 |   FLONG  flCaps; | 
 |   ULONG  cGlyphsSupported; | 
 |   ULONG  cjMaxGlyph1; | 
 |   ULONG  cjMaxGlyph4; | 
 |   ULONG  cjMaxGlyph8; | 
 |   ULONG  cjMaxGlyph32; | 
 | } FONTINFO, *PFONTINFO; | 
 |  | 
 | /* FONTOBJ.flFontType constants */ | 
 | #define FO_TYPE_RASTER   RASTER_FONTTYPE | 
 | #define FO_TYPE_DEVICE   DEVICE_FONTTYPE | 
 | #define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE | 
 | #define FO_TYPE_OPENTYPE OPENTYPE_FONTTYPE | 
 |  | 
 | #define FO_SIM_BOLD      0x00002000 | 
 | #define FO_SIM_ITALIC    0x00004000 | 
 | #define FO_EM_HEIGHT     0x00008000 | 
 | #define FO_GRAY16        0x00010000 | 
 | #define FO_NOGRAY16      0x00020000 | 
 | #define FO_NOHINTS       0x00040000 | 
 | #define FO_NO_CHOICE     0x00080000 | 
 | #define FO_CFF            0x00100000 | 
 | #define FO_POSTSCRIPT     0x00200000 | 
 | #define FO_MULTIPLEMASTER 0x00400000 | 
 | #define FO_VERT_FACE      0x00800000 | 
 | #define FO_DBCS_FONT      0X01000000 | 
 | #define FO_NOCLEARTYPE    0x02000000 | 
 | #define FO_CLEARTYPE_X    0x10000000 | 
 | #define FO_CLEARTYPE_Y    0x20000000 | 
 |  | 
 | typedef struct _FONTOBJ { | 
 |   ULONG  iUniq; | 
 |   ULONG  iFace; | 
 |   ULONG  cxMax; | 
 |   FLONG  flFontType; | 
 |   ULONG_PTR  iTTUniq; | 
 |   ULONG_PTR  iFile; | 
 |   SIZE  sizLogResPpi; | 
 |   ULONG  ulStyleSize; | 
 |   PVOID  pvConsumer; | 
 |   PVOID  pvProducer; | 
 | } FONTOBJ; | 
 |  | 
 | typedef struct _GAMMARAMP { | 
 |   WORD  Red[256]; | 
 |   WORD  Green[256]; | 
 |   WORD  Blue[256]; | 
 | } GAMMARAMP, *PGAMMARAMP; | 
 |  | 
 | /* GDIINFO.ulPrimaryOrder constants */ | 
 | #define PRIMARY_ORDER_ABC                 0 | 
 | #define PRIMARY_ORDER_ACB                 1 | 
 | #define PRIMARY_ORDER_BAC                 2 | 
 | #define PRIMARY_ORDER_BCA                 3 | 
 | #define PRIMARY_ORDER_CBA                 4 | 
 | #define PRIMARY_ORDER_CAB                 5 | 
 |  | 
 | /* GDIINFO.ulHTPatternSize constants */ | 
 | #define HT_PATSIZE_2x2                    0 | 
 | #define HT_PATSIZE_2x2_M                  1 | 
 | #define HT_PATSIZE_4x4                    2 | 
 | #define HT_PATSIZE_4x4_M                  3 | 
 | #define HT_PATSIZE_6x6                    4 | 
 | #define HT_PATSIZE_6x6_M                  5 | 
 | #define HT_PATSIZE_8x8                    6 | 
 | #define HT_PATSIZE_8x8_M                  7 | 
 | #define HT_PATSIZE_10x10                  8 | 
 | #define HT_PATSIZE_10x10_M                9 | 
 | #define HT_PATSIZE_12x12                  10 | 
 | #define HT_PATSIZE_12x12_M                11 | 
 | #define HT_PATSIZE_14x14                  12 | 
 | #define HT_PATSIZE_14x14_M                13 | 
 | #define HT_PATSIZE_16x16                  14 | 
 | #define HT_PATSIZE_16x16_M                15 | 
 | #define HT_PATSIZE_SUPERCELL              16 | 
 | #define HT_PATSIZE_SUPERCELL_M            17 | 
 | #define HT_PATSIZE_USER                   18 | 
 | #define HT_PATSIZE_MAX_INDEX              HT_PATSIZE_USER | 
 | #define HT_PATSIZE_DEFAULT                HT_PATSIZE_SUPERCELL_M | 
 | #define HT_USERPAT_CX_MIN                 4 | 
 | #define HT_USERPAT_CX_MAX                 256 | 
 | #define HT_USERPAT_CY_MIN                 4 | 
 | #define HT_USERPAT_CY_MAX                 256 | 
 |  | 
 | /* GDIINFO.ulHTOutputFormat constants */ | 
 | #define HT_FORMAT_1BPP                    0 | 
 | #define HT_FORMAT_4BPP                    2 | 
 | #define HT_FORMAT_4BPP_IRGB               3 | 
 | #define HT_FORMAT_8BPP                    4 | 
 | #define HT_FORMAT_16BPP                   5 | 
 | #define HT_FORMAT_24BPP                   6 | 
 | #define HT_FORMAT_32BPP                   7 | 
 |  | 
 | /* GDIINFO.flHTFlags */ | 
 | #define HT_FLAG_SQUARE_DEVICE_PEL         0x00000001 | 
 | #define HT_FLAG_HAS_BLACK_DYE             0x00000002 | 
 | #define HT_FLAG_ADDITIVE_PRIMS            0x00000004 | 
 | #define HT_FLAG_USE_8BPP_BITMASK          0x00000008 | 
 | #define HT_FLAG_INK_HIGH_ABSORPTION       0x00000010 | 
 | #define HT_FLAG_INK_ABSORPTION_INDICES    0x00000060 | 
 | #define HT_FLAG_DO_DEVCLR_XFORM           0x00000080 | 
 | #define HT_FLAG_OUTPUT_CMY                0x00000100 | 
 | #define HT_FLAG_PRINT_DRAFT_MODE          0x00000200 | 
 | #define HT_FLAG_INVERT_8BPP_BITMASK_IDX   0x00000400 | 
 | #define HT_FLAG_8BPP_CMY332_MASK          0xFF000000 | 
 |  | 
 | #define MAKE_CMYMASK_BYTE(c,m,y)          ((BYTE)(((BYTE)(c) & 0x07) << 5) \ | 
 |                                           |(BYTE)(((BYTE)(m) & 0x07) << 2) \ | 
 |                                           |(BYTE)((BYTE)(y) & 0x03)) | 
 |  | 
 | #define MAKE_CMY332_MASK(c,m,y)           ((DWORD)(((DWORD)(c) & 0x07) << 29)\ | 
 |                                           |(DWORD)(((DWORD)(m) & 0x07) << 26)\ | 
 |                                           |(DWORD)(((DWORD)(y) & 0x03) << 24)) | 
 |  | 
 | /* GDIINFO.flHTFlags constants */ | 
 | #define HT_FLAG_INK_ABSORPTION_IDX0       0x00000000 | 
 | #define HT_FLAG_INK_ABSORPTION_IDX1       0x00000020 | 
 | #define HT_FLAG_INK_ABSORPTION_IDX2       0x00000040 | 
 | #define HT_FLAG_INK_ABSORPTION_IDX3       0x00000060 | 
 |  | 
 | #define HT_FLAG_HIGHEST_INK_ABSORPTION    (HT_FLAG_INK_HIGH_ABSORPTION \ | 
 |                                           |HT_FLAG_INK_ABSORPTION_IDX3) | 
 | #define HT_FLAG_HIGHER_INK_ABSORPTION     (HT_FLAG_INK_HIGH_ABSORPTION \ | 
 |                                           |HT_FLAG_INK_ABSORPTION_IDX2) | 
 | #define HT_FLAG_HIGH_INK_ABSORPTION       (HT_FLAG_INK_HIGH_ABSORPTION \ | 
 |                                           |HT_FLAG_INK_ABSORPTION_IDX1) | 
 | #define HT_FLAG_NORMAL_INK_ABSORPTION     HT_FLAG_INK_ABSORPTION_IDX0 | 
 | #define HT_FLAG_LOW_INK_ABSORPTION        HT_FLAG_INK_ABSORPTION_IDX1 | 
 | #define HT_FLAG_LOWER_INK_ABSORPTION      HT_FLAG_INK_ABSORPTION_IDX2 | 
 | #define HT_FLAG_LOWEST_INK_ABSORPTION     HT_FLAG_INK_ABSORPTION_IDX3 | 
 |  | 
 | #define HT_BITMASKPALRGB                  (DWORD)'0BGR' | 
 | #define HT_SET_BITMASKPAL2RGB(pPal)       (*((LPDWORD)(pPal)) = HT_BITMASKPALRGB) | 
 | #define HT_IS_BITMASKPALRGB(pPal)         (*((LPDWORD)(pPal)) == (DWORD)0) | 
 |  | 
 | /* GDIINFO.ulPhysicalPixelCharacteristics constants */ | 
 | #define PPC_DEFAULT                       0x0 | 
 | #define PPC_UNDEFINED                     0x1 | 
 | #define PPC_RGB_ORDER_VERTICAL_STRIPES    0x2 | 
 | #define PPC_BGR_ORDER_VERTICAL_STRIPES    0x3 | 
 | #define PPC_RGB_ORDER_HORIZONTAL_STRIPES  0x4 | 
 | #define PPC_BGR_ORDER_HORIZONTAL_STRIPES  0x5 | 
 |  | 
 | #define PPG_DEFAULT                       0 | 
 | #define PPG_SRGB                          1 | 
 |  | 
 | typedef struct _GDIINFO { | 
 |   ULONG  ulVersion; | 
 |   ULONG  ulTechnology; | 
 |   ULONG  ulHorzSize; | 
 |   ULONG  ulVertSize; | 
 |   ULONG  ulHorzRes; | 
 |   ULONG  ulVertRes; | 
 |   ULONG  cBitsPixel; | 
 |   ULONG  cPlanes; | 
 |   ULONG  ulNumColors; | 
 |   ULONG  flRaster; | 
 |   ULONG  ulLogPixelsX; | 
 |   ULONG  ulLogPixelsY; | 
 |   ULONG  flTextCaps; | 
 |   ULONG  ulDACRed; | 
 |   ULONG  ulDACGreen; | 
 |   ULONG  ulDACBlue; | 
 |   ULONG  ulAspectX; | 
 |   ULONG  ulAspectY; | 
 |   ULONG  ulAspectXY; | 
 |   LONG  xStyleStep; | 
 |   LONG  yStyleStep; | 
 |   LONG  denStyleStep; | 
 |   POINTL  ptlPhysOffset; | 
 |   SIZEL  szlPhysSize; | 
 |   ULONG  ulNumPalReg; | 
 |   COLORINFO  ciDevice; | 
 |   ULONG  ulDevicePelsDPI; | 
 |   ULONG  ulPrimaryOrder; | 
 |   ULONG  ulHTPatternSize; | 
 |   ULONG  ulHTOutputFormat; | 
 |   ULONG  flHTFlags; | 
 |   ULONG  ulVRefresh; | 
 |   ULONG  ulBltAlignment; | 
 |   ULONG  ulPanningHorzRes; | 
 |   ULONG  ulPanningVertRes; | 
 |   ULONG  xPanningAlignment; | 
 |   ULONG  yPanningAlignment; | 
 |   ULONG  cxHTPat; | 
 |   ULONG  cyHTPat; | 
 |   LPBYTE  pHTPatA; | 
 |   LPBYTE  pHTPatB; | 
 |   LPBYTE  pHTPatC; | 
 |   ULONG  flShadeBlend; | 
 |   ULONG  ulPhysicalPixelCharacteristics; | 
 |   ULONG  ulPhysicalPixelGamma; | 
 | } GDIINFO, *PGDIINFO; | 
 |  | 
 | /* PATHDATA.flags constants */ | 
 | #define PD_BEGINSUBPATH                   0x00000001 | 
 | #define PD_ENDSUBPATH                     0x00000002 | 
 | #define PD_RESETSTYLE                     0x00000004 | 
 | #define PD_CLOSEFIGURE                    0x00000008 | 
 | #define PD_BEZIERS                        0x00000010 | 
 | #define PD_ALL                            (PD_BEGINSUBPATH \ | 
 |                                           |PD_ENDSUBPATH \ | 
 |                                           |PD_RESETSTYLE \ | 
 |                                           |PD_CLOSEFIGURE \ | 
 |                                           PD_BEZIERS) | 
 |  | 
 | typedef struct _PATHDATA { | 
 |   FLONG  flags; | 
 |   ULONG  count; | 
 |   POINTFIX  *pptfx; | 
 | } PATHDATA, *PPATHDATA; | 
 |  | 
 | /* PATHOBJ.fl constants */ | 
 | #define PO_BEZIERS                        0x00000001 | 
 | #define PO_ELLIPSE                        0x00000002 | 
 | #define PO_ALL_INTEGERS                   0x00000004 | 
 | #define PO_ENUM_AS_INTEGERS               0x00000008 | 
 |  | 
 | typedef struct _PATHOBJ { | 
 |   FLONG  fl; | 
 |   ULONG  cCurves; | 
 | } PATHOBJ; | 
 |  | 
 | typedef struct _GLYPHBITS { | 
 |   POINTL  ptlOrigin; | 
 |   SIZEL  sizlBitmap; | 
 |   BYTE  aj[1]; | 
 | } GLYPHBITS; | 
 |  | 
 | typedef union _GLYPHDEF { | 
 |   GLYPHBITS  *pgb; | 
 |   PATHOBJ  *ppo; | 
 | } GLYPHDEF; | 
 |  | 
 | typedef struct _GLYPHPOS { | 
 |   HGLYPH  hg; | 
 |   GLYPHDEF  *pgdf; | 
 |   POINTL  ptl; | 
 | } GLYPHPOS, *PGLYPHPOS; | 
 |  | 
 | typedef struct _GLYPHDATA { | 
 |   GLYPHDEF  gdf; | 
 |   HGLYPH  hg; | 
 |   FIX  fxD; | 
 |   FIX  fxA; | 
 |   FIX  fxAB; | 
 |   FIX  fxInkTop; | 
 |   FIX  fxInkBottom; | 
 |   RECTL  rclInk; | 
 |   POINTQF  ptqD; | 
 | } GLYPHDATA; | 
 |  | 
 | typedef struct _IFIEXTRA { | 
 |   ULONG  ulIdentifier; | 
 |   PTRDIFF  dpFontSig; | 
 |   ULONG  cig; | 
 |   PTRDIFF  dpDesignVector; | 
 |   PTRDIFF  dpAxesInfoW; | 
 |   ULONG  aulReserved[1]; | 
 | } IFIEXTRA, *PIFIEXTRA; | 
 |  | 
 | /* IFIMETRICS constants */ | 
 |  | 
 | #define FM_VERSION_NUMBER                 0x0 | 
 |  | 
 | /* IFIMETRICS.fsType constants */ | 
 | #define FM_TYPE_LICENSED                  0x2 | 
 | #define FM_READONLY_EMBED                 0x4 | 
 | #define FM_EDITABLE_EMBED                 0x8 | 
 | #define FM_NO_EMBEDDING                   FM_TYPE_LICENSED | 
 |  | 
 | /* IFIMETRICS.flInfo constants */ | 
 | #define FM_INFO_TECH_TRUETYPE             0x00000001 | 
 | #define FM_INFO_TECH_BITMAP               0x00000002 | 
 | #define FM_INFO_TECH_STROKE               0x00000004 | 
 | #define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008 | 
 | #define FM_INFO_ARB_XFORMS                0x00000010 | 
 | #define FM_INFO_1BPP                      0x00000020 | 
 | #define FM_INFO_4BPP                      0x00000040 | 
 | #define FM_INFO_8BPP                      0x00000080 | 
 | #define FM_INFO_16BPP                     0x00000100 | 
 | #define FM_INFO_24BPP                     0x00000200 | 
 | #define FM_INFO_32BPP                     0x00000400 | 
 | #define FM_INFO_INTEGER_WIDTH             0x00000800 | 
 | #define FM_INFO_CONSTANT_WIDTH            0x00001000 | 
 | #define FM_INFO_NOT_CONTIGUOUS            0x00002000 | 
 | #define FM_INFO_TECH_MM                   0x00004000 | 
 | #define FM_INFO_RETURNS_OUTLINES          0x00008000 | 
 | #define FM_INFO_RETURNS_STROKES           0x00010000 | 
 | #define FM_INFO_RETURNS_BITMAPS           0x00020000 | 
 | #define FM_INFO_DSIG                      0x00040000 | 
 | #define FM_INFO_RIGHT_HANDED              0x00080000 | 
 | #define FM_INFO_INTEGRAL_SCALING          0x00100000 | 
 | #define FM_INFO_90DEGREE_ROTATIONS        0x00200000 | 
 | #define FM_INFO_OPTICALLY_FIXED_PITCH     0x00400000 | 
 | #define FM_INFO_DO_NOT_ENUMERATE          0x00800000 | 
 | #define FM_INFO_ISOTROPIC_SCALING_ONLY    0x01000000 | 
 | #define FM_INFO_ANISOTROPIC_SCALING_ONLY  0x02000000 | 
 | #define FM_INFO_TECH_CFF                  0x04000000 | 
 | #define FM_INFO_FAMILY_EQUIV              0x08000000 | 
 | #define FM_INFO_DBCS_FIXED_PITCH          0x10000000 | 
 | #define FM_INFO_NONNEGATIVE_AC            0x20000000 | 
 | #define FM_INFO_IGNORE_TC_RA_ABLE         0x40000000 | 
 | #define FM_INFO_TECH_TYPE1                0x80000000 | 
 |  | 
 | #define MAXCHARSETS                       16 | 
 |  | 
 | /* IFIMETRICS.ulPanoseCulture constants */ | 
 | #define  FM_PANOSE_CULTURE_LATIN          0x0 | 
 |  | 
 | typedef struct _IFIMETRICS { | 
 |   ULONG  cjThis; | 
 |   ULONG  cjIfiExtra; | 
 |   PTRDIFF  dpwszFamilyName; | 
 |   PTRDIFF  dpwszStyleName; | 
 |   PTRDIFF  dpwszFaceName; | 
 |   PTRDIFF  dpwszUniqueName; | 
 |   PTRDIFF  dpFontSim; | 
 |   LONG  lEmbedId; | 
 |   LONG  lItalicAngle; | 
 |   LONG  lCharBias; | 
 |   PTRDIFF  dpCharSets; | 
 |   BYTE  jWinCharSet; | 
 |   BYTE  jWinPitchAndFamily; | 
 |   USHORT  usWinWeight; | 
 |   ULONG  flInfo; | 
 |   USHORT  fsSelection; | 
 |   USHORT  fsType; | 
 |   FWORD  fwdUnitsPerEm; | 
 |   FWORD  fwdLowestPPEm; | 
 |   FWORD  fwdWinAscender; | 
 |   FWORD  fwdWinDescender; | 
 |   FWORD  fwdMacAscender; | 
 |   FWORD  fwdMacDescender; | 
 |   FWORD  fwdMacLineGap; | 
 |   FWORD  fwdTypoAscender; | 
 |   FWORD  fwdTypoDescender; | 
 |   FWORD  fwdTypoLineGap; | 
 |   FWORD  fwdAveCharWidth; | 
 |   FWORD  fwdMaxCharInc; | 
 |   FWORD  fwdCapHeight; | 
 |   FWORD  fwdXHeight; | 
 |   FWORD  fwdSubscriptXSize; | 
 |   FWORD  fwdSubscriptYSize; | 
 |   FWORD  fwdSubscriptXOffset; | 
 |   FWORD  fwdSubscriptYOffset; | 
 |   FWORD  fwdSuperscriptXSize; | 
 |   FWORD  fwdSuperscriptYSize; | 
 |   FWORD  fwdSuperscriptXOffset; | 
 |   FWORD  fwdSuperscriptYOffset; | 
 |   FWORD  fwdUnderscoreSize; | 
 |   FWORD  fwdUnderscorePosition; | 
 |   FWORD  fwdStrikeoutSize; | 
 |   FWORD  fwdStrikeoutPosition; | 
 |   BYTE  chFirstChar; | 
 |   BYTE  chLastChar; | 
 |   BYTE  chDefaultChar; | 
 |   BYTE  chBreakChar; | 
 |   WCHAR  wcFirstChar; | 
 |   WCHAR  wcLastChar; | 
 |   WCHAR  wcDefaultChar; | 
 |   WCHAR  wcBreakChar; | 
 |   POINTL  ptlBaseline; | 
 |   POINTL  ptlAspect; | 
 |   POINTL  ptlCaret; | 
 |   RECTL  rclFontBox; | 
 |   BYTE  achVendId[4]; | 
 |   ULONG  cKerningPairs; | 
 |   ULONG  ulPanoseCulture; | 
 |   PANOSE  panose; | 
 | #if defined(_WIN64) | 
 |   PVOID  Align; | 
 | #endif | 
 | } IFIMETRICS, *PIFIMETRICS; | 
 |  | 
 | /* LINEATTRS.fl */ | 
 | #define LA_GEOMETRIC                      0x00000001 | 
 | #define LA_ALTERNATE                      0x00000002 | 
 | #define LA_STARTGAP                       0x00000004 | 
 | #define LA_STYLED                         0x00000008 | 
 |  | 
 | /* LINEATTRS.iJoin */ | 
 | #define JOIN_ROUND                        __MSABI_LONG(0) | 
 | #define JOIN_BEVEL                        __MSABI_LONG(1) | 
 | #define JOIN_MITER                        __MSABI_LONG(2) | 
 |  | 
 | /* LINEATTRS.iEndCap */ | 
 | #define ENDCAP_ROUND                      __MSABI_LONG(0) | 
 | #define ENDCAP_SQUARE                     __MSABI_LONG(1) | 
 | #define ENDCAP_BUTT                       __MSABI_LONG(2) | 
 |  | 
 | typedef struct _LINEATTRS { | 
 |   FLONG  fl; | 
 |   ULONG  iJoin; | 
 |   ULONG  iEndCap; | 
 |   FLOAT_LONG  elWidth; | 
 |   FLOATL  eMiterLimit; | 
 |   ULONG  cstyle; | 
 |   PFLOAT_LONG  pstyle; | 
 |   FLOAT_LONG  elStyleState; | 
 | } LINEATTRS, *PLINEATTRS; | 
 |  | 
 | typedef struct _PALOBJ { | 
 |   ULONG  ulReserved; | 
 | } PALOBJ; | 
 |  | 
 | typedef struct _PERBANDINFO { | 
 |   WINBOOL  bRepeatThisBand; | 
 |   SIZEL  szlBand; | 
 |   ULONG  ulHorzRes; | 
 |   ULONG  ulVertRes; | 
 | } PERBANDINFO, *PPERBANDINFO; | 
 |  | 
 | /* STROBJ.flAccel constants */ | 
 | #define SO_FLAG_DEFAULT_PLACEMENT        0x00000001 | 
 | #define SO_HORIZONTAL                    0x00000002 | 
 | #define SO_VERTICAL                      0x00000004 | 
 | #define SO_REVERSED                      0x00000008 | 
 | #define SO_ZERO_BEARINGS                 0x00000010 | 
 | #define SO_CHAR_INC_EQUAL_BM_BASE        0x00000020 | 
 | #define SO_MAXEXT_EQUAL_BM_SIDE          0x00000040 | 
 | #define SO_DO_NOT_SUBSTITUTE_DEVICE_FONT 0x00000080 | 
 | #define SO_GLYPHINDEX_TEXTOUT            0x00000100 | 
 | #define SO_ESC_NOT_ORIENT                0x00000200 | 
 | #define SO_DXDY                          0x00000400 | 
 | #define SO_CHARACTER_EXTRA               0x00000800 | 
 | #define SO_BREAK_EXTRA                   0x00001000 | 
 |  | 
 | typedef struct _STROBJ { | 
 |   ULONG  cGlyphs; | 
 |   FLONG  flAccel; | 
 |   ULONG  ulCharInc; | 
 |   RECTL  rclBkGround; | 
 |   GLYPHPOS  *pgp; | 
 |   LPWSTR  pwszOrg; | 
 | } STROBJ; | 
 |  | 
 |  | 
 |  | 
 | /* SURFOBJ.iType constants */ | 
 | #define STYPE_BITMAP                      __MSABI_LONG(0) | 
 | #define STYPE_DEVICE                      __MSABI_LONG(1) | 
 | #define STYPE_DEVBITMAP                   __MSABI_LONG(3) | 
 |  | 
 | /* SURFOBJ.fjBitmap constants */ | 
 | #define BMF_TOPDOWN                       0x0001 | 
 | #define BMF_NOZEROINIT                    0x0002 | 
 | #define BMF_DONTCACHE                     0x0004 | 
 | #define BMF_USERMEM                       0x0008 | 
 | #define BMF_KMSECTION                     0x0010 | 
 | #define BMF_NOTSYSMEM                     0x0020 | 
 | #define BMF_WINDOW_BLT                    0x0040 | 
 | #define BMF_UMPDMEM                       0x0080 | 
 | #define BMF_RESERVED                      0xFF00 | 
 |  | 
 | typedef struct _SURFOBJ { | 
 |   DHSURF  dhsurf; | 
 |   HSURF  hsurf; | 
 |   DHPDEV  dhpdev; | 
 |   HDEV  hdev; | 
 |   SIZEL  sizlBitmap; | 
 |   ULONG  cjBits; | 
 |   PVOID  pvBits; | 
 |   PVOID  pvScan0; | 
 |   LONG  lDelta; | 
 |   ULONG  iUniq; | 
 |   ULONG  iBitmapFormat; | 
 |   USHORT  iType; | 
 |   USHORT  fjBitmap; | 
 | } SURFOBJ; | 
 |  | 
 | typedef struct _TYPE1_FONT { | 
 |   HANDLE  hPFM; | 
 |   HANDLE  hPFB; | 
 |   ULONG  ulIdentifier; | 
 | } TYPE1_FONT; | 
 |  | 
 | typedef struct _WNDOBJ { | 
 |   CLIPOBJ  coClient; | 
 |   PVOID  pvConsumer; | 
 |   RECTL  rclClient; | 
 |   SURFOBJ  *psoOwner; | 
 | } WNDOBJ, *PWNDOBJ; | 
 |  | 
 | typedef struct _XFORML { | 
 |   FLOATL  eM11; | 
 |   FLOATL  eM12; | 
 |   FLOATL  eM21; | 
 |   FLOATL  eM22; | 
 |   FLOATL  eDx; | 
 |   FLOATL  eDy; | 
 | } XFORML, *PXFORML; | 
 |  | 
 | typedef struct _XFORMOBJ { | 
 |   ULONG  ulReserved; | 
 | } XFORMOBJ; | 
 |  | 
 | /* XLATEOBJ.flXlate constants */ | 
 | #define XO_TRIVIAL                        0x00000001 | 
 | #define XO_TABLE                          0x00000002 | 
 | #define XO_TO_MONO                        0x00000004 | 
 | #define XO_FROM_CMYK                      0x00000008 | 
 | #define XO_DEVICE_ICM                     0x00000010 | 
 | #define XO_HOST_ICM                       0x00000020 | 
 |  | 
 | typedef struct _XLATEOBJ { | 
 |   ULONG  iUniq; | 
 |   FLONG  flXlate; | 
 |   USHORT  iSrcType; | 
 |   USHORT  iDstType; | 
 |   ULONG  cEntries; | 
 |   ULONG  *pulXlate; | 
 | } XLATEOBJ; | 
 |  | 
 | /* WNDOBJCHANGEPROC.fl constants */ | 
 | #define WOC_RGN_CLIENT_DELTA              0x00000001 | 
 | #define WOC_RGN_CLIENT                    0x00000002 | 
 | #define WOC_RGN_SURFACE_DELTA             0x00000004 | 
 | #define WOC_RGN_SURFACE                   0x00000008 | 
 | #define WOC_CHANGED                       0x00000010 | 
 | #define WOC_DELETE                        0x00000020 | 
 | #define WOC_DRAWN                         0x00000040 | 
 | #define WOC_SPRITE_OVERLAP                0x00000080 | 
 | #define WOC_SPRITE_NO_OVERLAP             0x00000100 | 
 |  | 
 | typedef VOID (APIENTRY CALLBACK *WNDOBJCHANGEPROC)( | 
 |   WNDOBJ  *pwo, | 
 |   FLONG  fl); | 
 |  | 
 |  | 
 | WIN32KAPI | 
 | HANDLE | 
 | APIENTRY | 
 | BRUSHOBJ_hGetColorTransform( | 
 |   BRUSHOBJ  *pbo); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | BRUSHOBJ_pvAllocRbrush( | 
 |   BRUSHOBJ  *pbo, | 
 |   ULONG  cj); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | BRUSHOBJ_pvGetRbrush( | 
 |   BRUSHOBJ  *pbo); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | BRUSHOBJ_ulGetBrushColor( | 
 |   BRUSHOBJ  *pbo); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | CLIPOBJ_bEnum( | 
 |   CLIPOBJ  *pco, | 
 |   ULONG  cj, | 
 |   ULONG  *pv); | 
 |  | 
 | /* CLIPOBJ_cEnumStart.iType constants */ | 
 | #define CT_RECTANGLES                     __MSABI_LONG(0) | 
 |  | 
 | /* CLIPOBJ_cEnumStart.iDirection constants */ | 
 | #define CD_RIGHTDOWN                      0x00000000 | 
 | #define CD_LEFTDOWN                       0x00000001 | 
 | #define CD_LEFTWARDS                      0x00000001 | 
 | #define CD_RIGHTUP                        0x00000002 | 
 | #define CD_UPWARDS                        0x00000002 | 
 | #define CD_LEFTUP                         0x00000003 | 
 | #define CD_ANY                            0x00000004 | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | CLIPOBJ_cEnumStart( | 
 |   CLIPOBJ  *pco, | 
 |   WINBOOL  bAll, | 
 |   ULONG  iType, | 
 |   ULONG  iDirection, | 
 |   ULONG  cLimit); | 
 |  | 
 | WIN32KAPI | 
 | PATHOBJ* | 
 | APIENTRY | 
 | CLIPOBJ_ppoGetPath( | 
 |   CLIPOBJ  *pco); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngAcquireSemaphore( | 
 |   HSEMAPHORE  hsem); | 
 |  | 
 | #define FL_ZERO_MEMORY                    0x00000001 | 
 | #define FL_NONPAGED_MEMORY                0x00000002 | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | EngAllocMem( | 
 |   ULONG  Flags, | 
 |   ULONG  MemSize, | 
 |   ULONG  Tag); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | EngAllocPrivateUserMem( | 
 |   PDD_SURFACE_LOCAL  psl, | 
 |   SIZE_T  cj, | 
 |   ULONG  tag); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | EngAllocUserMem( | 
 |   SIZE_T  cj, | 
 |   ULONG  tag); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngAlphaBlend( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclDest, | 
 |   RECTL  *prclSrc, | 
 |   BLENDOBJ  *pBlendObj); | 
 |  | 
 | /* EngAssociateSurface.flHooks constants */ | 
 | #define HOOK_BITBLT                       0x00000001 | 
 | #define HOOK_STRETCHBLT                   0x00000002 | 
 | #define HOOK_PLGBLT                       0x00000004 | 
 | #define HOOK_TEXTOUT                      0x00000008 | 
 | #define HOOK_PAINT                        0x00000010 | 
 | #define HOOK_STROKEPATH                   0x00000020 | 
 | #define HOOK_FILLPATH                     0x00000040 | 
 | #define HOOK_STROKEANDFILLPATH            0x00000080 | 
 | #define HOOK_LINETO                       0x00000100 | 
 | #define HOOK_COPYBITS                     0x00000400 | 
 | #define HOOK_MOVEPANNING                  0x00000800 | 
 | #define HOOK_SYNCHRONIZE                  0x00001000 | 
 | #define HOOK_STRETCHBLTROP                0x00002000 | 
 | #define HOOK_SYNCHRONIZEACCESS            0x00004000 | 
 | #define HOOK_TRANSPARENTBLT               0x00008000 | 
 | #define HOOK_ALPHABLEND                   0x00010000 | 
 | #define HOOK_GRADIENTFILL                 0x00020000 | 
 | #define HOOK_FLAGS                        0x0003b5ff | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngAssociateSurface( | 
 |   HSURF  hsurf, | 
 |   HDEV  hdev, | 
 |   FLONG  flHooks); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngBitBlt( | 
 |   SURFOBJ  *psoTrg, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMask, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclTrg, | 
 |   POINTL  *pptlSrc, | 
 |   POINTL  *pptlMask, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrush, | 
 |   ROP4  rop4); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngCheckAbort( | 
 |   SURFOBJ  *pso); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngClearEvent( | 
 |   PEVENT  pEvent); | 
 |  | 
 | WIN32KAPI | 
 | FD_GLYPHSET* | 
 | APIENTRY | 
 | EngComputeGlyphSet( | 
 |   INT  nCodePage, | 
 |   INT  nFirstChar, | 
 |   INT  cChars); | 
 |  | 
 | /* EngControlSprites.fl constants */ | 
 | #define ECS_TEARDOWN                      0x00000001 | 
 | #define ECS_REDRAW                        0x00000002 | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngControlSprites( | 
 |   WNDOBJ  *pwo, | 
 |   FLONG  fl); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngCopyBits( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclDest, | 
 |   POINTL  *pptlSrc); | 
 |  | 
 | WIN32KAPI | 
 | HBITMAP | 
 | APIENTRY | 
 | EngCreateBitmap( | 
 |   SIZEL  sizl, | 
 |   LONG  lWidth, | 
 |   ULONG  iFormat, | 
 |   FLONG  fl, | 
 |   PVOID  pvBits); | 
 |  | 
 | WIN32KAPI | 
 | CLIPOBJ* | 
 | APIENTRY | 
 | EngCreateClip( | 
 |   VOID); | 
 |  | 
 | WIN32KAPI | 
 | HBITMAP | 
 | APIENTRY | 
 | EngCreateDeviceBitmap( | 
 |   DHSURF  dhsurf, | 
 |   SIZEL  sizl, | 
 |   ULONG  iFormatCompat); | 
 |  | 
 | WIN32KAPI | 
 | HSURF | 
 | APIENTRY | 
 | EngCreateDeviceSurface( | 
 |   DHSURF  dhsurf, | 
 |   SIZEL  sizl, | 
 |   ULONG  iFormatCompat); | 
 |  | 
 | #if 0 | 
 | WIN32KAPI | 
 | HDRVOBJ | 
 | APIENTRY | 
 | EngCreateDriverObj( | 
 |   PVOID  pvObj, | 
 |   FREEOBJPROC  pFreeObjProc, | 
 |   HDEV  hdev); | 
 | #endif | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngCreateEvent( | 
 |   PEVENT  *ppEvent); | 
 |  | 
 | /* EngCreatePalette.iMode constants */ | 
 | #define PAL_INDEXED                       0x00000001 | 
 | #define PAL_BITFIELDS                     0x00000002 | 
 | #define PAL_RGB                           0x00000004 | 
 | #define PAL_BGR                           0x00000008 | 
 | #define PAL_CMYK                          0x00000010 | 
 |  | 
 | WIN32KAPI | 
 | HPALETTE | 
 | APIENTRY | 
 | EngCreatePalette( | 
 |   ULONG  iMode, | 
 |   ULONG  cColors, | 
 |   ULONG  *pulColors, | 
 |   FLONG  flRed, | 
 |   FLONG  flGreen, | 
 |   FLONG  flBlue); | 
 |  | 
 | WIN32KAPI | 
 | PATHOBJ* | 
 | APIENTRY | 
 | EngCreatePath( | 
 |   VOID); | 
 |  | 
 | WIN32KAPI | 
 | HSEMAPHORE | 
 | APIENTRY | 
 | EngCreateSemaphore( | 
 |   VOID); | 
 |  | 
 | /* EngCreateWnd.fl constants */ | 
 | #define WO_RGN_CLIENT_DELTA               0x00000001 | 
 | #define WO_RGN_CLIENT                     0x00000002 | 
 | #define WO_RGN_SURFACE_DELTA              0x00000004 | 
 | #define WO_RGN_SURFACE                    0x00000008 | 
 | #define WO_RGN_UPDATE_ALL                 0x00000010 | 
 | #define WO_RGN_WINDOW                     0x00000020 | 
 | #define WO_DRAW_NOTIFY                    0x00000040 | 
 | #define WO_SPRITE_NOTIFY                  0x00000080 | 
 | #define WO_RGN_DESKTOP_COORD              0x00000100 | 
 |  | 
 | WIN32KAPI | 
 | WNDOBJ* | 
 | APIENTRY | 
 | EngCreateWnd( | 
 |   SURFOBJ  *pso, | 
 |   HWND  hwnd, | 
 |   WNDOBJCHANGEPROC  pfn, | 
 |   FLONG  fl, | 
 |   int  iPixelFormat); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngDebugBreak( | 
 |   VOID); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngDebugPrint( | 
 |   PCHAR StandardPrefix, | 
 |   PCHAR DebugMessage, | 
 |   va_list ap); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngDeleteClip( | 
 |   CLIPOBJ  *pco); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngDeleteDriverObj( | 
 |   HDRVOBJ  hdo, | 
 |   WINBOOL  bCallBack, | 
 |   WINBOOL  bLocked); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngDeleteEvent( | 
 |   PEVENT  pEvent); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngDeleteFile( | 
 |   LPWSTR  pwszFileName); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngDeletePalette( | 
 |   HPALETTE  hpal); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngDeletePath( | 
 |   PATHOBJ  *ppo); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngDeleteSafeSemaphore( | 
 |   ENGSAFESEMAPHORE  *pssem); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngDeleteSemaphore( | 
 |   HSEMAPHORE  hsem); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngDeleteSurface( | 
 |   HSURF  hsurf); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngDeleteWnd( | 
 |   WNDOBJ  *pwo); | 
 |  | 
 | WIN32KAPI | 
 | DWORD | 
 | APIENTRY | 
 | EngDeviceIoControl( | 
 |   HANDLE  hDevice, | 
 |   DWORD  dwIoControlCode, | 
 |   LPVOID  lpInBuffer, | 
 |   DWORD  nInBufferSize, | 
 |   LPVOID  lpOutBuffer, | 
 |   DWORD  nOutBufferSize, | 
 |   LPDWORD  lpBytesReturned); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | EngDitherColor( | 
 |   HDEV  hdev, | 
 |   ULONG  iMode, | 
 |   ULONG  rgb, | 
 |   ULONG  *pul); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngEnumForms( | 
 |   HANDLE  hPrinter, | 
 |   DWORD  Level, | 
 |   LPBYTE  pForm, | 
 |   DWORD  cbBuf, | 
 |   LPDWORD  pcbNeeded, | 
 |   LPDWORD  pcReturned); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngEraseSurface( | 
 |   SURFOBJ  *pso, | 
 |   RECTL  *prcl, | 
 |   ULONG  iColor); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngFillPath( | 
 |   SURFOBJ  *pso, | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrushOrg, | 
 |   MIX  mix, | 
 |   FLONG  flOptions); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | EngFindImageProcAddress( | 
 |   HANDLE  hModule, | 
 |   LPSTR  lpProcName); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | EngFindResource( | 
 |   HANDLE  h, | 
 |   int  iName, | 
 |   int  iType, | 
 |   PULONG  pulSize); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | EngFntCacheAlloc( | 
 |   ULONG  FastCheckSum, | 
 |   ULONG  ulSize); | 
 |  | 
 | /* EngFntCacheFault.iFaultMode constants */ | 
 | #define ENG_FNT_CACHE_READ_FAULT          0x00000001 | 
 | #define ENG_FNT_CACHE_WRITE_FAULT         0x00000002 | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngFntCacheFault( | 
 |   ULONG  ulFastCheckSum, | 
 |   ULONG  iFaultMode); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | EngFntCacheLookUp( | 
 |   ULONG  FastCheckSum, | 
 |   ULONG  *pulSize); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngFreeMem( | 
 |   PVOID  Mem); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngFreeModule( | 
 |   HANDLE  h); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngFreePrivateUserMem( | 
 |   PDD_SURFACE_LOCAL  psl, | 
 |   PVOID  pv); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngFreeUserMem( | 
 |   PVOID  pv); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngGetCurrentCodePage( | 
 |   PUSHORT  OemCodePage, | 
 |   PUSHORT  AnsiCodePage); | 
 |  | 
 | WIN32KAPI | 
 | HANDLE | 
 | APIENTRY | 
 | EngGetCurrentProcessId( | 
 |   VOID); | 
 |  | 
 | WIN32KAPI | 
 | HANDLE | 
 | APIENTRY | 
 | EngGetCurrentThreadId( | 
 |   VOID); | 
 |  | 
 | WIN32KAPI | 
 | LPWSTR | 
 | APIENTRY | 
 | EngGetDriverName( | 
 |   HDEV  hdev); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngGetFileChangeTime( | 
 |   HANDLE  h, | 
 |   LARGE_INTEGER  *pChangeTime); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngGetFilePath( | 
 |   HANDLE  h, | 
 |   WCHAR  (*pDest)[MAX_PATH+1]); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngGetForm( | 
 |   HANDLE  hPrinter, | 
 |   LPWSTR  pFormName, | 
 |   DWORD  Level, | 
 |   LPBYTE  pForm, | 
 |   DWORD  cbBuf, | 
 |   LPDWORD  pcbNeeded); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | EngGetLastError( | 
 |   VOID); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngGetPrinter( | 
 |   HANDLE  hPrinter, | 
 |   DWORD  dwLevel, | 
 |   LPBYTE  pPrinter, | 
 |   DWORD  cbBuf, | 
 |   LPDWORD  pcbNeeded); | 
 |  | 
 | WIN32KAPI | 
 | DWORD | 
 | APIENTRY | 
 | EngGetPrinterData( | 
 |   HANDLE  hPrinter, | 
 |   LPWSTR  pValueName, | 
 |   LPDWORD  pType, | 
 |   LPBYTE  pData, | 
 |   DWORD  nSize, | 
 |   LPDWORD  pcbNeeded); | 
 |  | 
 | WIN32KAPI | 
 | LPWSTR | 
 | APIENTRY | 
 | EngGetPrinterDataFileName( | 
 |   HDEV  hdev); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngGetPrinterDriver( | 
 |   HANDLE  hPrinter, | 
 |   LPWSTR  pEnvironment, | 
 |   DWORD  dwLevel, | 
 |   BYTE  *lpbDrvInfo, | 
 |   DWORD  cbBuf, | 
 |   DWORD  *pcbNeeded); | 
 |  | 
 | WIN32KAPI | 
 | HANDLE | 
 | APIENTRY | 
 | EngGetProcessHandle( | 
 |   VOID); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngGetType1FontList( | 
 |   HDEV  hdev, | 
 |   TYPE1_FONT  *pType1Buffer, | 
 |   ULONG  cjType1Buffer, | 
 |   PULONG  pulLocalFonts, | 
 |   PULONG  pulRemoteFonts, | 
 |   LARGE_INTEGER  *pLastModified); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngGradientFill( | 
 |   SURFOBJ  *psoDest, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   TRIVERTEX  *pVertex, | 
 |   ULONG  nVertex, | 
 |   PVOID  pMesh, | 
 |   ULONG  nMesh, | 
 |   RECTL  *prclExtents, | 
 |   POINTL  *pptlDitherOrg, | 
 |   ULONG  ulMode); | 
 |  | 
 | /* EngHangNotification return values */ | 
 | #define EHN_RESTORED                      0x00000000 | 
 | #define EHN_ERROR                         0x00000001 | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | EngHangNotification( | 
 |   HDEV  hDev, | 
 |   PVOID  Reserved); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngInitializeSafeSemaphore( | 
 |   ENGSAFESEMAPHORE  *pssem); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngIsSemaphoreOwned( | 
 |   HSEMAPHORE  hsem); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngIsSemaphoreOwnedByCurrentThread( | 
 |   HSEMAPHORE  hsem); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngLineTo( | 
 |   SURFOBJ  *pso, | 
 |   CLIPOBJ  *pco, | 
 |   BRUSHOBJ  *pbo, | 
 |   LONG  x1, | 
 |   LONG  y1, | 
 |   LONG  x2, | 
 |   LONG  y2, | 
 |   RECTL  *prclBounds, | 
 |   MIX  mix); | 
 |  | 
 | WIN32KAPI | 
 | HANDLE | 
 | APIENTRY | 
 | EngLoadImage( | 
 |   LPWSTR  pwszDriver); | 
 |  | 
 | WIN32KAPI | 
 | HANDLE | 
 | APIENTRY | 
 | EngLoadModule( | 
 |   LPWSTR  pwsz); | 
 |  | 
 | WIN32KAPI | 
 | HANDLE | 
 | APIENTRY | 
 | EngLoadModuleForWrite( | 
 |   LPWSTR  pwsz, | 
 |   ULONG  cjSizeOfModule); | 
 |  | 
 | WIN32KAPI | 
 | PDD_SURFACE_LOCAL | 
 | APIENTRY | 
 | EngLockDirectDrawSurface( | 
 |   HANDLE  hSurface); | 
 |  | 
 | WIN32KAPI | 
 | DRIVEROBJ* | 
 | APIENTRY | 
 | EngLockDriverObj( | 
 |   HDRVOBJ  hdo); | 
 |  | 
 | WIN32KAPI | 
 | SURFOBJ* | 
 | APIENTRY | 
 | EngLockSurface( | 
 |   HSURF  hsurf); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngLpkInstalled( | 
 |   VOID); | 
 |  | 
 | WIN32KAPI | 
 | PEVENT | 
 | APIENTRY | 
 | EngMapEvent( | 
 |   HDEV  hDev, | 
 |   HANDLE  hUserObject, | 
 |   PVOID  Reserved1, | 
 |   PVOID  Reserved2, | 
 |   PVOID  Reserved3); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | EngMapFile( | 
 |   LPWSTR  pwsz, | 
 |   ULONG  cjSize, | 
 |   ULONG_PTR  *piFile); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngMapFontFile( | 
 |   ULONG_PTR  iFile, | 
 |   PULONG  *ppjBuf, | 
 |   ULONG  *pcjBuf); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngMapFontFileFD( | 
 |   ULONG_PTR  iFile, | 
 |   PULONG  *ppjBuf, | 
 |   ULONG  *pcjBuf); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | EngMapModule( | 
 |   HANDLE  h, | 
 |   PULONG  pSize); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngMarkBandingSurface( | 
 |   HSURF  hsurf); | 
 |  | 
 | /* EngModifySurface.flSurface constants */ | 
 | #define MS_NOTSYSTEMMEMORY                0x00000001 | 
 | #define MS_SHAREDACCESS                   0x00000002 | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngModifySurface( | 
 |   HSURF  hsurf, | 
 |   HDEV  hdev, | 
 |   FLONG  flHooks, | 
 |   FLONG  flSurface, | 
 |   DHSURF  dhsurf, | 
 |   VOID  *pvScan0, | 
 |   LONG  lDelta, | 
 |   VOID  *pvReserved); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngMovePointer( | 
 |   SURFOBJ  *pso, | 
 |   LONG  x, | 
 |   LONG  y, | 
 |   RECTL  *prcl); | 
 |  | 
 | WIN32KAPI | 
 | int | 
 | APIENTRY | 
 | EngMulDiv( | 
 |   int  a, | 
 |   int  b, | 
 |   int  c); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngMultiByteToUnicodeN( | 
 |   LPWSTR  UnicodeString, | 
 |   ULONG  MaxBytesInUnicodeString, | 
 |   PULONG  BytesInUnicodeString, | 
 |   PCHAR  MultiByteString, | 
 |   ULONG  BytesInMultiByteString); | 
 |  | 
 | WIN32KAPI | 
 | INT | 
 | APIENTRY | 
 | EngMultiByteToWideChar( | 
 |   UINT  CodePage, | 
 |   LPWSTR  WideCharString, | 
 |   INT  BytesInWideCharString, | 
 |   LPSTR  MultiByteString, | 
 |   INT  BytesInMultiByteString); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngPaint( | 
 |   SURFOBJ  *pso, | 
 |   CLIPOBJ  *pco, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrushOrg, | 
 |   MIX  mix); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngPlgBlt( | 
 |   SURFOBJ  *psoTrg, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMsk, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   COLORADJUSTMENT  *pca, | 
 |   POINTL  *pptlBrushOrg, | 
 |   POINTFIX  *pptfx, | 
 |   RECTL  *prcl, | 
 |   POINTL  *pptl, | 
 |   ULONG  iMode); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngProbeForRead( | 
 |   PVOID  Address, | 
 |   ULONG  Length, | 
 |   ULONG  Alignment); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngProbeForReadAndWrite( | 
 |   PVOID  Address, | 
 |   ULONG  Length, | 
 |   ULONG  Alignment); | 
 |  | 
 | typedef enum _ENG_DEVICE_ATTRIBUTE { | 
 |   QDA_RESERVED = 0, | 
 |   QDA_ACCELERATION_LEVEL | 
 | } ENG_DEVICE_ATTRIBUTE; | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngQueryDeviceAttribute( | 
 |   HDEV  hdev, | 
 |   ENG_DEVICE_ATTRIBUTE  devAttr, | 
 |   VOID  *pvIn, | 
 |   ULONG  ulInSize, | 
 |   VOID  *pvOut, | 
 |   ULONG  ulOutSize); | 
 |  | 
 | WIN32KAPI | 
 | LARGE_INTEGER | 
 | APIENTRY | 
 | EngQueryFileTimeStamp( | 
 |   LPWSTR  pwsz); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngQueryLocalTime( | 
 |   PENG_TIME_FIELDS  ptf); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | EngQueryPalette( | 
 |   HPALETTE  hPal, | 
 |   ULONG  *piMode, | 
 |   ULONG  cColors, | 
 |   ULONG  *pulColors); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngQueryPerformanceCounter( | 
 |   LONGLONG  *pPerformanceCount); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngQueryPerformanceFrequency( | 
 |   LONGLONG  *pFrequency); | 
 |  | 
 | typedef enum _ENG_SYSTEM_ATTRIBUTE { | 
 |   EngProcessorFeature = 1, | 
 |   EngNumberOfProcessors, | 
 |   EngOptimumAvailableUserMemory, | 
 |   EngOptimumAvailableSystemMemory | 
 | } ENG_SYSTEM_ATTRIBUTE; | 
 |  | 
 | #define QSA_MMX                           0x00000100 | 
 | #define QSA_SSE                           0x00002000 | 
 | #define QSA_3DNOW                         0x00004000 | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngQuerySystemAttribute( | 
 |   ENG_SYSTEM_ATTRIBUTE  CapNum, | 
 |   PDWORD  pCapability); | 
 |  | 
 | WIN32KAPI | 
 | LONG | 
 | APIENTRY | 
 | EngReadStateEvent( | 
 |   PEVENT  pEvent); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngReleaseSemaphore( | 
 |   HSEMAPHORE  hsem); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngRestoreFloatingPointState( | 
 |   VOID  *pBuffer); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | EngSaveFloatingPointState( | 
 |   VOID  *pBuffer, | 
 |   ULONG  cjBufferSize); | 
 |  | 
 | WIN32KAPI | 
 | HANDLE | 
 | APIENTRY | 
 | EngSecureMem( | 
 |   PVOID  Address, | 
 |   ULONG  Length); | 
 |  | 
 | WIN32KAPI | 
 | LONG | 
 | APIENTRY | 
 | EngSetEvent( | 
 |   PEVENT  pEvent); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngSetLastError( | 
 |   ULONG  iError); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | EngSetPointerShape( | 
 |   SURFOBJ  *pso, | 
 |   SURFOBJ  *psoMask, | 
 |   SURFOBJ  *psoColor, | 
 |   XLATEOBJ  *pxlo, | 
 |   LONG  xHot, | 
 |   LONG  yHot, | 
 |   LONG  x, | 
 |   LONG  y, | 
 |   RECTL  *prcl, | 
 |   FLONG  fl); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngSetPointerTag( | 
 |   HDEV  hdev, | 
 |   SURFOBJ  *psoMask, | 
 |   SURFOBJ  *psoColor, | 
 |   XLATEOBJ  *pxlo, | 
 |   FLONG  fl); | 
 |  | 
 | WIN32KAPI | 
 | DWORD | 
 | APIENTRY | 
 | EngSetPrinterData( | 
 |   HANDLE  hPrinter, | 
 |   LPWSTR  pType, | 
 |   DWORD  dwType, | 
 |   LPBYTE  lpbPrinterData, | 
 |   DWORD  cjPrinterData); | 
 |  | 
 | typedef int (CDECL *SORTCOMP)(const void *pv1, const void *pv2); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngSort( | 
 |   PBYTE  pjBuf, | 
 |   ULONG  c, | 
 |   ULONG  cjElem, | 
 |   SORTCOMP  pfnComp); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngStretchBlt( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMask, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   COLORADJUSTMENT  *pca, | 
 |   POINTL  *pptlHTOrg, | 
 |   RECTL  *prclDest, | 
 |   RECTL  *prclSrc, | 
 |   POINTL  *pptlMask, | 
 |   ULONG  iMode); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngStretchBltROP( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMask, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   COLORADJUSTMENT  *pca, | 
 |   POINTL  *pptlHTOrg, | 
 |   RECTL  *prclDest, | 
 |   RECTL  *prclSrc, | 
 |   POINTL  *pptlMask, | 
 |   ULONG  iMode, | 
 |   BRUSHOBJ  *pbo, | 
 |   DWORD  rop4); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngStrokeAndFillPath( | 
 |   SURFOBJ  *pso, | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   XFORMOBJ  *pxo, | 
 |   BRUSHOBJ  *pboStroke, | 
 |   LINEATTRS  *plineattrs, | 
 |   BRUSHOBJ  *pboFill, | 
 |   POINTL  *pptlBrushOrg, | 
 |   MIX  mixFill, | 
 |   FLONG  flOptions); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngStrokePath( | 
 |   SURFOBJ  *pso, | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   XFORMOBJ  *pxo, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrushOrg, | 
 |   LINEATTRS  *plineattrs, | 
 |   MIX  mix); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngTextOut( | 
 |   SURFOBJ  *pso, | 
 |   STROBJ  *pstro, | 
 |   FONTOBJ  *pfo, | 
 |   CLIPOBJ  *pco, | 
 |   RECTL  *prclExtra, | 
 |   RECTL  *prclOpaque, | 
 |   BRUSHOBJ  *pboFore, | 
 |   BRUSHOBJ  *pboOpaque, | 
 |   POINTL  *pptlOrg, | 
 |   MIX  mix); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngTransparentBlt( | 
 |   SURFOBJ  *psoDst, | 
 |   SURFOBJ  *psoSrc, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclDst, | 
 |   RECTL  *prclSrc, | 
 |   ULONG  iTransColor, | 
 |   ULONG  ulReserved); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngUnicodeToMultiByteN( | 
 |   PCHAR  MultiByteString, | 
 |   ULONG  MaxBytesInMultiByteString, | 
 |   PULONG  BytesInMultiByteString, | 
 |   PWSTR  UnicodeString, | 
 |   ULONG  BytesInUnicodeString); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngUnloadImage( | 
 |   HANDLE  hModule); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngUnlockDirectDrawSurface( | 
 |   PDD_SURFACE_LOCAL  pSurface); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngUnlockDriverObj( | 
 |   HDRVOBJ  hdo); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngUnlockSurface( | 
 |   SURFOBJ  *pso); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngUnmapEvent( | 
 |   PEVENT  pEvent); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngUnmapFile( | 
 |   ULONG_PTR  iFile); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngUnmapFontFile( | 
 |   ULONG_PTR  iFile); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngUnmapFontFileFD( | 
 |   ULONG_PTR  iFile); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | EngUnsecureMem( | 
 |   HANDLE  hSecure); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngWaitForSingleObject( | 
 |   PEVENT  pEvent, | 
 |   PLARGE_INTEGER  pTimeOut); | 
 |  | 
 | WIN32KAPI | 
 | INT | 
 | APIENTRY | 
 | EngWideCharToMultiByte( | 
 |   UINT  CodePage, | 
 |   LPWSTR  WideCharString, | 
 |   INT  BytesInWideCharString, | 
 |   LPSTR  MultiByteString, | 
 |   INT  BytesInMultiByteString); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | EngWritePrinter( | 
 |   HANDLE  hPrinter, | 
 |   LPVOID  pBuf, | 
 |   DWORD  cbBuf, | 
 |   LPDWORD  pcWritten); | 
 |  | 
 | #if defined(_X86_) && !defined(USERMODE_DRIVER) | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_Add( | 
 |   PFLOATOBJ  pf, | 
 |   PFLOATOBJ  pf1); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_AddFloat( | 
 |   PFLOATOBJ  pf, | 
 |   FLOATL  f); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_AddLong( | 
 |   PFLOATOBJ  pf, | 
 |   LONG  l); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_Div( | 
 |   PFLOATOBJ  pf, | 
 |   PFLOATOBJ  pf1); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_DivFloat( | 
 |   PFLOATOBJ  pf, | 
 |   FLOATL  f); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_DivLong( | 
 |   PFLOATOBJ  pf, | 
 |   LONG  l); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | FLOATOBJ_Equal( | 
 |   PFLOATOBJ  pf, | 
 |   PFLOATOBJ  pf1); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | FLOATOBJ_EqualLong( | 
 |   PFLOATOBJ  pf, | 
 |   LONG  l); | 
 |  | 
 | WIN32KAPI | 
 | LONG | 
 | APIENTRY | 
 | FLOATOBJ_GetFloat( | 
 |   PFLOATOBJ  pf); | 
 |  | 
 | WIN32KAPI | 
 | LONG | 
 | APIENTRY | 
 | FLOATOBJ_GetLong( | 
 |   PFLOATOBJ  pf); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | FLOATOBJ_GreaterThan( | 
 |   PFLOATOBJ  pf, | 
 |   PFLOATOBJ  pf1); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | FLOATOBJ_GreaterThanLong( | 
 |   PFLOATOBJ  pf, | 
 |   LONG  l); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | FLOATOBJ_LessThan( | 
 |   PFLOATOBJ  pf, | 
 |   PFLOATOBJ  pf1); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | FLOATOBJ_LessThanLong( | 
 |   PFLOATOBJ  pf, | 
 |   LONG  l); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_Mul( | 
 |   PFLOATOBJ  pf, | 
 |   PFLOATOBJ  pf1); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_MulFloat( | 
 |   PFLOATOBJ  pf, | 
 |   FLOATL  f); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_MulLong( | 
 |   PFLOATOBJ  pf, | 
 |   LONG  l); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_Neg( | 
 |   PFLOATOBJ  pf); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_SetFloat( | 
 |   PFLOATOBJ  pf, | 
 |   FLOATL  f); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_SetLong( | 
 |   PFLOATOBJ  pf, | 
 |   LONG  l); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_Sub( | 
 |   PFLOATOBJ  pf, | 
 |   PFLOATOBJ  pf1); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_SubFloat( | 
 |   PFLOATOBJ  pf, | 
 |   FLOATL  f); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FLOATOBJ_SubLong( | 
 |   PFLOATOBJ  pf, | 
 |   LONG  l); | 
 |  | 
 | #else | 
 |  | 
 | #define FLOATOBJ_SetFloat(pf, f)        {*(pf) = (f);} | 
 | #define FLOATOBJ_SetLong(pf, l)         {*(pf) = (FLOAT)(l);} | 
 | #define FLOATOBJ_GetFloat(pf)           (*(PULONG)(pf)) | 
 | #define FLOATOBJ_GetLong(pf)            ((LONG)*(pf)) | 
 | #define FLOATOBJ_Add(pf, pf1)           {*(pf) += *(pf1);} | 
 | #define FLOATOBJ_AddFloat(pf, f)        {*(pf) += (f);} | 
 | #define FLOATOBJ_AddLong(pf, l)         {*(pf) += (l);} | 
 | #define FLOATOBJ_Sub(pf, pf1)           {*(pf) -= *(pf1);} | 
 | #define FLOATOBJ_SubFloat(pf, f)        {*(pf) -= (f);} | 
 | #define FLOATOBJ_SubLong(pf, l)         {*(pf) -= (l);} | 
 | #define FLOATOBJ_Mul(pf, pf1)           {*(pf) *= *(pf1);} | 
 | #define FLOATOBJ_MulFloat(pf, f)        {*(pf) *= (f);} | 
 | #define FLOATOBJ_MulLong(pf, l)         {*(pf) *= (l);} | 
 | #define FLOATOBJ_Div(pf, pf1)           {*(pf) /= *(pf1);} | 
 | #define FLOATOBJ_DivFloat(pf, f)        {*(pf) /= (f);} | 
 | #define FLOATOBJ_DivLong(pf, l)         {*(pf) /= (l);} | 
 | #define FLOATOBJ_Neg(pf)                {*(pf) = -(*(pf));} | 
 | #define FLOATOBJ_Equal(pf, pf1)         (*(pf) == *(pf1)) | 
 | #define FLOATOBJ_GreaterThan(pf, pf1)   (*(pf) > *(pf1)) | 
 | #define FLOATOBJ_LessThan(pf, pf1)      (*(pf) < *(pf1)) | 
 | #define FLOATOBJ_EqualLong(pf, l)       (*(pf) == (FLOAT)(l)) | 
 | #define FLOATOBJ_GreaterThanLong(pf, l) (*(pf) > (FLOAT)(l)) | 
 | #define FLOATOBJ_LessThanLong(pf, l)    (*(pf) < (FLOAT)(l)) | 
 |  | 
 | #endif | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | FONTOBJ_cGetAllGlyphHandles( | 
 |   FONTOBJ  *pfo, | 
 |   HGLYPH  *phg); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | FONTOBJ_cGetGlyphs( | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode, | 
 |   ULONG  cGlyph, | 
 |   HGLYPH  *phg, | 
 |   PVOID  *ppvGlyph); | 
 |  | 
 | WIN32KAPI | 
 | FD_GLYPHSET* | 
 | APIENTRY | 
 | FONTOBJ_pfdg( | 
 |   FONTOBJ  *pfo); | 
 |  | 
 | WIN32KAPI | 
 | IFIMETRICS* | 
 | APIENTRY | 
 | FONTOBJ_pifi( | 
 |   FONTOBJ  *pfo); | 
 |  | 
 | WIN32KAPI | 
 | PBYTE | 
 | APIENTRY | 
 | FONTOBJ_pjOpenTypeTablePointer( | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  ulTag, | 
 |   ULONG  *pcjTable); | 
 |  | 
 | WIN32KAPI | 
 | PFD_GLYPHATTR | 
 | APIENTRY | 
 | FONTOBJ_pQueryGlyphAttrs( | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode); | 
 |  | 
 | WIN32KAPI | 
 | PVOID | 
 | APIENTRY | 
 | FONTOBJ_pvTrueTypeFontFile( | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  *pcjFile); | 
 |  | 
 | WIN32KAPI | 
 | LPWSTR | 
 | APIENTRY | 
 | FONTOBJ_pwszFontFilePaths( | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  *pcwc); | 
 |  | 
 | WIN32KAPI | 
 | XFORMOBJ* | 
 | APIENTRY | 
 | FONTOBJ_pxoGetXform( | 
 |   FONTOBJ  *pfo); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | FONTOBJ_vGetInfo( | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  cjSize, | 
 |   FONTINFO  *pfi); | 
 |  | 
 |  | 
 |  | 
 | WIN32KAPI | 
 | LONG | 
 | APIENTRY | 
 | HT_ComputeRGBGammaTable( | 
 |   USHORT  GammaTableEntries, | 
 |   USHORT  GammaTableType, | 
 |   USHORT  RedGamma, | 
 |   USHORT  GreenGamma, | 
 |   USHORT  BlueGamma, | 
 |   LPBYTE  pGammaTable); | 
 |  | 
 | WIN32KAPI | 
 | LONG | 
 | APIENTRY | 
 | HT_Get8BPPFormatPalette( | 
 |   LPPALETTEENTRY  pPaletteEntry, | 
 |   USHORT  RedGamma, | 
 |   USHORT  GreenGamma, | 
 |   USHORT  BlueGamma); | 
 |  | 
 | WIN32KAPI | 
 | LONG | 
 | APIENTRY | 
 | HT_Get8BPPMaskPalette( | 
 |   LPPALETTEENTRY  pPaletteEntry, | 
 |   WINBOOL  Use8BPPMaskPal, | 
 |   BYTE  CMYMask, | 
 |   USHORT  RedGamma, | 
 |   USHORT  GreenGamma, | 
 |   USHORT  BlueGamma); | 
 |  | 
 | WIN32KAPI | 
 | LONG | 
 | APIENTRY | 
 | HTUI_DeviceColorAdjustment( | 
 |   LPSTR  pDeviceName, | 
 |   PDEVHTADJDATA  pDevHTAdjData); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | PALOBJ_cGetColors( | 
 |   PALOBJ  *ppalo, | 
 |   ULONG  iStart, | 
 |   ULONG  cColors, | 
 |   ULONG  *pulColors); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | PATHOBJ_bCloseFigure( | 
 |   PATHOBJ  *ppo); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | PATHOBJ_bEnum( | 
 |   PATHOBJ  *ppo, | 
 |   PATHDATA  *ppd); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | PATHOBJ_bEnumClipLines( | 
 |   PATHOBJ  *ppo, | 
 |   ULONG  cb, | 
 |   CLIPLINE  *pcl); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | PATHOBJ_bMoveTo( | 
 |   PATHOBJ  *ppo, | 
 |   POINTFIX  ptfx); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | PATHOBJ_bPolyBezierTo( | 
 |   PATHOBJ  *ppo, | 
 |   POINTFIX  *pptfx, | 
 |   ULONG  cptfx); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | PATHOBJ_bPolyLineTo( | 
 |   PATHOBJ  *ppo, | 
 |   POINTFIX  *pptfx, | 
 |   ULONG  cptfx); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | PATHOBJ_vEnumStart( | 
 |   PATHOBJ  *ppo); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | PATHOBJ_vEnumStartClipLines( | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   SURFOBJ  *pso, | 
 |   LINEATTRS  *pla); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | PATHOBJ_vGetBounds( | 
 |   PATHOBJ  *ppo, | 
 |   PRECTFX  prectfx); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | STROBJ_bEnum( | 
 |   STROBJ  *pstro, | 
 |   ULONG  *pc, | 
 |   PGLYPHPOS  *ppgpos); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | STROBJ_bEnumPositionsOnly( | 
 |   STROBJ  *pstro, | 
 |   ULONG  *pc, | 
 |   PGLYPHPOS  *ppgpos); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | STROBJ_bGetAdvanceWidths( | 
 |   STROBJ  *pso, | 
 |   ULONG  iFirst, | 
 |   ULONG  c, | 
 |   POINTQF  *pptqD); | 
 |  | 
 | WIN32KAPI | 
 | DWORD | 
 | APIENTRY | 
 | STROBJ_dwGetCodePage( | 
 |   STROBJ  *pstro); | 
 |  | 
 | WIN32KAPI | 
 | FIX | 
 | APIENTRY | 
 | STROBJ_fxBreakExtra( | 
 |   STROBJ  *pstro); | 
 |  | 
 | WIN32KAPI | 
 | FIX | 
 | APIENTRY | 
 | STROBJ_fxCharacterExtra( | 
 |   STROBJ  *pstro); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | STROBJ_vEnumStart( | 
 |   STROBJ  *pstro); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | WNDOBJ_bEnum( | 
 |   WNDOBJ  *pwo, | 
 |   ULONG  cj, | 
 |   ULONG  *pul); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | WNDOBJ_cEnumStart( | 
 |   WNDOBJ  *pwo, | 
 |   ULONG  iType, | 
 |   ULONG  iDirection, | 
 |   ULONG  cLimit); | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | WNDOBJ_vSetConsumer( | 
 |   WNDOBJ  *pwo, | 
 |   PVOID  pvConsumer); | 
 |  | 
 | /* XFORMOBJ_bApplyXform.iMode constants */ | 
 | #define XF_LTOL                           __MSABI_LONG(0) | 
 | #define XF_INV_LTOL                       __MSABI_LONG(1) | 
 | #define XF_LTOFX                          __MSABI_LONG(2) | 
 | #define XF_INV_FXTOL                      __MSABI_LONG(3) | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | XFORMOBJ_bApplyXform( | 
 |   XFORMOBJ  *pxo, | 
 |   ULONG  iMode, | 
 |   ULONG  cPoints, | 
 |   PVOID  pvIn, | 
 |   PVOID  pvOut); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | XFORMOBJ_iGetFloatObjXform( | 
 |   XFORMOBJ  *pxo, | 
 |   FLOATOBJ_XFORM  *pxfo); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | XFORMOBJ_iGetXform( | 
 |   XFORMOBJ  *pxo, | 
 |   XFORML  *pxform); | 
 |  | 
 | /* XLATEOBJ_cGetPalette.iPal constants */ | 
 | #define XO_SRCPALETTE                     1 | 
 | #define XO_DESTPALETTE                    2 | 
 | #define XO_DESTDCPALETTE                  3 | 
 | #define XO_SRCBITFIELDS                   4 | 
 | #define XO_DESTBITFIELDS                  5 | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | XLATEOBJ_cGetPalette( | 
 |   XLATEOBJ  *pxlo, | 
 |   ULONG  iPal, | 
 |   ULONG  cPal, | 
 |   ULONG  *pPal); | 
 |  | 
 | WIN32KAPI | 
 | HANDLE | 
 | APIENTRY | 
 | XLATEOBJ_hGetColorTransform( | 
 |   XLATEOBJ  *pxlo); | 
 |  | 
 | WIN32KAPI | 
 | ULONG | 
 | APIENTRY | 
 | XLATEOBJ_iXlate( | 
 |   XLATEOBJ  *pxlo, | 
 |   ULONG  iColor); | 
 |  | 
 | WIN32KAPI | 
 | ULONG* | 
 | APIENTRY | 
 | XLATEOBJ_piVector( | 
 |   XLATEOBJ  *pxlo); | 
 |  | 
 |  | 
 |  | 
 | /* Graphics Driver Functions */ | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvAlphaBlend( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclDest, | 
 |   RECTL  *prclSrc, | 
 |   BLENDOBJ  *pBlendObj); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvAssertMode( | 
 |   DHPDEV  dhpdev, | 
 |   WINBOOL  bEnable); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvBitBlt( | 
 |   SURFOBJ  *psoTrg, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMask, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclTrg, | 
 |   POINTL  *pptlSrc, | 
 |   POINTL  *pptlMask, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrush, | 
 |   ROP4  rop4); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvCompletePDEV( | 
 |   DHPDEV  dhpdev, | 
 |   HDEV  hdev); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvCopyBits( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclDest, | 
 |   POINTL  *pptlSrc); | 
 |  | 
 | HBITMAP | 
 | APIENTRY | 
 | DrvCreateDeviceBitmap( | 
 |   DHPDEV  dhpdev, | 
 |   SIZEL  sizl, | 
 |   ULONG  iFormat); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvDeleteDeviceBitmap( | 
 |   DHSURF  dhsurf); | 
 |  | 
 | HBITMAP | 
 | APIENTRY | 
 | DrvDeriveSurface( | 
 |   DD_DIRECTDRAW_GLOBAL  *pDirectDraw, | 
 |   DD_SURFACE_LOCAL  *pSurface); | 
 |  | 
 | LONG | 
 | APIENTRY | 
 | DrvDescribePixelFormat( | 
 |   DHPDEV  dhpdev, | 
 |   LONG  iPixelFormat, | 
 |   ULONG  cjpfd, | 
 |   PIXELFORMATDESCRIPTOR  *ppfd); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvDestroyFont( | 
 |   FONTOBJ  *pfo); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvDisableDriver( | 
 |   VOID); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvDisablePDEV( | 
 |   DHPDEV  dhpdev); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvDisableSurface( | 
 |   DHPDEV  dhpdev); | 
 |  | 
 | #define DM_DEFAULT                        0x00000001 | 
 | #define DM_MONOCHROME                     0x00000002 | 
 |  | 
 | ULONG | 
 | APIENTRY | 
 | DrvDitherColor( | 
 |   DHPDEV  dhpdev, | 
 |   ULONG  iMode, | 
 |   ULONG  rgb, | 
 |   ULONG  *pul); | 
 |  | 
 | ULONG | 
 | APIENTRY | 
 | DrvDrawEscape( | 
 |   SURFOBJ  *pso, | 
 |   ULONG  iEsc, | 
 |   CLIPOBJ  *pco, | 
 |   RECTL  *prcl, | 
 |   ULONG  cjIn, | 
 |   PVOID  pvIn); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvEnableDriver( | 
 |   ULONG  iEngineVersion, | 
 |   ULONG  cj, | 
 |   DRVENABLEDATA  *pded); | 
 |  | 
 | DHPDEV | 
 | APIENTRY | 
 | DrvEnablePDEV( | 
 |   DEVMODEW  *pdm, | 
 |   LPWSTR  pwszLogAddress, | 
 |   ULONG  cPat, | 
 |   HSURF  *phsurfPatterns, | 
 |   ULONG  cjCaps, | 
 |   ULONG  *pdevcaps, | 
 |   ULONG  cjDevInfo, | 
 |   DEVINFO  *pdi, | 
 |   HDEV  hdev, | 
 |   LPWSTR  pwszDeviceName, | 
 |   HANDLE  hDriver); | 
 |  | 
 | HSURF | 
 | APIENTRY | 
 | DrvEnableSurface( | 
 |   DHPDEV  dhpdev); | 
 |  | 
 | /* DrvEndDoc.fl constants */ | 
 | #define ED_ABORTDOC                       0x00000001 | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvEndDoc( | 
 |   SURFOBJ  *pso, | 
 |   FLONG  fl); | 
 |  | 
 | ULONG | 
 | APIENTRY | 
 | DrvEscape( | 
 |   SURFOBJ  *pso, | 
 |   ULONG  iEsc, | 
 |   ULONG  cjIn, | 
 |   PVOID  pvIn, | 
 |   ULONG  cjOut, | 
 |   PVOID  pvOut); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvFillPath( | 
 |   SURFOBJ  *pso, | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrushOrg, | 
 |   MIX  mix, | 
 |   FLONG  flOptions); | 
 |  | 
 | ULONG | 
 | APIENTRY | 
 | DrvFontManagement( | 
 |   SURFOBJ  *pso, | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode, | 
 |   ULONG  cjIn, | 
 |   PVOID  pvIn, | 
 |   ULONG  cjOut, | 
 |   PVOID  pvOut); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvFree( | 
 |   PVOID  pv, | 
 |   ULONG_PTR  id); | 
 |  | 
 | /* DrvGetGlyphMode return values */ | 
 | #define FO_HGLYPHS                        __MSABI_LONG(0) | 
 | #define FO_GLYPHBITS                      __MSABI_LONG(1) | 
 | #define FO_PATHOBJ                        __MSABI_LONG(2) | 
 |  | 
 | ULONG | 
 | APIENTRY | 
 | DrvGetGlyphMode( | 
 |   DHPDEV  dhpdev, | 
 |   FONTOBJ  *pfo); | 
 |  | 
 | ULONG | 
 | APIENTRY | 
 | DrvGetModes( | 
 |   HANDLE  hDriver, | 
 |   ULONG  cjSize, | 
 |   DEVMODEW  *pdm); | 
 |  | 
 | PVOID | 
 | APIENTRY | 
 | DrvGetTrueTypeFile( | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  *pcj); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvGradientFill( | 
 |   SURFOBJ  *psoDest, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   TRIVERTEX  *pVertex, | 
 |   ULONG  nVertex, | 
 |   PVOID  pMesh, | 
 |   ULONG  nMesh, | 
 |   RECTL  *prclExtents, | 
 |   POINTL  *pptlDitherOrg, | 
 |   ULONG  ulMode); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvIcmCheckBitmapBits( | 
 |   DHPDEV  dhpdev, | 
 |   HANDLE  hColorTransform, | 
 |   SURFOBJ  *pso, | 
 |   PBYTE  paResults); | 
 |  | 
 | HANDLE | 
 | APIENTRY | 
 | DrvIcmCreateColorTransform( | 
 |   DHPDEV  dhpdev, | 
 |   LPLOGCOLORSPACEW  pLogColorSpace, | 
 |   PVOID  pvSourceProfile, | 
 |   ULONG  cjSourceProfile, | 
 |   PVOID  pvDestProfile, | 
 |   ULONG  cjDestProfile, | 
 |   PVOID  pvTargetProfile, | 
 |   ULONG  cjTargetProfile, | 
 |   DWORD  dwReserved); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvIcmDeleteColorTransform( | 
 |   DHPDEV  dhpdev, | 
 |   HANDLE  hcmXform); | 
 |  | 
 | /* DrvIcmSetDeviceGammaRamp.iFormat constants */ | 
 | #define IGRF_RGB_256BYTES                 0x00000000 | 
 | #define IGRF_RGB_256WORDS                 0x00000001 | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvIcmSetDeviceGammaRamp( | 
 |   DHPDEV  dhpdev, | 
 |   ULONG  iFormat, | 
 |   LPVOID  lpRamp); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvLineTo( | 
 |   SURFOBJ  *pso, | 
 |   CLIPOBJ  *pco, | 
 |   BRUSHOBJ  *pbo, | 
 |   LONG  x1, | 
 |   LONG  y1, | 
 |   LONG  x2, | 
 |   LONG  y2, | 
 |   RECTL  *prclBounds, | 
 |   MIX  mix); | 
 |  | 
 | ULONG_PTR | 
 | APIENTRY | 
 | DrvLoadFontFile( | 
 |   ULONG  cFiles, | 
 |   ULONG_PTR  *piFile, | 
 |   PVOID  *ppvView, | 
 |   ULONG  *pcjView, | 
 |   DESIGNVECTOR  *pdv, | 
 |   ULONG  ulLangID, | 
 |   ULONG  ulFastCheckSum); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvMovePointer( | 
 |   SURFOBJ  *pso, | 
 |   LONG  x, | 
 |   LONG  y, | 
 |   RECTL  *prcl); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvNextBand( | 
 |   SURFOBJ  *pso, | 
 |   POINTL  *pptl); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvNotify( | 
 |   SURFOBJ  *pso, | 
 |   ULONG  iType, | 
 |   PVOID  pvData); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvOffset( | 
 |   SURFOBJ  *pso, | 
 |   LONG  x, | 
 |   LONG  y, | 
 |   FLONG  flReserved); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvPaint( | 
 |   SURFOBJ  *pso, | 
 |   CLIPOBJ  *pco, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrushOrg, | 
 |   MIX  mix); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvPlgBlt( | 
 |   SURFOBJ  *psoTrg, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMsk, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   COLORADJUSTMENT  *pca, | 
 |   POINTL  *pptlBrushOrg, | 
 |   POINTFIX  *pptfx, | 
 |   RECTL  *prcl, | 
 |   POINTL  *pptl, | 
 |   ULONG  iMode); | 
 |  | 
 | /* DrvQueryAdvanceWidths.iMode constants */ | 
 | #define QAW_GETWIDTHS                     0 | 
 | #define QAW_GETEASYWIDTHS                 1 | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvQueryAdvanceWidths( | 
 |   DHPDEV  dhpdev, | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode, | 
 |   HGLYPH  *phg, | 
 |   PVOID  pvWidths, | 
 |   ULONG  cGlyphs); | 
 |  | 
 | /* DrvQueryDeviceSupport.iType constants */ | 
 | #define QDS_CHECKJPEGFORMAT               0x00000000 | 
 | #define QDS_CHECKPNGFORMAT                0x00000001 | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvQueryDeviceSupport( | 
 |   SURFOBJ  *pso, | 
 |   XLATEOBJ  *pxlo, | 
 |   XFORMOBJ  *pxo, | 
 |   ULONG  iType, | 
 |   ULONG  cjIn, | 
 |   PVOID  pvIn, | 
 |   ULONG  cjOut, | 
 |   PVOID  pvOut); | 
 |  | 
 | /* DrvQueryDriverInfo.dwMode constants */ | 
 | #define DRVQUERY_USERMODE                 0x00000001 | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvQueryDriverInfo( | 
 |   DWORD  dwMode, | 
 |   PVOID  pBuffer, | 
 |   DWORD  cbBuf, | 
 |   PDWORD  pcbNeeded); | 
 |  | 
 | PIFIMETRICS | 
 | APIENTRY | 
 | DrvQueryFont( | 
 |   DHPDEV  dhpdev, | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  iFace, | 
 |   ULONG_PTR  *pid); | 
 |  | 
 | /* DrvQueryFontCaps.pulCaps constants */ | 
 | #define QC_OUTLINES                       0x00000001 | 
 | #define QC_1BIT                           0x00000002 | 
 | #define QC_4BIT                           0x00000004 | 
 |  | 
 | #define QC_FONTDRIVERCAPS (QC_OUTLINES | QC_1BIT | QC_4BIT) | 
 |  | 
 | LONG | 
 | APIENTRY | 
 | DrvQueryFontCaps( | 
 |   ULONG  culCaps, | 
 |   ULONG  *pulCaps); | 
 |  | 
 | /* DrvQueryFontData.iMode constants */ | 
 | #define QFD_GLYPHANDBITMAP                __MSABI_LONG(1) | 
 | #define QFD_GLYPHANDOUTLINE               __MSABI_LONG(2) | 
 | #define QFD_MAXEXTENTS                    __MSABI_LONG(3) | 
 | #define QFD_TT_GLYPHANDBITMAP             __MSABI_LONG(4) | 
 | #define QFD_TT_GRAY1_BITMAP               __MSABI_LONG(5) | 
 | #define QFD_TT_GRAY2_BITMAP               __MSABI_LONG(6) | 
 | #define QFD_TT_GRAY4_BITMAP               __MSABI_LONG(8) | 
 | #define QFD_TT_GRAY8_BITMAP               __MSABI_LONG(9) | 
 |  | 
 | #define QFD_TT_MONO_BITMAP QFD_TT_GRAY1_BITMAP | 
 |  | 
 | LONG | 
 | APIENTRY | 
 | DrvQueryFontData( | 
 |   DHPDEV  dhpdev, | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode, | 
 |   HGLYPH  hg, | 
 |   GLYPHDATA  *pgd, | 
 |   PVOID  pv, | 
 |   ULONG  cjSize); | 
 |  | 
 | /* DrvQueryFontFile.ulMode constants */ | 
 | #define QFF_DESCRIPTION                   0x00000001 | 
 | #define QFF_NUMFACES                      0x00000002 | 
 |  | 
 | LONG | 
 | APIENTRY | 
 | DrvQueryFontFile( | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  ulMode, | 
 |   ULONG  cjBuf, | 
 |   ULONG  *pulBuf); | 
 |  | 
 | /* DrvQueryFontTree.iMode constants */ | 
 | #define QFT_UNICODE                       __MSABI_LONG(0) | 
 | #define QFT_LIGATURES                     __MSABI_LONG(1) | 
 | #define QFT_KERNPAIRS                     __MSABI_LONG(2) | 
 | #define QFT_GLYPHSET                      __MSABI_LONG(3) | 
 |  | 
 | PVOID | 
 | APIENTRY | 
 | DrvQueryFontTree( | 
 |   DHPDEV  dhpdev, | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  iFace, | 
 |   ULONG  iMode, | 
 |   ULONG_PTR  *pid); | 
 |  | 
 | PFD_GLYPHATTR | 
 | APIENTRY | 
 | DrvQueryGlyphAttrs( | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode); | 
 |  | 
 | ULONG | 
 | APIENTRY | 
 | DrvQueryPerBandInfo( | 
 |   SURFOBJ  *pso, | 
 |   PERBANDINFO  *pbi); | 
 |  | 
 | /* DrvQueryTrueTypeOutline.bMetricsOnly constants */ | 
 | #define TTO_METRICS_ONLY                  0x00000001 | 
 | #define TTO_QUBICS                        0x00000002 | 
 | #define TTO_UNHINTED                      0x00000004 | 
 |  | 
 | LONG | 
 | APIENTRY | 
 | DrvQueryTrueTypeOutline( | 
 |   DHPDEV  dhpdev, | 
 |   FONTOBJ  *pfo, | 
 |   HGLYPH  hglyph, | 
 |   WINBOOL  bMetricsOnly, | 
 |   GLYPHDATA  *pgldt, | 
 |   ULONG  cjBuf, | 
 |   TTPOLYGONHEADER  *ppoly); | 
 |  | 
 | LONG | 
 | APIENTRY | 
 | DrvQueryTrueTypeTable( | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  ulFont, | 
 |   ULONG  ulTag, | 
 |   PTRDIFF  dpStart, | 
 |   ULONG  cjBuf, | 
 |   BYTE  *pjBuf, | 
 |   PBYTE  *ppjTable, | 
 |   ULONG *pcjTable); | 
 |  | 
 | /* DrvRealizeBrush.iHatch constants */ | 
 | #define RB_DITHERCOLOR                    __MSABI_LONG(0x80000000) | 
 |  | 
 | #define HS_DDI_MAX                        6 | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvRealizeBrush( | 
 |   BRUSHOBJ  *pbo, | 
 |   SURFOBJ  *psoTarget, | 
 |   SURFOBJ  *psoPattern, | 
 |   SURFOBJ  *psoMask, | 
 |   XLATEOBJ  *pxlo, | 
 |   ULONG  iHatch); | 
 |  | 
 | /* DrvResetDevice return values */ | 
 | #define DRD_SUCCESS                       0 | 
 | #define DRD_ERROR                         1 | 
 |  | 
 | ULONG | 
 | APIENTRY | 
 | DrvResetDevice( | 
 |   DHPDEV dhpdev, | 
 |   PVOID Reserved); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvResetPDEV( | 
 |   DHPDEV  dhpdevOld, | 
 |   DHPDEV  dhpdevNew); | 
 |  | 
 | /* DrvSaveScreenBits.iMode constants */ | 
 | #define SS_SAVE                           0x00000000 | 
 | #define SS_RESTORE                        0x00000001 | 
 | #define SS_FREE                           0x00000002 | 
 |  | 
 | ULONG_PTR | 
 | APIENTRY | 
 | DrvSaveScreenBits( | 
 |   SURFOBJ  *pso, | 
 |   ULONG  iMode, | 
 |   ULONG_PTR  ident, | 
 |   RECTL  *prcl); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvSendPage( | 
 |   SURFOBJ  *pso); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvSetPalette( | 
 |   DHPDEV  dhpdev, | 
 |   PALOBJ  *ppalo, | 
 |   FLONG  fl, | 
 |   ULONG  iStart, | 
 |   ULONG  cColors); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvSetPixelFormat( | 
 |   SURFOBJ  *pso, | 
 |   LONG  iPixelFormat, | 
 |   HWND  hwnd); | 
 |  | 
 | /* DrvSetPointerShape return values */ | 
 | #define SPS_ERROR                         0x00000000 | 
 | #define SPS_DECLINE                       0x00000001 | 
 | #define SPS_ACCEPT_NOEXCLUDE              0x00000002 | 
 | #define SPS_ACCEPT_EXCLUDE                0x00000003 | 
 | #define SPS_ACCEPT_SYNCHRONOUS            0x00000004 | 
 |  | 
 | /* DrvSetPointerShape.fl constants */ | 
 | #define SPS_CHANGE                        __MSABI_LONG(0x00000001) | 
 | #define SPS_ASYNCCHANGE                   __MSABI_LONG(0x00000002) | 
 | #define SPS_ANIMATESTART                  __MSABI_LONG(0x00000004) | 
 | #define SPS_ANIMATEUPDATE                 __MSABI_LONG(0x00000008) | 
 | #define SPS_ALPHA                         __MSABI_LONG(0x00000010) | 
 | #define SPS_LENGTHMASK                    __MSABI_LONG(0x00000F00) | 
 | #define SPS_FREQMASK                      __MSABI_LONG(0x000FF000) | 
 |  | 
 | ULONG | 
 | APIENTRY | 
 | DrvSetPointerShape( | 
 |   SURFOBJ  *pso, | 
 |   SURFOBJ  *psoMask, | 
 |   SURFOBJ  *psoColor, | 
 |   XLATEOBJ  *pxlo, | 
 |   LONG  xHot, | 
 |   LONG  yHot, | 
 |   LONG  x, | 
 |   LONG  y, | 
 |   RECTL  *prcl, | 
 |   FLONG  fl); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvStartBanding( | 
 |   SURFOBJ  *pso, | 
 |   POINTL  *pptl); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvStartDoc( | 
 |   SURFOBJ  *pso, | 
 |   LPWSTR  pwszDocName, | 
 |   DWORD  dwJobId); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvStartPage( | 
 |   SURFOBJ  *pso); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvStretchBlt( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMask, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   COLORADJUSTMENT  *pca, | 
 |   POINTL  *pptlHTOrg, | 
 |   RECTL  *prclDest, | 
 |   RECTL  *prclSrc, | 
 |   POINTL  *pptlMask, | 
 |   ULONG  iMode); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvStretchBltROP( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMask, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   COLORADJUSTMENT  *pca, | 
 |   POINTL  *pptlHTOrg, | 
 |   RECTL  *prclDest, | 
 |   RECTL  *prclSrc, | 
 |   POINTL  *pptlMask, | 
 |   ULONG  iMode, | 
 |   BRUSHOBJ  *pbo, | 
 |   DWORD  rop4); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvStrokeAndFillPath( | 
 |   SURFOBJ  *pso, | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   XFORMOBJ  *pxo, | 
 |   BRUSHOBJ  *pboStroke, | 
 |   LINEATTRS  *plineattrs, | 
 |   BRUSHOBJ  *pboFill, | 
 |   POINTL  *pptlBrushOrg, | 
 |   MIX  mixFill, | 
 |   FLONG  flOptions); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvStrokePath( | 
 |   SURFOBJ  *pso, | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   XFORMOBJ  *pxo, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrushOrg, | 
 |   LINEATTRS  *plineattrs, | 
 |   MIX  mix); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvSwapBuffers( | 
 |   SURFOBJ  *pso, | 
 |   WNDOBJ  *pwo); | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvSynchronize( | 
 |   DHPDEV  dhpdev, | 
 |   RECTL  *prcl); | 
 |  | 
 | /* DrvSynchronizeSurface.fl constants */ | 
 | #define DSS_TIMER_EVENT                   0x00000001 | 
 | #define DSS_FLUSH_EVENT                   0x00000002 | 
 |  | 
 | VOID | 
 | APIENTRY | 
 | DrvSynchronizeSurface( | 
 |   SURFOBJ  *pso, | 
 |   RECTL  *prcl, | 
 |   FLONG  fl); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvTextOut( | 
 |   SURFOBJ  *pso, | 
 |   STROBJ  *pstro, | 
 |   FONTOBJ  *pfo, | 
 |   CLIPOBJ  *pco, | 
 |   RECTL  *prclExtra, | 
 |   RECTL  *prclOpaque, | 
 |   BRUSHOBJ  *pboFore, | 
 |   BRUSHOBJ  *pboOpaque, | 
 |   POINTL  *pptlOrg, | 
 |   MIX  mix); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvTransparentBlt( | 
 |   SURFOBJ  *psoDst, | 
 |   SURFOBJ  *psoSrc, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclDst, | 
 |   RECTL  *prclSrc, | 
 |   ULONG  iTransColor, | 
 |   ULONG  ulReserved); | 
 |  | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvUnloadFontFile( | 
 |   ULONG_PTR  iFile); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvAlphaBlend)( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclDest, | 
 |   RECTL  *prclSrc, | 
 |   BLENDOBJ  *pBlendObj); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvAssertMode)( | 
 |   DHPDEV  dhpdev, | 
 |   WINBOOL  bEnable); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvBitBlt)( | 
 |   SURFOBJ  *psoTrg, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMask, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclTrg, | 
 |   POINTL  *pptlSrc, | 
 |   POINTL  *pptlMask, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrush, | 
 |   ROP4  rop4); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvCompletePDEV)( | 
 |   DHPDEV  dhpdev, | 
 |   HDEV  hdev); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvCopyBits)( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclDest, | 
 |   POINTL  *pptlSrc); | 
 |  | 
 | typedef HBITMAP | 
 | (APIENTRY *PFN_DrvCreateDeviceBitmap)( | 
 |   DHPDEV  dhpdev, | 
 |   SIZEL  sizl, | 
 |   ULONG  iFormat); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvDeleteDeviceBitmap)( | 
 |   DHSURF  dhsurf); | 
 |  | 
 | typedef HBITMAP | 
 | (APIENTRY *PFN_DrvDeriveSurface)( | 
 |   DD_DIRECTDRAW_GLOBAL  *pDirectDraw, | 
 |   DD_SURFACE_LOCAL  *pSurface); | 
 |  | 
 | typedef LONG | 
 | (APIENTRY *PFN_DrvDescribePixelFormat)( | 
 |   DHPDEV  dhpdev, | 
 |   LONG  iPixelFormat, | 
 |   ULONG  cjpfd, | 
 |   PIXELFORMATDESCRIPTOR  *ppfd); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvDestroyFont)( | 
 |   FONTOBJ  *pfo); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvDisableDriver)( | 
 |   VOID); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvDisablePDEV)( | 
 |   DHPDEV  dhpdev); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvDisableSurface)( | 
 |   DHPDEV  dhpdev); | 
 |  | 
 | typedef ULONG | 
 | (APIENTRY *PFN_DrvDitherColor)( | 
 |   DHPDEV  dhpdev, | 
 |   ULONG  iMode, | 
 |   ULONG  rgb, | 
 |   ULONG  *pul); | 
 |  | 
 | typedef ULONG | 
 | (APIENTRY *PFN_DrvDrawEscape)( | 
 |   SURFOBJ  *pso, | 
 |   ULONG  iEsc, | 
 |   CLIPOBJ  *pco, | 
 |   RECTL  *prcl, | 
 |   ULONG  cjIn, | 
 |   PVOID  pvIn); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvEnableDriver)( | 
 |   ULONG  iEngineVersion, | 
 |   ULONG  cj, | 
 |   DRVENABLEDATA  *pded); | 
 |  | 
 | typedef DHPDEV  | 
 | (APIENTRY *PFN_DrvEnablePDEV)( | 
 |   DEVMODEW  *pdm, | 
 |   LPWSTR  pwszLogAddress, | 
 |   ULONG  cPat, | 
 |   HSURF  *phsurfPatterns, | 
 |   ULONG  cjCaps, | 
 |   GDIINFO  *pdevcaps, | 
 |   ULONG  cjDevInfo, | 
 |   DEVINFO  *pdi, | 
 |   HDEV  hdev, | 
 |   LPWSTR  pwszDeviceName, | 
 |   HANDLE  hDriver); | 
 |  | 
 | typedef HSURF | 
 | (APIENTRY *PFN_DrvEnableSurface)( | 
 |   DHPDEV  dhpdev); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvEndDoc)( | 
 |   SURFOBJ  *pso, | 
 |   FLONG  fl); | 
 |  | 
 | typedef ULONG | 
 | (APIENTRY *PFN_DrvEscape)( | 
 |   SURFOBJ  *pso, | 
 |   ULONG  iEsc, | 
 |   ULONG  cjIn, | 
 |   PVOID  pvIn, | 
 |   ULONG  cjOut, | 
 |   PVOID  pvOut); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvFillPath)( | 
 |   SURFOBJ  *pso, | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrushOrg, | 
 |   MIX  mix, | 
 |   FLONG  flOptions); | 
 |  | 
 | typedef ULONG | 
 | (APIENTRY *PFN_DrvFontManagement)( | 
 |   SURFOBJ  *pso, | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode, | 
 |   ULONG  cjIn, | 
 |   PVOID  pvIn, | 
 |   ULONG  cjOut, | 
 |   PVOID  pvOut); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvFree)( | 
 |   PVOID  pv, | 
 |   ULONG_PTR  id); | 
 |  | 
 | typedef ULONG | 
 | (APIENTRY *PFN_DrvGetGlyphMode)( | 
 |   DHPDEV  dhpdev, | 
 |   FONTOBJ  *pfo); | 
 |  | 
 | typedef ULONG | 
 | (APIENTRY *PFN_DrvGetModes)( | 
 |   HANDLE  hDriver, | 
 |   ULONG  cjSize, | 
 |   DEVMODEW  *pdm); | 
 |  | 
 | typedef PVOID | 
 | (APIENTRY *PFN_DrvGetTrueTypeFile)( | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  *pcj); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvGradientFill)( | 
 |   SURFOBJ  *psoDest, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   TRIVERTEX  *pVertex, | 
 |   ULONG  nVertex, | 
 |   PVOID  pMesh, | 
 |   ULONG  nMesh, | 
 |   RECTL  *prclExtents, | 
 |   POINTL  *pptlDitherOrg, | 
 |   ULONG  ulMode); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvIcmCheckBitmapBits)( | 
 |   DHPDEV  dhpdev, | 
 |   HANDLE  hColorTransform, | 
 |   SURFOBJ  *pso, | 
 |   PBYTE  paResults); | 
 |  | 
 | typedef HANDLE | 
 | (APIENTRY *PFN_DrvIcmCreateColorTransform)( | 
 |   DHPDEV  dhpdev, | 
 |   LPLOGCOLORSPACEW  pLogColorSpace, | 
 |   PVOID  pvSourceProfile, | 
 |   ULONG  cjSourceProfile, | 
 |   PVOID  pvDestProfile, | 
 |   ULONG  cjDestProfile, | 
 |   PVOID  pvTargetProfile, | 
 |   ULONG  cjTargetProfile, | 
 |   DWORD  dwReserved); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvIcmDeleteColorTransform)( | 
 |   DHPDEV  dhpdev, | 
 |   HANDLE  hcmXform); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvIcmSetDeviceGammaRamp)( | 
 |   DHPDEV  dhpdev, | 
 |   ULONG  iFormat, | 
 |   LPVOID  lpRamp); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvLineTo)( | 
 |   SURFOBJ  *pso, | 
 |   CLIPOBJ  *pco, | 
 |   BRUSHOBJ  *pbo, | 
 |   LONG  x1, | 
 |   LONG  y1, | 
 |   LONG  x2, | 
 |   LONG  y2, | 
 |   RECTL  *prclBounds, | 
 |   MIX  mix); | 
 |  | 
 | typedef ULONG_PTR | 
 | (APIENTRY *PFN_DrvLoadFontFile)( | 
 |   ULONG  cFiles, | 
 |   ULONG_PTR  *piFile, | 
 |   PVOID  *ppvView, | 
 |   ULONG  *pcjView, | 
 |   DESIGNVECTOR  *pdv, | 
 |   ULONG  ulLangID, | 
 |   ULONG  ulFastCheckSum); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvMovePointer)( | 
 |   SURFOBJ  *pso, | 
 |   LONG  x, | 
 |   LONG  y, | 
 |   RECTL  *prcl); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvNextBand)( | 
 |   SURFOBJ  *pso, | 
 |   POINTL  *pptl); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvNotify)( | 
 |   SURFOBJ  *pso, | 
 |   ULONG  iType, | 
 |   PVOID  pvData); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvOffset)( | 
 |   SURFOBJ  *pso, | 
 |   LONG  x, | 
 |   LONG  y, | 
 |   FLONG  flReserved); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvPaint)( | 
 |   SURFOBJ  *pso, | 
 |   CLIPOBJ  *pco, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrushOrg, | 
 |   MIX  mix); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvPlgBlt)( | 
 |   SURFOBJ  *psoTrg, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMsk, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   COLORADJUSTMENT  *pca, | 
 |   POINTL  *pptlBrushOrg, | 
 |   POINTFIX  *pptfx, | 
 |   RECTL  *prcl, | 
 |   POINTL  *pptl, | 
 |   ULONG  iMode); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvQueryAdvanceWidths)( | 
 |   DHPDEV  dhpdev, | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode, | 
 |   HGLYPH  *phg, | 
 |   PVOID  pvWidths, | 
 |   ULONG  cGlyphs); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvQueryDeviceSupport)( | 
 |   SURFOBJ  *pso, | 
 |   XLATEOBJ  *pxlo, | 
 |   XFORMOBJ  *pxo, | 
 |   ULONG  iType, | 
 |   ULONG  cjIn, | 
 |   PVOID  pvIn, | 
 |   ULONG  cjOut, | 
 |   PVOID  pvOut); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvQueryDriverInfo)( | 
 |   DWORD  dwMode, | 
 |   PVOID  pBuffer, | 
 |   DWORD  cbBuf, | 
 |   PDWORD  pcbNeeded); | 
 |  | 
 | typedef PIFIMETRICS | 
 | (APIENTRY *PFN_DrvQueryFont)( | 
 |   DHPDEV  dhpdev, | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  iFace, | 
 |   ULONG_PTR  *pid); | 
 |  | 
 | typedef LONG | 
 | (APIENTRY *PFN_DrvQueryFontCaps)( | 
 |   ULONG  culCaps, | 
 |   ULONG  *pulCaps); | 
 |  | 
 | typedef LONG | 
 | (APIENTRY *PFN_DrvQueryFontData)( | 
 |   DHPDEV  dhpdev, | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode, | 
 |   HGLYPH  hg, | 
 |   GLYPHDATA  *pgd, | 
 |   PVOID  pv, | 
 |   ULONG  cjSize); | 
 |  | 
 | typedef LONG | 
 | (APIENTRY *PFN_DrvQueryFontFile)( | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  ulMode, | 
 |   ULONG  cjBuf, | 
 |   ULONG  *pulBuf); | 
 |  | 
 | typedef PVOID | 
 | (APIENTRY *PFN_DrvQueryFontTree)( | 
 |   DHPDEV  dhpdev, | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  iFace, | 
 |   ULONG  iMode, | 
 |   ULONG_PTR  *pid); | 
 |  | 
 | typedef PFD_GLYPHATTR | 
 | (APIENTRY *PFN_DrvQueryGlyphAttrs)( | 
 |   FONTOBJ  *pfo, | 
 |   ULONG  iMode); | 
 |  | 
 | typedef ULONG | 
 | (APIENTRY *PFN_DrvQueryPerBandInfo)( | 
 |   SURFOBJ  *pso, | 
 |   PERBANDINFO  *pbi); | 
 |  | 
 | typedef LONG | 
 | (APIENTRY *PFN_DrvQueryTrueTypeOutline)( | 
 |   DHPDEV  dhpdev, | 
 |   FONTOBJ  *pfo, | 
 |   HGLYPH  hglyph, | 
 |   WINBOOL  bMetricsOnly, | 
 |   GLYPHDATA  *pgldt, | 
 |   ULONG  cjBuf, | 
 |   TTPOLYGONHEADER  *ppoly); | 
 |  | 
 | typedef LONG | 
 | (APIENTRY *PFN_DrvQueryTrueTypeTable)( | 
 |   ULONG_PTR  iFile, | 
 |   ULONG  ulFont, | 
 |   ULONG  ulTag, | 
 |   PTRDIFF  dpStart, | 
 |   ULONG  cjBuf, | 
 |   BYTE  *pjBuf, | 
 |   PBYTE  *ppjTable, | 
 |   ULONG *pcjTable); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvRealizeBrush)( | 
 |   BRUSHOBJ  *pbo, | 
 |   SURFOBJ  *psoTarget, | 
 |   SURFOBJ  *psoPattern, | 
 |   SURFOBJ  *psoMask, | 
 |   XLATEOBJ  *pxlo, | 
 |   ULONG  iHatch); | 
 |  | 
 | typedef ULONG | 
 | (APIENTRY *PFN_DrvResetDevice)( | 
 |   DHPDEV dhpdev, | 
 |   PVOID Reserved); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvResetPDEV)( | 
 |   DHPDEV  dhpdevOld, | 
 |   DHPDEV  dhpdevNew); | 
 |  | 
 | typedef ULONG_PTR | 
 | (APIENTRY *PFN_DrvSaveScreenBits)( | 
 |   SURFOBJ  *pso, | 
 |   ULONG  iMode, | 
 |   ULONG_PTR  ident, | 
 |   RECTL  *prcl); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvSendPage)( | 
 |   SURFOBJ  *pso); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvSetPalette)( | 
 |   DHPDEV  dhpdev, | 
 |   PALOBJ  *ppalo, | 
 |   FLONG  fl, | 
 |   ULONG  iStart, | 
 |   ULONG  cColors); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvSetPixelFormat)( | 
 |   SURFOBJ  *pso, | 
 |   LONG  iPixelFormat, | 
 |   HWND  hwnd); | 
 |  | 
 | typedef ULONG | 
 | (APIENTRY *PFN_DrvSetPointerShape)( | 
 |   SURFOBJ  *pso, | 
 |   SURFOBJ  *psoMask, | 
 |   SURFOBJ  *psoColor, | 
 |   XLATEOBJ  *pxlo, | 
 |   LONG  xHot, | 
 |   LONG  yHot, | 
 |   LONG  x, | 
 |   LONG  y, | 
 |   RECTL  *prcl, | 
 |   FLONG  fl); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvStartBanding)( | 
 |   SURFOBJ  *pso, | 
 |   POINTL  *pptl); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvStartDoc)( | 
 |   SURFOBJ  *pso, | 
 |   LPWSTR  pwszDocName, | 
 |   DWORD  dwJobId); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvStartPage)( | 
 |   SURFOBJ  *pso); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvStretchBlt)( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMask, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   COLORADJUSTMENT  *pca, | 
 |   POINTL  *pptlHTOrg, | 
 |   RECTL  *prclDest, | 
 |   RECTL  *prclSrc, | 
 |   POINTL  *pptlMask, | 
 |   ULONG  iMode); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvStretchBltROP)( | 
 |   SURFOBJ  *psoDest, | 
 |   SURFOBJ  *psoSrc, | 
 |   SURFOBJ  *psoMask, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   COLORADJUSTMENT  *pca, | 
 |   POINTL  *pptlHTOrg, | 
 |   RECTL  *prclDest, | 
 |   RECTL  *prclSrc, | 
 |   POINTL  *pptlMask, | 
 |   ULONG  iMode, | 
 |   BRUSHOBJ  *pbo, | 
 |   DWORD  rop4); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvStrokeAndFillPath)( | 
 |   SURFOBJ  *pso, | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   XFORMOBJ  *pxo, | 
 |   BRUSHOBJ  *pboStroke, | 
 |   LINEATTRS  *plineattrs, | 
 |   BRUSHOBJ  *pboFill, | 
 |   POINTL  *pptlBrushOrg, | 
 |   MIX  mixFill, | 
 |   FLONG  flOptions); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvStrokePath)( | 
 |   SURFOBJ  *pso, | 
 |   PATHOBJ  *ppo, | 
 |   CLIPOBJ  *pco, | 
 |   XFORMOBJ  *pxo, | 
 |   BRUSHOBJ  *pbo, | 
 |   POINTL  *pptlBrushOrg, | 
 |   LINEATTRS  *plineattrs, | 
 |   MIX  mix); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvSwapBuffers)( | 
 |   SURFOBJ  *pso, | 
 |   WNDOBJ  *pwo); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvSynchronize)( | 
 |   DHPDEV  dhpdev, | 
 |   RECTL  *prcl); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvSynchronizeSurface)( | 
 |   SURFOBJ  *pso, | 
 |   RECTL  *prcl, | 
 |   FLONG  fl); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvTextOut)( | 
 |   SURFOBJ  *pso, | 
 |   STROBJ  *pstro, | 
 |   FONTOBJ  *pfo, | 
 |   CLIPOBJ  *pco, | 
 |   RECTL  *prclExtra, | 
 |   RECTL  *prclOpaque, | 
 |   BRUSHOBJ  *pboFore, | 
 |   BRUSHOBJ  *pboOpaque, | 
 |   POINTL  *pptlOrg, | 
 |   MIX  mix); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvTransparentBlt)( | 
 |   SURFOBJ  *psoDst, | 
 |   SURFOBJ  *psoSrc, | 
 |   CLIPOBJ  *pco, | 
 |   XLATEOBJ  *pxlo, | 
 |   RECTL  *prclDst, | 
 |   RECTL  *prclSrc, | 
 |   ULONG  iTransColor, | 
 |   ULONG  ulReserved); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvUnloadFontFile)( | 
 |   ULONG_PTR  iFile); | 
 |  | 
 |  | 
 | WIN32KAPI | 
 | VOID | 
 | APIENTRY | 
 | DrvDisableDirectDraw( | 
 |   DHPDEV  dhpdev); | 
 |  | 
 | typedef VOID | 
 | (APIENTRY *PFN_DrvDisableDirectDraw)( | 
 |   DHPDEV  dhpdev); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvEnableDirectDraw( | 
 |   DHPDEV  dhpdev, | 
 |   DD_CALLBACKS  *pCallBacks, | 
 |   DD_SURFACECALLBACKS  *pSurfaceCallBacks, | 
 |   DD_PALETTECALLBACKS  *pPaletteCallBacks); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvEnableDirectDraw)( | 
 |   DHPDEV  dhpdev, | 
 |   DD_CALLBACKS  *pCallBacks, | 
 |   DD_SURFACECALLBACKS  *pSurfaceCallBacks, | 
 |   DD_PALETTECALLBACKS  *pPaletteCallBacks); | 
 |  | 
 | WIN32KAPI | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvGetDirectDrawInfo( | 
 |   DHPDEV  dhpdev, | 
 |   DD_HALINFO  *pHalInfo, | 
 |   DWORD  *pdwNumHeaps, | 
 |   VIDEOMEMORY  *pvmList, | 
 |   DWORD  *pdwNumFourCCCodes, | 
 |   DWORD  *pdwFourCC); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvGetDirectDrawInfo)( | 
 |   DHPDEV  dhpdev, | 
 |   DD_HALINFO  *pHalInfo, | 
 |   DWORD  *pdwNumHeaps, | 
 |   VIDEOMEMORY  *pvmList, | 
 |   DWORD  *pdwNumFourCCCodes, | 
 |   DWORD  *pdwFourCC); | 
 |  | 
 | //DECLSPEC_DEPRECATED_DDK | 
 | WINBOOL | 
 | APIENTRY | 
 | DrvQuerySpoolType( | 
 |   DHPDEV dhpdev, | 
 |   LPWSTR pwchType); | 
 |  | 
 | typedef WINBOOL | 
 | (APIENTRY *PFN_DrvQuerySpoolType)( | 
 |   DHPDEV dhpdev, | 
 |   LPWSTR pwchType); | 
 |  | 
 |  | 
 | #ifdef __cplusplus | 
 | } | 
 | #endif | 
 |  | 
 | #endif /* defined __VIDEO_H__ */ | 
 |  | 
 | #endif /* _WINDDI_ */ |