|  | /* | 
|  | * 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_ */ |