/* * winddi.h * * GDI device driver interface * * This file is part of the w32api package. * * Contributors: * Created by Casper S. Hornstrup * * 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_H #define __WINDDI_H #if __GNUC__ >=3 #pragma GCC system_header #endif #ifdef __VIDEO_H #error video.h cannot be included with winddi.h #else #ifdef __cplusplus extern "C" { #endif #include "ntddk.h" #include #ifndef __DD_INCLUDED__ /* FIXME: Some DirectDraw structures not added yet */ typedef ULONG_PTR FLATPTR; typedef struct _DD_SURFACECALLBACKS { } DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS; typedef struct _DD_PALETTECALLBACKS { } DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS; typedef struct _DD_CALLBACKS { } DD_CALLBACKS, *PDD_CALLBACKS; typedef struct _DD_HALINFO { } DD_HALINFO, *PDD_HALINFO; typedef struct _VIDEOMEMORY { } VIDEOMEMORY, *LPVIDEOMEMORY; typedef struct _DD_DIRECTDRAW_GLOBAL { } DD_DIRECTDRAW_GLOBAL, *LPDD_DIRECTDRAW_GLOBAL; typedef struct _DD_SURFACE_LOCAL { } DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL, *LPDD_SURFACE_LOCAL; #endif #ifndef __DDRAWI_INCLUDED__ typedef PVOID LPVIDMEM; #endif #if !defined(__DD_INCLUDED__) && !defined(__DDRAWI_INCLUDED__) typedef struct _DDSCAPS { } DDSCAPS, *PDDSCAPS; typedef struct _DDSCAPSEX { } DDSCAPSEX, *PDDSCAPSEX; typedef PVOID LPVMEMHEAP; #endif #if defined(_WIN32K_) #define WIN32KAPI DECL_EXPORT #else #define WIN32KAPI DECL_IMPORT #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 (DDKAPI *PFN)(); DECLARE_HANDLE(HBM); DECLARE_HANDLE(HDEV); DECLARE_HANDLE(HSURF); DECLARE_HANDLE(DHSURF); DECLARE_HANDLE(DHPDEV); DECLARE_HANDLE(HDRVOBJ); #define GDI_DRIVER_VERSION 0x4000 typedef struct _ENG_EVENT *PEVENT; #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 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 1L #define BMF_4BPP 2L #define BMF_8BPP 3L #define BMF_16BPP 4L #define BMF_24BPP 5L #define BMF_32BPP 6L #define BMF_4RLE 7L #define BMF_8RLE 8L #define BMF_JPEG 9L #define BMF_PNG 10L /* 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; typedef struct _DRIVEROBJ *PDRIVEROBJ; typedef BOOL DDKAPI CALLBACK (*FREEOBJPROC)( /*IN*/ PDRIVEROBJ pDriverObj); typedef struct _DRIVEROBJ { PVOID pvObj; FREEOBJPROC pFreeProc; HDEV hdev; DHPDEV dhpdev; } DRIVEROBJ; /* DRVFN.iFunc constants */ #define INDEX_DrvEnablePDEV 0L #define INDEX_DrvCompletePDEV 1L #define INDEX_DrvDisablePDEV 2L #define INDEX_DrvEnableSurface 3L #define INDEX_DrvDisableSurface 4L #define INDEX_DrvAssertMode 5L #define INDEX_DrvOffset 6L #define INDEX_DrvResetPDEV 7L #define INDEX_DrvDisableDriver 8L #define INDEX_DrvCreateDeviceBitmap 10L #define INDEX_DrvDeleteDeviceBitmap 11L #define INDEX_DrvRealizeBrush 12L #define INDEX_DrvDitherColor 13L #define INDEX_DrvStrokePath 14L #define INDEX_DrvFillPath 15L #define INDEX_DrvStrokeAndFillPath 16L #define INDEX_DrvPaint 17L #define INDEX_DrvBitBlt 18L #define INDEX_DrvCopyBits 19L #define INDEX_DrvStretchBlt 20L #define INDEX_DrvSetPalette 22L #define INDEX_DrvTextOut 23L #define INDEX_DrvEscape 24L #define INDEX_DrvDrawEscape 25L #define INDEX_DrvQueryFont 26L #define INDEX_DrvQueryFontTree 27L #define INDEX_DrvQueryFontData 28L #define INDEX_DrvSetPointerShape 29L #define INDEX_DrvMovePointer 30L #define INDEX_DrvLineTo 31L #define INDEX_DrvSendPage 32L #define INDEX_DrvStartPage 33L #define INDEX_DrvEndDoc 34L #define INDEX_DrvStartDoc 35L #define INDEX_DrvGetGlyphMode 37L #define INDEX_DrvSynchronize 38L #define INDEX_DrvSaveScreenBits 40L #define INDEX_DrvGetModes 41L #define INDEX_DrvFree 42L #define INDEX_DrvDestroyFont 43L #define INDEX_DrvQueryFontCaps 44L #define INDEX_DrvLoadFontFile 45L #define INDEX_DrvUnloadFontFile 46L #define INDEX_DrvFontManagement 47L #define INDEX_DrvQueryTrueTypeTable 48L #define INDEX_DrvQueryTrueTypeOutline 49L #define INDEX_DrvGetTrueTypeFile 50L #define INDEX_DrvQueryFontFile 51L #define INDEX_DrvMovePanning 52L #define INDEX_DrvQueryAdvanceWidths 53L #define INDEX_DrvSetPixelFormat 54L #define INDEX_DrvDescribePixelFormat 55L #define INDEX_DrvSwapBuffers 56L #define INDEX_DrvStartBanding 57L #define INDEX_DrvNextBand 58L #define INDEX_DrvGetDirectDrawInfo 59L #define INDEX_DrvEnableDirectDraw 60L #define INDEX_DrvDisableDirectDraw 61L #define INDEX_DrvQuerySpoolType 62L #define INDEX_DrvIcmCreateColorTransform 64L #define INDEX_DrvIcmDeleteColorTransform 65L #define INDEX_DrvIcmCheckBitmapBits 66L #define INDEX_DrvIcmSetDeviceGammaRamp 67L #define INDEX_DrvGradientFill 68L #define INDEX_DrvStretchBltROP 69L #define INDEX_DrvPlgBlt 70L #define INDEX_DrvAlphaBlend 71L #define INDEX_DrvSynthesizeFont 72L #define INDEX_DrvGetSynthesizedFontFiles 73L #define INDEX_DrvTransparentBlt 74L #define INDEX_DrvQueryPerBandInfo 75L #define INDEX_DrvQueryDeviceSupport 76L #define INDEX_DrvReserved1 77L #define INDEX_DrvReserved2 78L #define INDEX_DrvReserved3 79L #define INDEX_DrvReserved4 80L #define INDEX_DrvReserved5 81L #define INDEX_DrvReserved6 82L #define INDEX_DrvReserved7 83L #define INDEX_DrvReserved8 84L #define INDEX_DrvDeriveSurface 85L #define INDEX_DrvQueryGlyphAttrs 86L #define INDEX_DrvNotify 87L #define INDEX_DrvSynchronizeSurface 88L #define INDEX_DrvResetDevice 89L #define INDEX_DrvReserved9 90L #define INDEX_DrvReserved10 91L #define INDEX_DrvReserved11 92L #define INDEX_LAST 93L 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 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; typedef struct _FLOATOBJ { ULONG ul1; ULONG ul2; } FLOATOBJ, *PFLOATOBJ; 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 1L #define FO_OUTLINE_CAPABLE 2L 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 *glypptfx; } 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 0L #define JOIN_BEVEL 1L #define JOIN_MITER 2L /* LINEATTRS.iEndCap */ #define ENDCAP_ROUND 0L #define ENDCAP_SQUARE 1L #define ENDCAP_BUTT 2L 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 { BOOL 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; typedef struct _SURFACEALIGNMENT { union { struct { DWORD dwStartAlignment; DWORD dwPitchAlignment; DWORD dwReserved1; DWORD dwReserved2; } Linear; struct { DWORD dwXAlignment; DWORD dwYAlignment; DWORD dwReserved1; DWORD dwReserved2; } Rectangular; }; } SURFACEALIGNMENT, *LPSURFACEALIGNMENT; /* SURFOBJ.iType constants */ #define STYPE_BITMAP 0L #define STYPE_DEVICE 1L #define STYPE_DEVBITMAP 3L /* 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; typedef VOID DDKAPI (CALLBACK *WNDOBJCHANGEPROC)( /*IN*/ WNDOBJ *pwo, /*IN*/ FLONG fl); WIN32KAPI HANDLE DDKAPI BRUSHOBJ_hGetColorTransform( /*IN*/ BRUSHOBJ *pbo); WIN32KAPI PVOID DDKAPI BRUSHOBJ_pvAllocRbrush( /*IN*/ BRUSHOBJ *pbo, /*IN*/ ULONG cj); WIN32KAPI PVOID DDKAPI BRUSHOBJ_pvGetRbrush( /*IN*/ BRUSHOBJ *pbo); WIN32KAPI ULONG DDKAPI BRUSHOBJ_ulGetBrushColor( /*IN*/ BRUSHOBJ *pbo); WIN32KAPI BOOL DDKAPI CLIPOBJ_bEnum( /*IN*/ CLIPOBJ *pco, /*IN*/ ULONG cj, /*OUT*/ ULONG *pv); /* CLIPOBJ_cEnumStart.iType constants */ #define CT_RECTANGLES 0L /* 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 DDKAPI CLIPOBJ_cEnumStart( /*IN*/ CLIPOBJ *pco, /*IN*/ BOOL bAll, /*IN*/ ULONG iType, /*IN*/ ULONG iDirection, /*IN*/ ULONG cLimit); WIN32KAPI PATHOBJ* DDKAPI CLIPOBJ_ppoGetPath( /*IN*/ CLIPOBJ *pco); WIN32KAPI VOID DDKAPI EngAcquireSemaphore( /*IN*/ HSEMAPHORE hsem); #define FL_ZERO_MEMORY 0x00000001 #define FL_NONPAGED_MEMORY 0x00000002 WIN32KAPI PVOID DDKAPI EngAllocMem( /*IN*/ ULONG Flags, /*IN*/ ULONG MemSize, /*IN*/ ULONG Tag); WIN32KAPI PVOID DDKAPI EngAllocPrivateUserMem( /*IN*/ PDD_SURFACE_LOCAL psl, /*IN*/ SIZE_T cj, /*IN*/ ULONG tag); WIN32KAPI PVOID DDKAPI EngAllocUserMem( /*IN*/ SIZE_T cj, /*IN*/ ULONG tag); WIN32KAPI BOOL DDKAPI EngAlphaBlend( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclDest, /*IN*/ RECTL *prclSrc, /*IN*/ 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 BOOL DDKAPI EngAssociateSurface( /*IN*/ HSURF hsurf, /*IN*/ HDEV hdev, /*IN*/ FLONG flHooks); WIN32KAPI BOOL DDKAPI EngBitBlt( /*IN*/ SURFOBJ *psoTrg, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMask, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclTrg, /*IN*/ POINTL *pptlSrc, /*IN*/ POINTL *pptlMask, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrush, /*IN*/ ROP4 rop4); WIN32KAPI BOOL DDKAPI EngCheckAbort( /*IN*/ SURFOBJ *pso); WIN32KAPI VOID DDKAPI EngClearEvent( /*IN*/ PEVENT pEvent); WIN32KAPI FD_GLYPHSET* DDKAPI EngComputeGlyphSet( /*IN*/ INT nCodePage, /*IN*/ INT nFirstChar, /*IN*/ INT cChars); /* EngControlSprites.fl constants */ #define ECS_TEARDOWN 0x00000001 #define ECS_REDRAW 0x00000002 WIN32KAPI BOOL DDKAPI EngControlSprites( /*IN*/ WNDOBJ *pwo, /*IN*/ FLONG fl); WIN32KAPI BOOL DDKAPI EngCopyBits( /*OUT*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclDest, /*IN*/ POINTL *pptlSrc); WIN32KAPI HBITMAP DDKAPI EngCreateBitmap( /*IN*/ SIZEL sizl, /*IN*/ LONG lWidth, /*IN*/ ULONG iFormat, /*IN*/ FLONG fl, /*IN*/ PVOID pvBits); WIN32KAPI CLIPOBJ* DDKAPI EngCreateClip( VOID); WIN32KAPI HBITMAP DDKAPI EngCreateDeviceBitmap( /*IN*/ DHSURF dhsurf, /*IN*/ SIZEL sizl, /*IN*/ ULONG iFormatCompat); WIN32KAPI HSURF DDKAPI EngCreateDeviceSurface( DHSURF dhsurf, SIZEL sizl, ULONG iFormatCompat); #if 0 WIN32KAPI HDRVOBJ DDKAPI EngCreateDriverObj( PVOID pvObj, FREEOBJPROC pFreeObjProc, HDEV hdev); #endif WIN32KAPI BOOL DDKAPI EngCreateEvent( /*OUT*/ 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 DDKAPI EngCreatePalette( /*IN*/ ULONG iMode, /*IN*/ ULONG cColors, /*IN*/ ULONG *pulColors, /*IN*/ FLONG flRed, /*IN*/ FLONG flGreen, /*IN*/ FLONG flBlue); WIN32KAPI PATHOBJ* DDKAPI EngCreatePath( VOID); WIN32KAPI HSEMAPHORE DDKAPI 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* DDKAPI EngCreateWnd( SURFOBJ *pso, HWND hwnd, WNDOBJCHANGEPROC pfn, FLONG fl, int iPixelFormat); WIN32KAPI VOID DDKAPI EngDebugBreak( VOID); WIN32KAPI VOID DDKAPI EngDebugPrint( /*IN*/ PCHAR StandardPrefix, /*IN*/ PCHAR DebugMessage, /*IN*/ va_list ap); WIN32KAPI VOID DDKAPI EngDeleteClip( /*IN*/ CLIPOBJ *pco); WIN32KAPI BOOL DDKAPI EngDeleteDriverObj( /*IN*/ HDRVOBJ hdo, /*IN*/ BOOL bCallBack, /*IN*/ BOOL bLocked); WIN32KAPI BOOL DDKAPI EngDeleteEvent( /*IN*/ PEVENT pEvent); WIN32KAPI BOOL DDKAPI EngDeleteFile( /*IN*/ LPWSTR pwszFileName); WIN32KAPI BOOL DDKAPI EngDeletePalette( /*IN*/ HPALETTE hpal); WIN32KAPI VOID DDKAPI EngDeletePath( /*IN*/ PATHOBJ *ppo); WIN32KAPI VOID DDKAPI EngDeleteSafeSemaphore( /*IN OUT*/ ENGSAFESEMAPHORE *pssem); WIN32KAPI VOID DDKAPI EngDeleteSemaphore( /*IN OUT*/ HSEMAPHORE hsem); WIN32KAPI BOOL DDKAPI EngDeleteSurface( /*IN*/ HSURF hsurf); WIN32KAPI VOID DDKAPI EngDeleteWnd( /*IN*/ WNDOBJ *pwo); WIN32KAPI DWORD DDKAPI EngDeviceIoControl( /*IN*/ HANDLE hDevice, /*IN*/ DWORD dwIoControlCode, /*IN*/ LPVOID lpInBuffer, /*IN*/ DWORD nInBufferSize, /*IN OUT*/ LPVOID lpOutBuffer, /*IN*/ DWORD nOutBufferSize, /*OUT*/ LPDWORD lpBytesReturned); WIN32KAPI ULONG DDKAPI EngDitherColor( /*IN*/ HDEV hdev, /*IN*/ ULONG iMode, /*IN*/ ULONG rgb, /*OUT*/ ULONG *pul); WIN32KAPI BOOL DDKAPI EngEnumForms( /*IN*/ HANDLE hPrinter, /*IN*/ DWORD Level, /*OUT*/ LPBYTE pForm, /*IN*/ DWORD cbBuf, /*OUT*/ LPDWORD pcbNeeded, /*OUT*/ LPDWORD pcReturned); WIN32KAPI BOOL DDKAPI EngEraseSurface( /*IN*/ SURFOBJ *pso, /*IN*/ RECTL *prcl, /*IN*/ ULONG iColor); WIN32KAPI BOOL DDKAPI EngFillPath( /*IN*/ SURFOBJ *pso, /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ MIX mix, /*IN*/ FLONG flOptions); WIN32KAPI PVOID DDKAPI EngFindImageProcAddress( /*IN*/ HANDLE hModule, /*IN*/ LPSTR lpProcName); WIN32KAPI PVOID DDKAPI EngFindResource( /*IN*/ HANDLE h, /*IN*/ int iName, /*IN*/ int iType, /*OUT*/ PULONG pulSize); WIN32KAPI PVOID DDKAPI EngFntCacheAlloc( /*IN*/ ULONG FastCheckSum, /*IN*/ ULONG ulSize); /* EngFntCacheFault.iFaultMode constants */ #define ENG_FNT_CACHE_READ_FAULT 0x00000001 #define ENG_FNT_CACHE_WRITE_FAULT 0x00000002 WIN32KAPI VOID DDKAPI EngFntCacheFault( /*IN*/ ULONG ulFastCheckSum, /*IN*/ ULONG iFaultMode); WIN32KAPI PVOID DDKAPI EngFntCacheLookUp( /*IN*/ ULONG FastCheckSum, /*OUT*/ ULONG *pulSize); WIN32KAPI VOID DDKAPI EngFreeMem( /*IN*/ PVOID Mem); WIN32KAPI VOID DDKAPI EngFreeModule( /*IN*/ HANDLE h); WIN32KAPI VOID DDKAPI EngFreePrivateUserMem( /*IN*/ PDD_SURFACE_LOCAL psl, /*IN*/ PVOID pv); WIN32KAPI VOID DDKAPI EngFreeUserMem( /*IN*/ PVOID pv); WIN32KAPI VOID DDKAPI EngGetCurrentCodePage( /*OUT*/ PUSHORT OemCodePage, /*OUT*/ PUSHORT AnsiCodePage); WIN32KAPI HANDLE DDKAPI EngGetCurrentProcessId( VOID); WIN32KAPI HANDLE DDKAPI EngGetCurrentThreadId( VOID); WIN32KAPI LPWSTR DDKAPI EngGetDriverName( /*IN*/ HDEV hdev); WIN32KAPI BOOL DDKAPI EngGetFileChangeTime( /*IN*/ HANDLE h, /*OUT*/ LARGE_INTEGER *pChangeTime); WIN32KAPI BOOL DDKAPI EngGetFilePath( /*IN*/ HANDLE h, /*OUT*/ WCHAR (*pDest)[MAX_PATH+1]); WIN32KAPI BOOL DDKAPI EngGetForm( /*IN*/ HANDLE hPrinter, /*IN*/ LPWSTR pFormName, /*IN*/ DWORD Level, /*OUT*/ LPBYTE pForm, /*IN*/ DWORD cbBuf, /*OUT*/ LPDWORD pcbNeeded); WIN32KAPI ULONG DDKAPI EngGetLastError( VOID); WIN32KAPI BOOL DDKAPI EngGetPrinter( /*IN*/ HANDLE hPrinter, /*IN*/ DWORD dwLevel, /*OUT*/ LPBYTE pPrinter, /*IN*/ DWORD cbBuf, /*OUT*/ LPDWORD pcbNeeded); WIN32KAPI DWORD DDKAPI EngGetPrinterData( /*IN*/ HANDLE hPrinter, /*IN*/ LPWSTR pValueName, /*OUT*/ LPDWORD pType, /*OUT*/ LPBYTE pData, /*IN*/ DWORD nSize, /*OUT*/ LPDWORD pcbNeeded); WIN32KAPI LPWSTR DDKAPI EngGetPrinterDataFileName( /*IN*/ HDEV hdev); WIN32KAPI BOOL DDKAPI EngGetPrinterDriver( /*IN*/ HANDLE hPrinter, /*IN*/ LPWSTR pEnvironment, /*IN*/ DWORD dwLevel, /*OUT*/ BYTE *lpbDrvInfo, /*IN*/ DWORD cbBuf, /*OUT*/ DWORD *pcbNeeded); WIN32KAPI HANDLE DDKAPI EngGetProcessHandle( VOID); WIN32KAPI BOOL DDKAPI EngGetType1FontList( /*IN*/ HDEV hdev, /*OUT*/ TYPE1_FONT *pType1Buffer, /*IN*/ ULONG cjType1Buffer, /*OUT*/ PULONG pulLocalFonts, /*OUT*/ PULONG pulRemoteFonts, /*OUT*/ LARGE_INTEGER *pLastModified); WIN32KAPI BOOL DDKAPI EngGradientFill( /*IN*/ SURFOBJ *psoDest, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ TRIVERTEX *pVertex, /*IN*/ ULONG nVertex, /*IN*/ PVOID pMesh, /*IN*/ ULONG nMesh, /*IN*/ RECTL *prclExtents, /*IN*/ POINTL *pptlDitherOrg, /*IN*/ ULONG ulMode); /* EngHangNotification return values */ #define EHN_RESTORED 0x00000000 #define EHN_ERROR 0x00000001 WIN32KAPI ULONG DDKAPI EngHangNotification( /*IN*/ HDEV hDev, /*IN*/ PVOID Reserved); WIN32KAPI BOOL DDKAPI EngInitializeSafeSemaphore( /*OUT*/ ENGSAFESEMAPHORE *pssem); WIN32KAPI BOOL DDKAPI EngIsSemaphoreOwned( /*IN*/ HSEMAPHORE hsem); WIN32KAPI BOOL DDKAPI EngIsSemaphoreOwnedByCurrentThread( /*IN*/ HSEMAPHORE hsem); WIN32KAPI BOOL DDKAPI EngLineTo( SURFOBJ *pso, CLIPOBJ *pco, BRUSHOBJ *pbo, LONG x1, LONG y1, LONG x2, LONG y2, RECTL *prclBounds, MIX mix); WIN32KAPI HANDLE DDKAPI EngLoadImage( /*IN*/ LPWSTR pwszDriver); WIN32KAPI HANDLE DDKAPI EngLoadModule( /*IN*/ LPWSTR pwsz); WIN32KAPI HANDLE DDKAPI EngLoadModuleForWrite( /*IN*/ LPWSTR pwsz, /*IN*/ ULONG cjSizeOfModule); WIN32KAPI PDD_SURFACE_LOCAL DDKAPI EngLockDirectDrawSurface( /*IN*/ HANDLE hSurface); WIN32KAPI DRIVEROBJ* DDKAPI EngLockDriverObj( /*IN*/ HDRVOBJ hdo); WIN32KAPI SURFOBJ* DDKAPI EngLockSurface( /*IN*/ HSURF hsurf); WIN32KAPI BOOL DDKAPI EngLpkInstalled( VOID); WIN32KAPI PEVENT DDKAPI EngMapEvent( /*IN*/ HDEV hDev, /*IN*/ HANDLE hUserObject, /*IN*/ PVOID Reserved1, /*IN*/ PVOID Reserved2, /*IN*/ PVOID Reserved3); WIN32KAPI PVOID DDKAPI EngMapFile( /*IN*/ LPWSTR pwsz, /*IN*/ ULONG cjSize, /*OUT*/ ULONG_PTR *piFile); WIN32KAPI BOOL DDKAPI EngMapFontFile( ULONG_PTR iFile, PULONG *ppjBuf, ULONG *pcjBuf); WIN32KAPI BOOL DDKAPI EngMapFontFileFD( /*IN*/ ULONG_PTR iFile, /*OUT*/ PULONG *ppjBuf, /*OUT*/ ULONG *pcjBuf); WIN32KAPI PVOID DDKAPI EngMapModule( /*IN*/ HANDLE h, /*OUT*/ PULONG pSize); WIN32KAPI BOOL DDKAPI EngMarkBandingSurface( /*IN*/ HSURF hsurf); /* EngModifySurface.flSurface constants */ #define MS_NOTSYSTEMMEMORY 0x00000001 #define MS_SHAREDACCESS 0x00000002 WIN32KAPI BOOL DDKAPI EngModifySurface( /*IN*/ HSURF hsurf, /*IN*/ HDEV hdev, /*IN*/ FLONG flHooks, /*IN*/ FLONG flSurface, /*IN*/ DHSURF dhsurf, /*IN*/ VOID *pvScan0, /*IN*/ LONG lDelta, /*IN*/ VOID *pvReserved); WIN32KAPI VOID DDKAPI EngMovePointer( /*IN*/ SURFOBJ *pso, /*IN*/ LONG x, /*IN*/ LONG y, /*IN*/ RECTL *prcl); WIN32KAPI int DDKAPI EngMulDiv( /*IN*/ int a, /*IN*/ int b, /*IN*/ int c); WIN32KAPI VOID DDKAPI EngMultiByteToUnicodeN( /*OUT*/ LPWSTR UnicodeString, /*IN*/ ULONG MaxBytesInUnicodeString, /*OUT*/ PULONG BytesInUnicodeString, /*IN*/ PCHAR MultiByteString, /*IN*/ ULONG BytesInMultiByteString); WIN32KAPI INT DDKAPI EngMultiByteToWideChar( /*IN*/ UINT CodePage, /*OUT*/ LPWSTR WideCharString, /*IN*/ INT BytesInWideCharString, /*IN*/ LPSTR MultiByteString, /*IN*/ INT BytesInMultiByteString); WIN32KAPI BOOL DDKAPI EngPaint( /*IN*/ SURFOBJ *pso, /*IN*/ CLIPOBJ *pco, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ MIX mix); WIN32KAPI BOOL DDKAPI EngPlgBlt( /*IN*/ SURFOBJ *psoTrg, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMsk, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ COLORADJUSTMENT *pca, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ POINTFIX *pptfx, /*IN*/ RECTL *prcl, /*IN*/ POINTL *pptl, /*IN*/ ULONG iMode); WIN32KAPI VOID DDKAPI EngProbeForRead( /*IN*/ PVOID Address, /*IN*/ ULONG Length, /*IN*/ ULONG Alignment); WIN32KAPI VOID DDKAPI EngProbeForReadAndWrite( /*IN*/ PVOID Address, /*IN*/ ULONG Length, /*IN*/ ULONG Alignment); typedef enum _ENG_DEVICE_ATTRIBUTE { QDA_RESERVED = 0, QDA_ACCELERATION_LEVEL } ENG_DEVICE_ATTRIBUTE; WIN32KAPI BOOL DDKAPI EngQueryDeviceAttribute( /*IN*/ HDEV hdev, /*IN*/ ENG_DEVICE_ATTRIBUTE devAttr, /*IN*/ VOID *pvIn, /*IN*/ ULONG ulInSize, /*OUT*/ VOID *pvOut, /*OUT*/ ULONG ulOutSize); WIN32KAPI LARGE_INTEGER DDKAPI EngQueryFileTimeStamp( /*IN*/ LPWSTR pwsz); WIN32KAPI VOID DDKAPI EngQueryLocalTime( /*OUT*/ PENG_TIME_FIELDS ptf); WIN32KAPI ULONG DDKAPI EngQueryPalette( /*IN*/ HPALETTE hPal, /*OUT*/ ULONG *piMode, /*IN*/ ULONG cColors, /*OUT*/ ULONG *pulColors); WIN32KAPI VOID DDKAPI EngQueryPerformanceCounter( /*OUT*/ LONGLONG *pPerformanceCount); WIN32KAPI VOID DDKAPI EngQueryPerformanceFrequency( /*OUT*/ 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 BOOL DDKAPI EngQuerySystemAttribute( /*IN*/ ENG_SYSTEM_ATTRIBUTE CapNum, /*OUT*/ PDWORD pCapability); WIN32KAPI LONG DDKAPI EngReadStateEvent( /*IN*/ PEVENT pEvent); WIN32KAPI VOID DDKAPI EngReleaseSemaphore( /*IN*/ HSEMAPHORE hsem); WIN32KAPI BOOL DDKAPI EngRestoreFloatingPointState( /*IN*/ VOID *pBuffer); WIN32KAPI ULONG DDKAPI EngSaveFloatingPointState( /*OUT*/ VOID *pBuffer, /*IN*/ ULONG cjBufferSize); WIN32KAPI HANDLE DDKAPI EngSecureMem( /*IN*/ PVOID Address, /*IN*/ ULONG Length); WIN32KAPI LONG DDKAPI EngSetEvent( /*IN*/ PEVENT pEvent); WIN32KAPI VOID DDKAPI EngSetLastError( /*IN*/ ULONG iError); WIN32KAPI ULONG DDKAPI EngSetPointerShape( /*IN*/ SURFOBJ *pso, /*IN*/ SURFOBJ *psoMask, /*IN*/ SURFOBJ *psoColor, /*IN*/ XLATEOBJ *pxlo, /*IN*/ LONG xHot, /*IN*/ LONG yHot, /*IN*/ LONG x, /*IN*/ LONG y, /*IN*/ RECTL *prcl, /*IN*/ FLONG fl); WIN32KAPI BOOL DDKAPI EngSetPointerTag( /*IN*/ HDEV hdev, /*IN*/ SURFOBJ *psoMask, /*IN*/ SURFOBJ *psoColor, /*IN*/ XLATEOBJ *pxlo, /*IN*/ FLONG fl); WIN32KAPI DWORD DDKAPI EngSetPrinterData( /*IN*/ HANDLE hPrinter, /*IN*/ LPWSTR pType, /*IN*/ DWORD dwType, /*IN*/ LPBYTE lpbPrinterData, /*IN*/ DWORD cjPrinterData); typedef int DDKCDECLAPI (*SORTCOMP)(const void *pv1, const void *pv2); WIN32KAPI VOID DDKAPI EngSort( /*IN OUT*/ PBYTE pjBuf, /*IN*/ ULONG c, /*IN*/ ULONG cjElem, /*IN*/ SORTCOMP pfnComp); WIN32KAPI BOOL DDKAPI EngStretchBlt( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMask, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ COLORADJUSTMENT *pca, /*IN*/ POINTL *pptlHTOrg, /*IN*/ RECTL *prclDest, /*IN*/ RECTL *prclSrc, /*IN*/ POINTL *pptlMask, /*IN*/ ULONG iMode); WIN32KAPI BOOL DDKAPI EngStretchBltROP( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMask, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ COLORADJUSTMENT *pca, /*IN*/ POINTL *pptlHTOrg, /*IN*/ RECTL *prclDest, /*IN*/ RECTL *prclSrc, /*IN*/ POINTL *pptlMask, /*IN*/ ULONG iMode, /*IN*/ BRUSHOBJ *pbo, /*IN*/ DWORD rop4); WIN32KAPI BOOL DDKAPI EngStrokeAndFillPath( /*IN*/ SURFOBJ *pso, /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ XFORMOBJ *pxo, /*IN*/ BRUSHOBJ *pboStroke, /*IN*/ LINEATTRS *plineattrs, /*IN*/ BRUSHOBJ *pboFill, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ MIX mixFill, /*IN*/ FLONG flOptions); WIN32KAPI BOOL DDKAPI EngStrokePath( /*IN*/ SURFOBJ *pso, /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ XFORMOBJ *pxo, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ LINEATTRS *plineattrs, /*IN*/ MIX mix); WIN32KAPI BOOL DDKAPI EngTextOut( /*IN*/ SURFOBJ *pso, /*IN*/ STROBJ *pstro, /*IN*/ FONTOBJ *pfo, /*IN*/ CLIPOBJ *pco, /*IN*/ RECTL *prclExtra, /*IN*/ RECTL *prclOpaque, /*IN*/ BRUSHOBJ *pboFore, /*IN*/ BRUSHOBJ *pboOpaque, /*IN*/ POINTL *pptlOrg, /*IN*/ MIX mix); WIN32KAPI BOOL DDKAPI EngTransparentBlt( /*IN*/ SURFOBJ *psoDst, /*IN*/ SURFOBJ *psoSrc, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclDst, /*IN*/ RECTL *prclSrc, /*IN*/ ULONG iTransColor, /*IN*/ ULONG ulReserved); WIN32KAPI VOID DDKAPI EngUnicodeToMultiByteN( /*OUT*/ PCHAR MultiByteString, /*IN*/ ULONG MaxBytesInMultiByteString, /*OUT*/ PULONG BytesInMultiByteString, /*IN*/ PWSTR UnicodeString, /*IN*/ ULONG BytesInUnicodeString); WIN32KAPI VOID DDKAPI EngUnloadImage( /*IN*/ HANDLE hModule); WIN32KAPI BOOL DDKAPI EngUnlockDirectDrawSurface( /*IN*/ PDD_SURFACE_LOCAL pSurface); WIN32KAPI BOOL DDKAPI EngUnlockDriverObj( /*IN*/ HDRVOBJ hdo); WIN32KAPI VOID DDKAPI EngUnlockSurface( /*IN*/ SURFOBJ *pso); WIN32KAPI BOOL DDKAPI EngUnmapEvent( /*IN*/ PEVENT pEvent); WIN32KAPI BOOL DDKAPI EngUnmapFile( /*IN*/ ULONG_PTR iFile); WIN32KAPI VOID DDKAPI EngUnmapFontFile( ULONG_PTR iFile); WIN32KAPI VOID DDKAPI EngUnmapFontFileFD( /*IN*/ ULONG_PTR iFile); WIN32KAPI VOID DDKAPI EngUnsecureMem( /*IN*/ HANDLE hSecure); WIN32KAPI BOOL DDKAPI EngWaitForSingleObject( /*IN*/ PEVENT pEvent, /*IN*/ PLARGE_INTEGER pTimeOut); WIN32KAPI INT DDKAPI EngWideCharToMultiByte( /*IN*/ UINT CodePage, /*IN*/ LPWSTR WideCharString, /*IN*/ INT BytesInWideCharString, /*OUT*/ LPSTR MultiByteString, /*IN*/ INT BytesInMultiByteString); WIN32KAPI BOOL DDKAPI EngWritePrinter( /*IN*/ HANDLE hPrinter, /*IN*/ LPVOID pBuf, /*IN*/ DWORD cbBuf, /*OUT*/ LPDWORD pcWritten); WIN32KAPI VOID DDKAPI FLOATOBJ_Add( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ PFLOATOBJ pf1); WIN32KAPI VOID DDKAPI FLOATOBJ_AddFloat( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ FLOATL f); WIN32KAPI VOID DDKAPI FLOATOBJ_AddLong( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ LONG l); WIN32KAPI VOID DDKAPI FLOATOBJ_Div( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ PFLOATOBJ pf1); WIN32KAPI VOID DDKAPI FLOATOBJ_DivFloat( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ FLOATL f); WIN32KAPI VOID DDKAPI FLOATOBJ_DivLong( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ LONG l); WIN32KAPI BOOL DDKAPI FLOATOBJ_Equal( /*IN*/ PFLOATOBJ pf, /*IN*/ PFLOATOBJ pf1); WIN32KAPI BOOL DDKAPI FLOATOBJ_EqualLong( /*IN*/ PFLOATOBJ pf, /*IN*/ LONG l); WIN32KAPI LONG DDKAPI FLOATOBJ_GetFloat( /*IN*/ PFLOATOBJ pf); WIN32KAPI LONG DDKAPI FLOATOBJ_GetLong( /*IN*/ PFLOATOBJ pf); WIN32KAPI BOOL DDKAPI FLOATOBJ_GreaterThan( /*IN*/ PFLOATOBJ pf, /*IN*/ PFLOATOBJ pf1); WIN32KAPI BOOL DDKAPI FLOATOBJ_GreaterThanLong( /*IN*/ PFLOATOBJ pf, /*IN*/ LONG l); WIN32KAPI BOOL DDKAPI FLOATOBJ_LessThan( /*IN*/ PFLOATOBJ pf, /*IN*/ PFLOATOBJ pf1); WIN32KAPI BOOL DDKAPI FLOATOBJ_LessThanLong( /*IN*/ PFLOATOBJ pf, /*IN*/ LONG l); WIN32KAPI VOID DDKAPI FLOATOBJ_Mul( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ PFLOATOBJ pf1); WIN32KAPI VOID DDKAPI FLOATOBJ_MulFloat( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ FLOATL f); WIN32KAPI VOID DDKAPI FLOATOBJ_MulLong( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ LONG l); WIN32KAPI VOID DDKAPI FLOATOBJ_Neg( /*IN OUT*/ PFLOATOBJ pf); WIN32KAPI VOID DDKAPI FLOATOBJ_SetFloat( /*OUT*/ PFLOATOBJ pf, /*IN*/ FLOATL f); WIN32KAPI VOID DDKAPI FLOATOBJ_SetLong( /*OUT*/ PFLOATOBJ pf, /*IN*/ LONG l); WIN32KAPI VOID DDKAPI FLOATOBJ_Sub( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ PFLOATOBJ pf1); WIN32KAPI VOID DDKAPI FLOATOBJ_SubFloat( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ FLOATL f); WIN32KAPI VOID DDKAPI FLOATOBJ_SubLong( /*IN OUT*/ PFLOATOBJ pf, /*IN*/ LONG l); WIN32KAPI ULONG DDKAPI FONTOBJ_cGetAllGlyphHandles( /*IN*/ FONTOBJ *pfo, /*OUT*/ HGLYPH *phg); WIN32KAPI ULONG DDKAPI FONTOBJ_cGetGlyphs( /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode, /*IN*/ ULONG cGlyph, /*IN*/ HGLYPH *phg, /*OUT*/ PVOID *ppvGlyph); WIN32KAPI FD_GLYPHSET* DDKAPI FONTOBJ_pfdg( /*IN*/ FONTOBJ *pfo); WIN32KAPI IFIMETRICS* DDKAPI FONTOBJ_pifi( /*IN*/ FONTOBJ *pfo); WIN32KAPI PBYTE DDKAPI FONTOBJ_pjOpenTypeTablePointer( /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG ulTag, /*OUT*/ ULONG *pcjTable); WIN32KAPI PFD_GLYPHATTR DDKAPI FONTOBJ_pQueryGlyphAttrs( /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode); WIN32KAPI PVOID DDKAPI FONTOBJ_pvTrueTypeFontFile( /*IN*/ FONTOBJ *pfo, /*OUT*/ ULONG *pcjFile); WIN32KAPI LPWSTR DDKAPI FONTOBJ_pwszFontFilePaths( /*IN*/ FONTOBJ *pfo, /*OUT*/ ULONG *pcwc); WIN32KAPI XFORMOBJ* DDKAPI FONTOBJ_pxoGetXform( /*IN*/ FONTOBJ *pfo); WIN32KAPI VOID DDKAPI FONTOBJ_vGetInfo( /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG cjSize, /*OUT*/ FONTINFO *pfi); WIN32KAPI FLATPTR DDKAPI HeapVidMemAllocAligned( /*IN*/ LPVIDMEM lpVidMem, /*IN*/ DWORD dwWidth, /*IN*/ DWORD dwHeight, /*IN*/ LPSURFACEALIGNMENT lpAlignment, /*OUT*/ LPLONG lpNewPitch); WIN32KAPI LONG DDKAPI HT_ComputeRGBGammaTable( /*IN*/ USHORT GammaTableEntries, /*IN*/ USHORT GammaTableType, /*IN*/ USHORT RedGamma, /*IN*/ USHORT GreenGamma, /*IN*/ USHORT BlueGamma, /*OUT*/ LPBYTE pGammaTable); WIN32KAPI LONG DDKAPI HT_Get8BPPFormatPalette( /*OUT*/ LPPALETTEENTRY pPaletteEntry, /*IN*/ USHORT RedGamma, /*IN*/ USHORT GreenGamma, /*IN*/ USHORT BlueGamma); WIN32KAPI LONG DDKAPI HT_Get8BPPMaskPalette( /*IN OUT*/ LPPALETTEENTRY pPaletteEntry, /*IN*/ BOOL Use8BPPMaskPal, /*IN*/ BYTE CMYMask, /*IN*/ USHORT RedGamma, /*IN*/ USHORT GreenGamma, /*IN*/ USHORT BlueGamma); WIN32KAPI LONG DDKAPI HTUI_DeviceColorAdjustment( /*IN*/ LPSTR pDeviceName, /*OUT*/ PDEVHTADJDATA pDevHTAdjData); WIN32KAPI ULONG DDKAPI PALOBJ_cGetColors( /*IN*/ PALOBJ *ppalo, /*IN*/ ULONG iStart, /*IN*/ ULONG cColors, /*OUT*/ ULONG *pulColors); WIN32KAPI BOOL DDKAPI PATHOBJ_bCloseFigure( /*IN*/ PATHOBJ *ppo); WIN32KAPI BOOL DDKAPI PATHOBJ_bEnum( /*IN*/ PATHOBJ *ppo, /*OUT*/ PATHDATA *ppd); WIN32KAPI BOOL DDKAPI PATHOBJ_bEnumClipLines( /*IN*/ PATHOBJ *ppo, /*IN*/ ULONG cb, /*OUT*/ CLIPLINE *pcl); WIN32KAPI BOOL DDKAPI PATHOBJ_bMoveTo( /*IN*/ PATHOBJ *ppo, /*IN*/ POINTFIX ptfx); WIN32KAPI BOOL DDKAPI PATHOBJ_bPolyBezierTo( /*IN*/ PATHOBJ *ppo, /*IN*/ POINTFIX *pptfx, /*IN*/ ULONG cptfx); WIN32KAPI BOOL DDKAPI PATHOBJ_bPolyLineTo( /*IN*/ PATHOBJ *ppo, /*IN*/ POINTFIX *pptfx, /*IN*/ ULONG cptfx); WIN32KAPI VOID DDKAPI PATHOBJ_vEnumStart( /*IN*/ PATHOBJ *ppo); WIN32KAPI VOID DDKAPI PATHOBJ_vEnumStartClipLines( /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ SURFOBJ *pso, /*IN*/ LINEATTRS *pla); WIN32KAPI VOID DDKAPI PATHOBJ_vGetBounds( /*IN*/ PATHOBJ *ppo, /*OUT*/ PRECTFX prectfx); WIN32KAPI BOOL DDKAPI STROBJ_bEnum( /*IN*/ STROBJ *pstro, /*OUT*/ ULONG *pc, /*OUT*/ PGLYPHPOS *ppgpos); WIN32KAPI BOOL DDKAPI STROBJ_bEnumPositionsOnly( /*IN*/ STROBJ *pstro, /*OUT*/ ULONG *pc, /*OUT*/ PGLYPHPOS *ppgpos); WIN32KAPI BOOL DDKAPI STROBJ_bGetAdvanceWidths( /*IN*/ STROBJ *pso, /*IN*/ ULONG iFirst, /*IN*/ ULONG c, /*OUT*/ POINTQF *pptqD); WIN32KAPI DWORD DDKAPI STROBJ_dwGetCodePage( /*IN*/ STROBJ *pstro); WIN32KAPI FIX DDKAPI STROBJ_fxBreakExtra( /*IN*/ STROBJ *pstro); WIN32KAPI FIX DDKAPI STROBJ_fxCharacterExtra( /*IN*/ STROBJ *pstro); WIN32KAPI VOID DDKAPI STROBJ_vEnumStart( /*IN*/ STROBJ *pstro); WIN32KAPI VOID DDKAPI VidMemFree( /*IN*/ LPVMEMHEAP pvmh, /*IN*/ FLATPTR ptr); WIN32KAPI BOOL DDKAPI WNDOBJ_bEnum( /*IN*/ WNDOBJ *pwo, /*IN*/ ULONG cj, /*OUT*/ ULONG *pul); WIN32KAPI ULONG DDKAPI WNDOBJ_cEnumStart( /*IN*/ WNDOBJ *pwo, /*IN*/ ULONG iType, /*IN*/ ULONG iDirection, /*IN*/ ULONG cLimit); WIN32KAPI VOID DDKAPI WNDOBJ_vSetConsumer( /*IN*/ WNDOBJ *pwo, /*IN*/ PVOID pvConsumer); /* XFORMOBJ_bApplyXform.iMode constants */ #define XF_LTOL 0L #define XF_INV_LTOL 1L #define XF_LTOFX 2L #define XF_INV_FXTOL 3L WIN32KAPI BOOL DDKAPI XFORMOBJ_bApplyXform( /*IN*/ XFORMOBJ *pxo, /*IN*/ ULONG iMode, /*IN*/ ULONG cPoints, /*IN*/ PVOID pvIn, /*OUT*/ PVOID pvOut); WIN32KAPI ULONG DDKAPI XFORMOBJ_iGetFloatObjXform( /*IN*/ XFORMOBJ *pxo, /*OUT*/ FLOATOBJ_XFORM *pxfo); WIN32KAPI ULONG DDKAPI XFORMOBJ_iGetXform( /*IN*/ XFORMOBJ *pxo, /*OUT*/ 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 DDKAPI XLATEOBJ_cGetPalette( /*IN*/ XLATEOBJ *pxlo, /*IN*/ ULONG iPal, /*IN*/ ULONG cPal, /*OUT*/ ULONG *pPal); WIN32KAPI HANDLE DDKAPI XLATEOBJ_hGetColorTransform( /*IN*/ XLATEOBJ *pxlo); WIN32KAPI ULONG DDKAPI XLATEOBJ_iXlate( /*IN*/ XLATEOBJ *pxlo, /*IN*/ ULONG iColor); WIN32KAPI ULONG* DDKAPI XLATEOBJ_piVector( /*IN*/ XLATEOBJ *pxlo); /* Graphics Driver Functions */ BOOL DDKAPI DrvAlphaBlend( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclDest, /*IN*/ RECTL *prclSrc, /*IN*/ BLENDOBJ *pBlendObj); BOOL DDKAPI DrvAssertMode( /*IN*/ DHPDEV dhpdev, /*IN*/ BOOL bEnable); BOOL DDKAPI DrvBitBlt( /*IN*/ SURFOBJ *psoTrg, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMask, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclTrg, /*IN*/ POINTL *pptlSrc, /*IN*/ POINTL *pptlMask, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrush, /*IN*/ ROP4 rop4); VOID DDKAPI DrvCompletePDEV( /*IN*/ DHPDEV dhpdev, /*IN*/ HDEV hdev); BOOL DDKAPI DrvCopyBits( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclDest, /*IN*/ POINTL *pptlSrc); HBITMAP DDKAPI DrvCreateDeviceBitmap( /*IN*/ DHPDEV dhpdev, /*IN*/ SIZEL sizl, /*IN*/ ULONG iFormat); VOID DDKAPI DrvDeleteDeviceBitmap( /*IN*/ DHSURF dhsurf); HBITMAP DDKAPI DrvDeriveSurface( DD_DIRECTDRAW_GLOBAL *pDirectDraw, DD_SURFACE_LOCAL *pSurface); LONG DDKAPI DrvDescribePixelFormat( /*IN*/ DHPDEV dhpdev, /*IN*/ LONG iPixelFormat, /*IN*/ ULONG cjpfd, /*OUT*/ PIXELFORMATDESCRIPTOR *ppfd); VOID DDKAPI DrvDestroyFont( /*IN*/ FONTOBJ *pfo); VOID DDKAPI DrvDisableDriver( VOID); VOID DDKAPI DrvDisablePDEV( /*IN*/ DHPDEV dhpdev); VOID DDKAPI DrvDisableSurface( /*IN*/ DHPDEV dhpdev); #define DM_DEFAULT 0x00000001 #define DM_MONOCHROME 0x00000002 ULONG DDKAPI DrvDitherColor( /*IN*/ DHPDEV dhpdev, /*IN*/ ULONG iMode, /*IN*/ ULONG rgb, /*OUT*/ ULONG *pul); ULONG DDKAPI DrvDrawEscape( /*IN*/ SURFOBJ *pso, /*IN*/ ULONG iEsc, /*IN*/ CLIPOBJ *pco, /*IN*/ RECTL *prcl, /*IN*/ ULONG cjIn, /*IN*/ PVOID pvIn); BOOL DDKAPI DrvEnableDriver( /*IN*/ ULONG iEngineVersion, /*IN*/ ULONG cj, /*OUT*/ DRVENABLEDATA *pded); DHPDEV DDKAPI DrvEnablePDEV( /*IN*/ DEVMODEW *pdm, /*IN*/ LPWSTR pwszLogAddress, /*IN*/ ULONG cPat, /*OUT*/ HSURF *phsurfPatterns, /*IN*/ ULONG cjCaps, /*OUT*/ ULONG *pdevcaps, /*IN*/ ULONG cjDevInfo, /*OUT*/ DEVINFO *pdi, /*IN*/ HDEV hdev, /*IN*/ LPWSTR pwszDeviceName, /*IN*/ HANDLE hDriver); HSURF DDKAPI DrvEnableSurface( /*IN*/ DHPDEV dhpdev); /* DrvEndDoc.fl constants */ #define ED_ABORTDOC 0x00000001 BOOL DDKAPI DrvEndDoc( /*IN*/ SURFOBJ *pso, /*IN*/ FLONG fl); ULONG DDKAPI DrvEscape( /*IN*/ SURFOBJ *pso, /*IN*/ ULONG iEsc, /*IN*/ ULONG cjIn, /*IN*/ PVOID pvIn, /*IN*/ ULONG cjOut, /*OUT*/ PVOID pvOut); BOOL DDKAPI DrvFillPath( /*IN*/ SURFOBJ *pso, /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ MIX mix, /*IN*/ FLONG flOptions); ULONG DDKAPI DrvFontManagement( /*IN*/ SURFOBJ *pso, /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode, /*IN*/ ULONG cjIn, /*IN*/ PVOID pvIn, /*IN*/ ULONG cjOut, /*OUT*/ PVOID pvOut); VOID DDKAPI DrvFree( /*IN*/ PVOID pv, /*IN*/ ULONG_PTR id); /* DrvGetGlyphMode return values */ #define FO_HGLYPHS 0L #define FO_GLYPHBITS 1L #define FO_PATHOBJ 2L ULONG DDKAPI DrvGetGlyphMode( /*IN*/ DHPDEV dhpdev, /*IN*/ FONTOBJ *pfo); ULONG DDKAPI DrvGetModes( /*IN*/ HANDLE hDriver, /*IN*/ ULONG cjSize, /*OUT*/ DEVMODEW *pdm); PVOID DDKAPI DrvGetTrueTypeFile( /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG *pcj); BOOL DDKAPI DrvGradientFill( /*IN*/ SURFOBJ *psoDest, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ TRIVERTEX *pVertex, /*IN*/ ULONG nVertex, /*IN*/ PVOID pMesh, /*IN*/ ULONG nMesh, /*IN*/ RECTL *prclExtents, /*IN*/ POINTL *pptlDitherOrg, /*IN*/ ULONG ulMode); BOOL DDKAPI DrvIcmCheckBitmapBits( /*IN*/ DHPDEV dhpdev, /*IN*/ HANDLE hColorTransform, /*IN*/ SURFOBJ *pso, /*OUT*/ PBYTE paResults); HANDLE DDKAPI DrvIcmCreateColorTransform( /*IN*/ DHPDEV dhpdev, /*IN*/ LPLOGCOLORSPACEW pLogColorSpace, /*IN*/ PVOID pvSourceProfile, /*IN*/ ULONG cjSourceProfile, /*IN*/ PVOID pvDestProfile, /*IN*/ ULONG cjDestProfile, /*IN*/ PVOID pvTargetProfile, /*IN*/ ULONG cjTargetProfile, /*IN*/ DWORD dwReserved); BOOL DDKAPI DrvIcmDeleteColorTransform( /*IN*/ DHPDEV dhpdev, /*IN*/ HANDLE hcmXform); /* DrvIcmSetDeviceGammaRamp.iFormat constants */ #define IGRF_RGB_256BYTES 0x00000000 #define IGRF_RGB_256WORDS 0x00000001 BOOL DDKAPI DrvIcmSetDeviceGammaRamp( /*IN*/ DHPDEV dhpdev, /*IN*/ ULONG iFormat, /*IN*/ LPVOID lpRamp); BOOL DDKAPI DrvLineTo( SURFOBJ *pso, CLIPOBJ *pco, BRUSHOBJ *pbo, LONG x1, LONG y1, LONG x2, LONG y2, RECTL *prclBounds, MIX mix); ULONG_PTR DDKAPI DrvLoadFontFile( ULONG cFiles, ULONG_PTR *piFile, PVOID *ppvView, ULONG *pcjView, DESIGNVECTOR *pdv, ULONG ulLangID, ULONG ulFastCheckSum); VOID DDKAPI DrvMovePointer( /*IN*/ SURFOBJ *pso, /*IN*/ LONG x, /*IN*/ LONG y, /*IN*/ RECTL *prcl); BOOL DDKAPI DrvNextBand( /*IN*/ SURFOBJ *pso, /*IN*/ POINTL *pptl); VOID DDKAPI DrvNotify( /*IN*/ SURFOBJ *pso, /*IN*/ ULONG iType, /*IN*/ PVOID pvData); BOOL DDKAPI DrvOffset( /*IN*/ SURFOBJ *pso, /*IN*/ LONG x, /*IN*/ LONG y, /*IN*/ FLONG flReserved); BOOL DDKAPI DrvPaint( /*IN*/ SURFOBJ *pso, /*IN*/ CLIPOBJ *pco, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ MIX mix); BOOL DDKAPI DrvPlgBlt( /*IN*/ SURFOBJ *psoTrg, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMsk, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ COLORADJUSTMENT *pca, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ POINTFIX *pptfx, /*IN*/ RECTL *prcl, /*IN*/ POINTL *pptl, /*IN*/ ULONG iMode); /* DrvQueryAdvanceWidths.iMode constants */ #define QAW_GETWIDTHS 0 #define QAW_GETEASYWIDTHS 1 BOOL DDKAPI DrvQueryAdvanceWidths( /*IN*/ DHPDEV dhpdev, /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode, /*IN*/ HGLYPH *phg, /*OUT*/ PVOID pvWidths, /*IN*/ ULONG cGlyphs); /* DrvQueryDeviceSupport.iType constants */ #define QDS_CHECKJPEGFORMAT 0x00000000 #define QDS_CHECKPNGFORMAT 0x00000001 BOOL DDKAPI DrvQueryDeviceSupport( SURFOBJ *pso, XLATEOBJ *pxlo, XFORMOBJ *pxo, ULONG iType, ULONG cjIn, PVOID pvIn, ULONG cjOut, PVOID pvOut); /* DrvQueryDriverInfo.dwMode constants */ #define DRVQUERY_USERMODE 0x00000001 BOOL DDKAPI DrvQueryDriverInfo( DWORD dwMode, PVOID pBuffer, DWORD cbBuf, PDWORD pcbNeeded); PIFIMETRICS DDKAPI DrvQueryFont( /*IN*/ DHPDEV dhpdev, /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG iFace, /*IN*/ 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 DDKAPI DrvQueryFontCaps( /*IN*/ ULONG culCaps, /*OUT*/ ULONG *pulCaps); /* DrvQueryFontData.iMode constants */ #define QFD_GLYPHANDBITMAP 1L #define QFD_GLYPHANDOUTLINE 2L #define QFD_MAXEXTENTS 3L #define QFD_TT_GLYPHANDBITMAP 4L #define QFD_TT_GRAY1_BITMAP 5L #define QFD_TT_GRAY2_BITMAP 6L #define QFD_TT_GRAY4_BITMAP 8L #define QFD_TT_GRAY8_BITMAP 9L #define QFD_TT_MONO_BITMAP QFD_TT_GRAY1_BITMAP LONG DDKAPI DrvQueryFontData( /*IN*/ DHPDEV dhpdev, /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode, /*IN*/ HGLYPH hg, /*IN OUT*/ GLYPHDATA *pgd, /*IN OUT*/ PVOID pv, /*IN*/ ULONG cjSize); /* DrvQueryFontFile.ulMode constants */ #define QFF_DESCRIPTION 0x00000001 #define QFF_NUMFACES 0x00000002 LONG DDKAPI DrvQueryFontFile( /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG ulMode, /*IN*/ ULONG cjBuf, /*IN*/ ULONG *pulBuf); /* DrvQueryFontTree.iMode constants */ #define QFT_UNICODE 0L #define QFT_LIGATURES 1L #define QFT_KERNPAIRS 2L #define QFT_GLYPHSET 3L PVOID DDKAPI DrvQueryFontTree( /*IN*/ DHPDEV dhpdev, /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG iFace, /*IN*/ ULONG iMode, /*IN*/ ULONG_PTR *pid); PFD_GLYPHATTR DDKAPI DrvQueryGlyphAttrs( /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode); ULONG DDKAPI DrvQueryPerBandInfo( /*IN*/ SURFOBJ *pso, /*IN OUT*/ PERBANDINFO *pbi); /* DrvQueryTrueTypeOutline.bMetricsOnly constants */ #define TTO_METRICS_ONLY 0x00000001 #define TTO_QUBICS 0x00000002 #define TTO_UNHINTED 0x00000004 LONG DDKAPI DrvQueryTrueTypeOutline( /*IN*/ DHPDEV dhpdev, /*IN*/ FONTOBJ *pfo, /*IN*/ HGLYPH hglyph, /*IN*/ BOOL bMetricsOnly, /*IN*/ GLYPHDATA *pgldt, /*IN*/ ULONG cjBuf, /*OUT*/ TTPOLYGONHEADER *ppoly); LONG DDKAPI DrvQueryTrueTypeTable( /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG ulFont, /*IN*/ ULONG ulTag, /*IN*/ PTRDIFF dpStart, /*IN*/ ULONG cjBuf, /*OUT*/ BYTE *pjBuf, /*OUT*/ PBYTE *ppjTable, /*OUT*/ ULONG *pcjTable); /* DrvRealizeBrush.iHatch constants */ #define RB_DITHERCOLOR 0x80000000L #define HS_DDI_MAX 6 BOOL DDKAPI DrvRealizeBrush( /*IN*/ BRUSHOBJ *pbo, /*IN*/ SURFOBJ *psoTarget, /*IN*/ SURFOBJ *psoPattern, /*IN*/ SURFOBJ *psoMask, /*IN*/ XLATEOBJ *pxlo, /*IN*/ ULONG iHatch); /* DrvResetDevice return values */ #define DRD_SUCCESS 0 #define DRD_ERROR 1 ULONG DDKAPI DrvResetDevice( /*IN*/ DHPDEV dhpdev, /*IN*/ PVOID Reserved); BOOL DDKAPI DrvResetPDEV( DHPDEV dhpdevOld, DHPDEV dhpdevNew); /* DrvSaveScreenBits.iMode constants */ #define SS_SAVE 0x00000000 #define SS_RESTORE 0x00000001 #define SS_FREE 0x00000002 ULONG_PTR DDKAPI DrvSaveScreenBits( /*IN*/ SURFOBJ *pso, /*IN*/ ULONG iMode, /*IN*/ ULONG_PTR ident, /*IN*/ RECTL *prcl); BOOL DDKAPI DrvSendPage( /*IN*/ SURFOBJ *pso); BOOL DDKAPI DrvSetPalette( /*IN*/ DHPDEV dhpdev, /*IN*/ PALOBJ *ppalo, /*IN*/ FLONG fl, /*IN*/ ULONG iStart, /*IN*/ ULONG cColors); BOOL DDKAPI DrvSetPixelFormat( /*IN*/ SURFOBJ *pso, /*IN*/ LONG iPixelFormat, /*IN*/ 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 0x00000001L #define SPS_ASYNCCHANGE 0x00000002L #define SPS_ANIMATESTART 0x00000004L #define SPS_ANIMATEUPDATE 0x00000008L #define SPS_ALPHA 0x00000010L #define SPS_LENGTHMASK 0x00000F00L #define SPS_FREQMASK 0x000FF000L ULONG DDKAPI DrvSetPointerShape( /*IN*/ SURFOBJ *pso, /*IN*/ SURFOBJ *psoMask, /*IN*/ SURFOBJ *psoColor, /*IN*/ XLATEOBJ *pxlo, /*IN*/ LONG xHot, /*IN*/ LONG yHot, /*IN*/ LONG x, /*IN*/ LONG y, /*IN*/ RECTL *prcl, /*IN*/ FLONG fl); BOOL DDKAPI DrvStartBanding( /*IN*/ SURFOBJ *pso, /*IN*/ POINTL *pptl); BOOL DDKAPI DrvStartDoc( /*IN*/ SURFOBJ *pso, /*IN*/ LPWSTR pwszDocName, /*IN*/ DWORD dwJobId); BOOL DDKAPI DrvStartPage( /*IN*/ SURFOBJ *pso); BOOL DDKAPI DrvStretchBlt( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMask, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ COLORADJUSTMENT *pca, /*IN*/ POINTL *pptlHTOrg, /*IN*/ RECTL *prclDest, /*IN*/ RECTL *prclSrc, /*IN*/ POINTL *pptlMask, /*IN*/ ULONG iMode); BOOL DDKAPI DrvStretchBltROP( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMask, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ COLORADJUSTMENT *pca, /*IN*/ POINTL *pptlHTOrg, /*IN*/ RECTL *prclDest, /*IN*/ RECTL *prclSrc, /*IN*/ POINTL *pptlMask, /*IN*/ ULONG iMode, /*IN*/ BRUSHOBJ *pbo, /*IN*/ DWORD rop4); BOOL DDKAPI DrvStrokeAndFillPath( /*IN*/ SURFOBJ *pso, /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ XFORMOBJ *pxo, /*IN*/ BRUSHOBJ *pboStroke, /*IN*/ LINEATTRS *plineattrs, /*IN*/ BRUSHOBJ *pboFill, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ MIX mixFill, /*IN*/ FLONG flOptions); BOOL DDKAPI DrvStrokePath( /*IN*/ SURFOBJ *pso, /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ XFORMOBJ *pxo, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ LINEATTRS *plineattrs, /*IN*/ MIX mix); BOOL DDKAPI DrvSwapBuffers( /*IN*/ SURFOBJ *pso, /*IN*/ WNDOBJ *pwo); VOID DDKAPI DrvSynchronize( /*IN*/ DHPDEV dhpdev, /*IN*/ RECTL *prcl); /* DrvSynchronizeSurface.fl constants */ #define DSS_TIMER_EVENT 0x00000001 #define DSS_FLUSH_EVENT 0x00000002 VOID DDKAPI DrvSynchronizeSurface( /*IN*/ SURFOBJ *pso, /*IN*/ RECTL *prcl, /*IN*/ FLONG fl); BOOL DDKAPI DrvTextOut( /*IN*/ SURFOBJ *pso, /*IN*/ STROBJ *pstro, /*IN*/ FONTOBJ *pfo, /*IN*/ CLIPOBJ *pco, /*IN*/ RECTL *prclExtra, /*IN*/ RECTL *prclOpaque, /*IN*/ BRUSHOBJ *pboFore, /*IN*/ BRUSHOBJ *pboOpaque, /*IN*/ POINTL *pptlOrg, /*IN*/ MIX mix); BOOL DDKAPI DrvTransparentBlt( /*IN*/ SURFOBJ *psoDst, /*IN*/ SURFOBJ *psoSrc, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclDst, /*IN*/ RECTL *prclSrc, /*IN*/ ULONG iTransColor, /*IN*/ ULONG ulReserved); BOOL DDKAPI DrvUnloadFontFile( /*IN*/ ULONG_PTR iFile); /* 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 DDKAPI (CALLBACK * WNDOBJCHANGEPROC)( WNDOBJ *pwo, FLONG fl); typedef BOOL DDKAPI (*PFN_DrvAlphaBlend)( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclDest, /*IN*/ RECTL *prclSrc, /*IN*/ BLENDOBJ *pBlendObj); typedef BOOL DDKAPI (*PFN_DrvAssertMode)( /*IN*/ DHPDEV dhpdev, /*IN*/ BOOL bEnable); typedef BOOL DDKAPI (*PFN_DrvBitBlt)( /*IN*/ SURFOBJ *psoTrg, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMask, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclTrg, /*IN*/ POINTL *pptlSrc, /*IN*/ POINTL *pptlMask, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrush, /*IN*/ ROP4 rop4); typedef VOID DDKAPI (*PFN_DrvCompletePDEV)( /*IN*/ DHPDEV dhpdev, /*IN*/ HDEV hdev); typedef BOOL DDKAPI (*PFN_DrvCopyBits)( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclDest, /*IN*/ POINTL *pptlSrc); typedef HBITMAP DDKAPI (*PFN_DrvCreateDeviceBitmap)( /*IN*/ DHPDEV dhpdev, /*IN*/ SIZEL sizl, /*IN*/ ULONG iFormat); typedef VOID DDKAPI (*PFN_DrvDeleteDeviceBitmap)( /*IN*/ DHSURF dhsurf); typedef HBITMAP DDKAPI (*PFN_DrvDeriveSurface)( DD_DIRECTDRAW_GLOBAL *pDirectDraw, DD_SURFACE_LOCAL *pSurface); typedef LONG DDKAPI (*PFN_DrvDescribePixelFormat)( /*IN*/ DHPDEV dhpdev, /*IN*/ LONG iPixelFormat, /*IN*/ ULONG cjpfd, /*OUT*/ PIXELFORMATDESCRIPTOR *ppfd); typedef VOID DDKAPI (*PFN_DrvDestroyFont)( /*IN*/ FONTOBJ *pfo); typedef VOID DDKAPI (*PFN_DrvDisableDriver)( VOID); typedef VOID DDKAPI (*PFN_DrvDisablePDEV)( /*IN*/ DHPDEV dhpdev); typedef VOID DDKAPI (*PFN_DrvDisableSurface)( /*IN*/ DHPDEV dhpdev); typedef ULONG DDKAPI (*PFN_DrvDitherColor)( /*IN*/ DHPDEV dhpdev, /*IN*/ ULONG iMode, /*IN*/ ULONG rgb, /*OUT*/ ULONG *pul); typedef ULONG DDKAPI (*PFN_DrvDrawEscape)( /*IN*/ SURFOBJ *pso, /*IN*/ ULONG iEsc, /*IN*/ CLIPOBJ *pco, /*IN*/ RECTL *prcl, /*IN*/ ULONG cjIn, /*IN*/ PVOID pvIn); typedef BOOL DDKAPI (*PFN_DrvEnableDriver)( /*IN*/ ULONG iEngineVersion, /*IN*/ ULONG cj, /*OUT*/ DRVENABLEDATA *pded); #if 0 typedef DHPDEV DDKAPI (*PFN_DrvEnablePDEV)( /*IN*/ DEVMODEW *pdm, /*IN*/ LPWSTR pwszLogAddress, /*IN*/ ULONG cPat, /*OUT*/ HSURF *phsurfPatterns, /*IN*/ ULONG cjCaps, /*OUT*/ ULONG *pdevcaps, /*IN*/ ULONG cjDevInfo, /*OUT*/ DEVINFO *pdi, /*IN*/ HDEV hdev, /*IN*/ LPWSTR pwszDeviceName, /*IN*/ HANDLE hDriver); #endif typedef HSURF DDKAPI (*PFN_DrvEnableSurface)( /*IN*/ DHPDEV dhpdev); typedef BOOL DDKAPI (*PFN_DrvEndDoc)( /*IN*/ SURFOBJ *pso, /*IN*/ FLONG fl); typedef ULONG DDKAPI (*PFN_DrvEscape)( /*IN*/ SURFOBJ *pso, /*IN*/ ULONG iEsc, /*IN*/ ULONG cjIn, /*IN*/ PVOID pvIn, /*IN*/ ULONG cjOut, /*OUT*/ PVOID pvOut); typedef BOOL DDKAPI (*PFN_DrvFillPath)( /*IN*/ SURFOBJ *pso, /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ MIX mix, /*IN*/ FLONG flOptions); typedef ULONG DDKAPI (*PFN_DrvFontManagement)( /*IN*/ SURFOBJ *pso, /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode, /*IN*/ ULONG cjIn, /*IN*/ PVOID pvIn, /*IN*/ ULONG cjOut, /*OUT*/ PVOID pvOut); typedef VOID DDKAPI (*PFN_DrvFree)( /*IN*/ PVOID pv, /*IN*/ ULONG_PTR id); typedef ULONG DDKAPI (*PFN_DrvGetGlyphMode)( /*IN*/ DHPDEV dhpdev, /*IN*/ FONTOBJ *pfo); typedef ULONG DDKAPI (*PFN_DrvGetModes)( /*IN*/ HANDLE hDriver, /*IN*/ ULONG cjSize, /*OUT*/ DEVMODEW *pdm); typedef PVOID DDKAPI (*PFN_DrvGetTrueTypeFile)( /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG *pcj); typedef BOOL DDKAPI (*PFN_DrvGradientFill)( /*IN*/ SURFOBJ *psoDest, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ TRIVERTEX *pVertex, /*IN*/ ULONG nVertex, /*IN*/ PVOID pMesh, /*IN*/ ULONG nMesh, /*IN*/ RECTL *prclExtents, /*IN*/ POINTL *pptlDitherOrg, /*IN*/ ULONG ulMode); typedef BOOL DDKAPI (*PFN_DrvIcmCheckBitmapBits)( /*IN*/ DHPDEV dhpdev, /*IN*/ HANDLE hColorTransform, /*IN*/ SURFOBJ *pso, /*OUT*/ PBYTE paResults); typedef HANDLE DDKAPI (*PFN_DrvIcmCreateColorTransform)( /*IN*/ DHPDEV dhpdev, /*IN*/ LPLOGCOLORSPACEW pLogColorSpace, /*IN*/ PVOID pvSourceProfile, /*IN*/ ULONG cjSourceProfile, /*IN*/ PVOID pvDestProfile, /*IN*/ ULONG cjDestProfile, /*IN*/ PVOID pvTargetProfile, /*IN*/ ULONG cjTargetProfile, /*IN*/ DWORD dwReserved); typedef BOOL DDKAPI (*PFN_DrvIcmDeleteColorTransform)( /*IN*/ DHPDEV dhpdev, /*IN*/ HANDLE hcmXform); typedef BOOL DDKAPI (*PFN_DrvIcmSetDeviceGammaRamp)( /*IN*/ DHPDEV dhpdev, /*IN*/ ULONG iFormat, /*IN*/ LPVOID lpRamp); typedef BOOL DDKAPI (*PFN_DrvLineTo)( SURFOBJ *pso, CLIPOBJ *pco, BRUSHOBJ *pbo, LONG x1, LONG y1, LONG x2, LONG y2, RECTL *prclBounds, MIX mix); typedef ULONG_PTR DDKAPI (*PFN_DrvLoadFontFile)( ULONG cFiles, ULONG_PTR *piFile, PVOID *ppvView, ULONG *pcjView, DESIGNVECTOR *pdv, ULONG ulLangID, ULONG ulFastCheckSum); typedef VOID DDKAPI (*PFN_DrvMovePointer)( /*IN*/ SURFOBJ *pso, /*IN*/ LONG x, /*IN*/ LONG y, /*IN*/ RECTL *prcl); typedef BOOL DDKAPI (*PFN_DrvNextBand)( /*IN*/ SURFOBJ *pso, /*IN*/ POINTL *pptl); typedef VOID DDKAPI (*PFN_DrvNotify)( /*IN*/ SURFOBJ *pso, /*IN*/ ULONG iType, /*IN*/ PVOID pvData); typedef BOOL DDKAPI (*PFN_DrvOffset)( /*IN*/ SURFOBJ *pso, /*IN*/ LONG x, /*IN*/ LONG y, /*IN*/ FLONG flReserved); typedef BOOL DDKAPI (*PFN_DrvPaint)( /*IN*/ SURFOBJ *pso, /*IN*/ CLIPOBJ *pco, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ MIX mix); typedef BOOL DDKAPI (*PFN_DrvPlgBlt)( /*IN*/ SURFOBJ *psoTrg, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMsk, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ COLORADJUSTMENT *pca, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ POINTFIX *pptfx, /*IN*/ RECTL *prcl, /*IN*/ POINTL *pptl, /*IN*/ ULONG iMode); typedef BOOL DDKAPI (*PFN_DrvQueryAdvanceWidths)( /*IN*/ DHPDEV dhpdev, /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode, /*IN*/ HGLYPH *phg, /*OUT*/ PVOID pvWidths, /*IN*/ ULONG cGlyphs); typedef BOOL DDKAPI (*PFN_DrvQueryDeviceSupport)( SURFOBJ *pso, XLATEOBJ *pxlo, XFORMOBJ *pxo, ULONG iType, ULONG cjIn, PVOID pvIn, ULONG cjOut, PVOID pvOut); typedef BOOL DDKAPI (*PFN_DrvQueryDriverInfo)( DWORD dwMode, PVOID pBuffer, DWORD cbBuf, PDWORD pcbNeeded); typedef PIFIMETRICS DDKAPI (*PFN_DrvQueryFont)( /*IN*/ DHPDEV dhpdev, /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG iFace, /*IN*/ ULONG_PTR *pid); typedef LONG DDKAPI (*PFN_DrvQueryFontCaps)( /*IN*/ ULONG culCaps, /*OUT*/ ULONG *pulCaps); typedef LONG DDKAPI (*PFN_DrvQueryFontData)( /*IN*/ DHPDEV dhpdev, /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode, /*IN*/ HGLYPH hg, /*IN OUT*/ GLYPHDATA *pgd, /*IN OUT*/ PVOID pv, /*IN*/ ULONG cjSize); typedef LONG DDKAPI (*PFN_DrvQueryFontFile)( /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG ulMode, /*IN*/ ULONG cjBuf, /*IN*/ ULONG *pulBuf); typedef PVOID DDKAPI (*PFN_DrvQueryFontTree)( /*IN*/ DHPDEV dhpdev, /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG iFace, /*IN*/ ULONG iMode, /*IN*/ ULONG_PTR *pid); typedef PFD_GLYPHATTR DDKAPI (*PFN_DrvQueryGlyphAttrs)( /*IN*/ FONTOBJ *pfo, /*IN*/ ULONG iMode); typedef ULONG DDKAPI (*PFN_DrvQueryPerBandInfo)( /*IN*/ SURFOBJ *pso, /*IN OUT*/ PERBANDINFO *pbi); typedef LONG DDKAPI (*PFN_DrvQueryTrueTypeOutline)( /*IN*/ DHPDEV dhpdev, /*IN*/ FONTOBJ *pfo, /*IN*/ HGLYPH hglyph, /*IN*/ BOOL bMetricsOnly, /*IN*/ GLYPHDATA *pgldt, /*IN*/ ULONG cjBuf, /*OUT*/ TTPOLYGONHEADER *ppoly); typedef LONG DDKAPI (*PFN_DrvQueryTrueTypeTable)( /*IN*/ ULONG_PTR iFile, /*IN*/ ULONG ulFont, /*IN*/ ULONG ulTag, /*IN*/ PTRDIFF dpStart, /*IN*/ ULONG cjBuf, /*OUT*/ BYTE *pjBuf, /*OUT*/ PBYTE *ppjTable, /*OUT*/ ULONG *pcjTable); typedef BOOL DDKAPI (*PFN_DrvRealizeBrush)( /*IN*/ BRUSHOBJ *pbo, /*IN*/ SURFOBJ *psoTarget, /*IN*/ SURFOBJ *psoPattern, /*IN*/ SURFOBJ *psoMask, /*IN*/ XLATEOBJ *pxlo, /*IN*/ ULONG iHatch); typedef ULONG DDKAPI (*PFN_DrvResetDevice)( /*IN*/ DHPDEV dhpdev, /*IN*/ PVOID Reserved); typedef BOOL DDKAPI (*PFN_DrvResetPDEV)( DHPDEV dhpdevOld, DHPDEV dhpdevNew); typedef ULONG_PTR DDKAPI (*PFN_DrvSaveScreenBits)( /*IN*/ SURFOBJ *pso, /*IN*/ ULONG iMode, /*IN*/ ULONG_PTR ident, /*IN*/ RECTL *prcl); typedef BOOL DDKAPI (*PFN_DrvSendPage)( /*IN*/ SURFOBJ *pso); typedef BOOL DDKAPI (*PFN_DrvSetPalette)( /*IN*/ DHPDEV dhpdev, /*IN*/ PALOBJ *ppalo, /*IN*/ FLONG fl, /*IN*/ ULONG iStart, /*IN*/ ULONG cColors); typedef BOOL DDKAPI (*PFN_DrvSetPixelFormat)( /*IN*/ SURFOBJ *pso, /*IN*/ LONG iPixelFormat, /*IN*/ HWND hwnd); typedef ULONG DDKAPI (*PFN_DrvSetPointerShape)( /*IN*/ SURFOBJ *pso, /*IN*/ SURFOBJ *psoMask, /*IN*/ SURFOBJ *psoColor, /*IN*/ XLATEOBJ *pxlo, /*IN*/ LONG xHot, /*IN*/ LONG yHot, /*IN*/ LONG x, /*IN*/ LONG y, /*IN*/ RECTL *prcl, /*IN*/ FLONG fl); typedef BOOL DDKAPI (*PFN_DrvStartBanding)( /*IN*/ SURFOBJ *pso, /*IN*/ POINTL *pptl); typedef BOOL DDKAPI (*PFN_DrvStartDoc)( /*IN*/ SURFOBJ *pso, /*IN*/ LPWSTR pwszDocName, /*IN*/ DWORD dwJobId); typedef BOOL DDKAPI (*PFN_DrvStartPage)( /*IN*/ SURFOBJ *pso); typedef BOOL DDKAPI (*PFN_DrvStretchBlt)( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMask, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ COLORADJUSTMENT *pca, /*IN*/ POINTL *pptlHTOrg, /*IN*/ RECTL *prclDest, /*IN*/ RECTL *prclSrc, /*IN*/ POINTL *pptlMask, /*IN*/ ULONG iMode); typedef BOOL DDKAPI (*PFN_DrvStretchBltROP)( /*IN*/ SURFOBJ *psoDest, /*IN*/ SURFOBJ *psoSrc, /*IN*/ SURFOBJ *psoMask, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ COLORADJUSTMENT *pca, /*IN*/ POINTL *pptlHTOrg, /*IN*/ RECTL *prclDest, /*IN*/ RECTL *prclSrc, /*IN*/ POINTL *pptlMask, /*IN*/ ULONG iMode, /*IN*/ BRUSHOBJ *pbo, /*IN*/ DWORD rop4); typedef BOOL DDKAPI (*PFN_DrvStrokeAndFillPath)( /*IN*/ SURFOBJ *pso, /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ XFORMOBJ *pxo, /*IN*/ BRUSHOBJ *pboStroke, /*IN*/ LINEATTRS *plineattrs, /*IN*/ BRUSHOBJ *pboFill, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ MIX mixFill, /*IN*/ FLONG flOptions); typedef BOOL DDKAPI (*PFN_DrvStrokePath)( /*IN*/ SURFOBJ *pso, /*IN*/ PATHOBJ *ppo, /*IN*/ CLIPOBJ *pco, /*IN*/ XFORMOBJ *pxo, /*IN*/ BRUSHOBJ *pbo, /*IN*/ POINTL *pptlBrushOrg, /*IN*/ LINEATTRS *plineattrs, /*IN*/ MIX mix); typedef BOOL DDKAPI (*PFN_DrvSwapBuffers)( /*IN*/ SURFOBJ *pso, /*IN*/ WNDOBJ *pwo); typedef VOID DDKAPI (*PFN_DrvSynchronize)( /*IN*/ DHPDEV dhpdev, /*IN*/ RECTL *prcl); typedef VOID DDKAPI (*PFN_DrvSynchronizeSurface)( /*IN*/ SURFOBJ *pso, /*IN*/ RECTL *prcl, /*IN*/ FLONG fl); typedef BOOL DDKAPI (*PFN_DrvTextOut)( /*IN*/ SURFOBJ *pso, /*IN*/ STROBJ *pstro, /*IN*/ FONTOBJ *pfo, /*IN*/ CLIPOBJ *pco, /*IN*/ RECTL *prclExtra, /*IN*/ RECTL *prclOpaque, /*IN*/ BRUSHOBJ *pboFore, /*IN*/ BRUSHOBJ *pboOpaque, /*IN*/ POINTL *pptlOrg, /*IN*/ MIX mix); typedef BOOL DDKAPI (*PFN_DrvTransparentBlt)( /*IN*/ SURFOBJ *psoDst, /*IN*/ SURFOBJ *psoSrc, /*IN*/ CLIPOBJ *pco, /*IN*/ XLATEOBJ *pxlo, /*IN*/ RECTL *prclDst, /*IN*/ RECTL *prclSrc, /*IN*/ ULONG iTransColor, /*IN*/ ULONG ulReserved); typedef BOOL DDKAPI (*PFN_DrvUnloadFontFile)( /*IN*/ ULONG_PTR iFile); WIN32KAPI VOID DDKAPI DrvDisableDirectDraw( /*IN*/ DHPDEV dhpdev); WIN32KAPI BOOL DDKAPI DrvEnableDirectDraw( /*IN*/ DHPDEV dhpdev, /*OUT*/ DD_CALLBACKS *pCallBacks, /*OUT*/ DD_SURFACECALLBACKS *pSurfaceCallBacks, /*OUT*/ DD_PALETTECALLBACKS *pPaletteCallBacks); WIN32KAPI BOOL DDKAPI DrvGetDirectDrawInfo( /*IN*/ DHPDEV dhpdev, /*OUT*/ DD_HALINFO *pHalInfo, /*OUT*/ DWORD *pdwNumHeaps, /*OUT*/ VIDEOMEMORY *pvmList, /*OUT*/ DWORD *pdwNumFourCCCodes, /*OUT*/ DWORD *pdwFourCC); #ifdef __cplusplus } #endif #endif /* defined __VIDEO_H */ #endif /* __WINDDI_H */