2 * WinDDI.h - definition of the GDI - DDI interface
8 #if defined(WIN32_LEAN_AND_MEAN) && defined(_GNU_H_WINDOWS32_STRUCTURES)
9 #error "windows.h cannot be included before winddi.h if WIN32_LEAN_AND_MEAN is defined"
12 #ifdef WIN32_LEAN_AND_MEAN
13 #undef WIN32_LEAN_AND_MEAN
15 #define WIN32_LEAN_AND_MEAN
27 typedef DWORD PTRDIFF;
30 #define GDI_DRIVER_VERSION 0x4000 // NT 4 compatibility
32 /* FIXME: find definitions for these structs */
33 typedef PVOID PCOLORADJUSTMENT;
34 typedef PVOID PDD_CALLBACKS;
35 typedef PVOID PDD_HALINFO;
36 typedef PVOID PDD_PALETTECALLBACKS;
37 typedef PVOID PDD_SURFACECALLBACKS;
38 typedef PVOID PFONTINFO;
39 typedef PVOID PGAMMA_TABLES;
40 typedef PVOID PGLYPHDATA;
41 typedef PVOID PLINEATTRS;
44 typedef PVOID PSTROBJ;
45 typedef PVOID PTTPOLYGONHEADER;
46 typedef PVOID PVIDEOMEMORY;
48 #define DDI_DRIVER_VERSION 0x00010000
50 /* FIXME: how big should this constant be? */
54 #define XO_TRIVIAL 0x00000001
55 #define XO_TABLE 0x00000002
56 #define XO_TO_MONO 0x00000004
58 #define XO_SRCPALETTE 1
59 #define XO_DESTPALETTE 2
60 #define XO_DESTDCPALETTE 3
62 /* EngCreateBitmap format types */
75 #define BMF_TOPDOWN 0x00000001
76 #define BMF_NOZEROINIT 0x00000002
77 #define BMF_DONTCACHE 0x00000004
78 #define BMF_USERMEM 0x00000008
79 #define BMF_KMSECTION 0x00000010
89 #define TC_RECTANGLES 0
92 #define OC_BANK_CLIP 1
94 #define CT_RECTANGLES 0L
96 #define CD_LEFTWARDS 1L
99 /* Options for CLIPOBJ_cEnumStart BuildOrder field */
109 /* Options for CLIPOBJ_cEnumStart Type field */
110 #define CT_RECTANGLE 1
114 #define DCR_HALFTONE 2
116 #define DMMAXDEVICENAME 32
117 #define DMMAXFORMNAME 32
119 #define DM_DEFAULT 0x00000001
120 #define DM_MONOCHROME 0x00000002
122 #define ED_ABORTDOC 0x00000001
130 #define FM_INFO_TECH_TRUETYPE 0x00000001
131 #define FM_INFO_TECH_BITMAP 0x00000002
132 #define FM_INFO_TECH_STROKE 0x00000004
133 #define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008
134 #define FM_INFO_ARB_XFORMS 0x00000010
135 #define FM_INFO_1BPP 0x00000020
136 #define FM_INFO_4BPP 0x00000040
137 #define FM_INFO_8BPP 0x00000080
138 #define FM_INFO_16BPP 0x00000100
139 #define FM_INFO_24BPP 0x00000200
140 #define FM_INFO_32BPP 0x00000400
141 #define FM_INFO_INTEGER_WIDTH 0x00000800
142 #define FM_INFO_CONSTANT_WIDTH 0x00001000
143 #define FM_INFO_NOT_CONTIGUOUS 0x00002000
144 #define FM_INFO_PID_EMBEDDED 0x00004000
145 #define FM_INFO_RETURNS_OUTLINES 0x00008000
146 #define FM_INFO_RETURNS_STROKES 0x00010000
147 #define FM_INFO_RETURNS_BITMAPS 0x00020000
148 #define FM_INFO_UNICODE_COMPLIANT 0x00040000
149 #define FM_INFO_RIGHT_HANDED 0x00080000
150 #define FM_INFO_INTEGRAL_SCALING 0x00100000
151 #define FM_INFO_90DEGREE_ROTATIONS 0x00200000
152 #define FM_INFO_OPTICALLY_FIXED_PITCH 0x00400000
153 #define FM_INFO_DO_NOT_ENUMERATE 0x00800000
154 #define FM_INFO_ISOTROPIC_SCALING_ONLY 0x01000000
155 #define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x02000000
156 #define FM_INFO_TID_EMBEDDED 0x04000000
157 #define FM_INFO_FAMILY_EQUIV 0x08000000
158 #define FM_INFO_DBCS_FIXED_PITCH 0x10000000
159 #define FM_INFO_NONNEGATIVE_AC 0x20000000
160 #define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000
161 #define FM_INFO_TECH_TYPE1 0x80000000
163 #define FM_SEL_ITALIC 0x00000001
164 #define FM_SEL_UNDERSCORE 0x00000002
165 #define FM_SEL_NEGATIVE 0x00000004
166 #define FM_SEL_OUTLINED 0x00000008
167 #define FM_SEL_STRIKEOUT 0x00000010
168 #define FM_SEL_BOLD 0x00000020
169 #define FM_SEL_REGULAR 0x00000040
171 #define FM_TYPE_LICENSED 0x00000002
172 #define FM_READONLY_EMBED 0x00000004
173 #define FM_EDITABLE_EMBED 0x00000008
174 #define FM_NO_EMBEDDING 0x00000002
176 #define FO_TYPE_RASTER RASTER_FONTTYPE
177 #define FO_TYPE_DEVICE DEVICE_FONTTYPE
178 #define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE
179 #define FO_SIM_BOLD 0x00002000
180 #define FO_SIM_ITALIC 0x00004000
181 #define FO_EM_HEIGHT 0x00008000
182 #define FO_GRAY16 0x00010000
183 #define FO_NOGRAY16 0x00020000
184 #define FO_NOHINTS 0x00040000
185 #define FO_NO_CHOICE 0x00080000
189 FP_ALTERNATEMODE = 1,
200 // Allowed values for GDIINFO.ulPrimaryOrder.
202 #define PRIMARY_ORDER_ABC 0
203 #define PRIMARY_ORDER_ACB 1
204 #define PRIMARY_ORDER_BAC 2
205 #define PRIMARY_ORDER_BCA 3
206 #define PRIMARY_ORDER_CBA 4
207 #define PRIMARY_ORDER_CAB 5
209 // Allowed values for GDIINFO.ulHTPatternSize.
211 #define HT_PATSIZE_2x2 0
212 #define HT_PATSIZE_2x2_M 1
213 #define HT_PATSIZE_4x4 2
214 #define HT_PATSIZE_4x4_M 3
215 #define HT_PATSIZE_6x6 4
216 #define HT_PATSIZE_6x6_M 5
217 #define HT_PATSIZE_8x8 6
218 #define HT_PATSIZE_8x8_M 7
219 #define HT_PATSIZE_10x10 8
220 #define HT_PATSIZE_10x10_M 9
221 #define HT_PATSIZE_12x12 10
222 #define HT_PATSIZE_12x12_M 11
223 #define HT_PATSIZE_14x14 12
224 #define HT_PATSIZE_14x14_M 13
225 #define HT_PATSIZE_16x16 14
226 #define HT_PATSIZE_16x16_M 15
227 #define HT_PATSIZE_MAX_INDEX HT_PATSIZE_16x16_M
228 #define HT_PATSIZE_DEFAULT HT_PATSIZE_4x4_M
230 // Allowed values for GDIINFO.ulHTOutputFormat.
232 #define HT_FORMAT_1BPP 0
233 #define HT_FORMAT_4BPP 2
234 #define HT_FORMAT_4BPP_IRGB 3
235 #define HT_FORMAT_8BPP 4
236 #define HT_FORMAT_16BPP 5
237 #define HT_FORMAT_24BPP 6
238 #define HT_FORMAT_32BPP 7
240 // Allowed values for GDIINFO.flHTFlags.
242 #define HT_FLAG_SQUARE_DEVICE_PEL 0x00000001
243 #define HT_FLAG_HAS_BLACK_DYE 0x00000002
244 #define HT_FLAG_ADDITIVE_PRIMS 0x00000004
245 #define HT_FLAG_OUTPUT_CMY 0x00000100
247 #define GCAPS_BEZIERS 0x00000001
248 #define GCAPS_GEOMETRICWIDE 0x00000002
249 #define GCAPS_ALTERNATEFILL 0x00000004
250 #define GCAPS_WINDINGFILL 0x00000008
251 #define GCAPS_HALFTONE 0x00000010
252 #define GCAPS_COLOR_DITHER 0x00000020
253 #define GCAPS_HORIZSTRIKE 0x00000040
254 #define GCAPS_VERTSTRIKE 0x00000080
255 #define GCAPS_OPAQUERECT 0x00000100
256 #define GCAPS_VECTORFONT 0x00000200
257 #define GCAPS_MONO_DITHER 0x00000400
258 #define GCAPS_ASYNCCHANGE 0x00000800
259 #define GCAPS_ASYNCMOVE 0x00001000
260 #define GCAPS_DONTJOURNAL 0x00002000
261 #define GCAPS_DIRECTDRAW 0x00004000
262 #define GCAPS_ARBRUSHOPAQUE 0x00008000
263 #define GCAPS_PANNING 0x00010000
264 #define GCAPS_HIGHRESTEXT 0x00040000
265 #define GCAPS_PALMANAGED 0x00080000
266 #define GCAPS_DITHERONREALIZE 0x00200000
267 #define GCAPS_NO64BITMEMACCESS 0x00400000
268 #define GCAPS_FORCEDITHER 0x00800000
269 #define GCAPS_GRAY16 0x01000000
271 /* EngAssocateSurface hook flags */
272 #define HOOK_BITBLT 0x00000001
273 #define HOOK_STRETCHBLT 0x00000002
274 #define HOOK_PLGBLT 0x00000004
275 #define HOOK_TEXTOUT 0x00000008
276 #define HOOK_PAINT 0x00000010
277 #define HOOK_STROKEPATH 0x00000020
278 #define HOOK_FILLPATH 0x00000040
279 #define HOOK_STROKEANDFILLPATH 0x00000080
280 #define HOOK_LINETO 0x00000100
281 #define HOOK_COPYBITS 0x00000400
282 #define HOOK_SYNCHRONIZE 0x00001000
283 #define HOOK_SYNCHRONIZEACCESS 0x00004000
284 #define HOOK_TRANSPARENTBLT 0x00008000
289 INDEX_DrvCompletePDEV,
290 INDEX_DrvDisablePDEV,
291 INDEX_DrvEnableSurface,
292 INDEX_DrvDisableSurface,
294 INDEX_DrvResetPDEV = 7,
295 INDEX_DrvCreateDeviceBitmap = 10,
296 INDEX_DrvDeleteDeviceBitmap,
297 INDEX_DrvRealizeBrush,
298 INDEX_DrvDitherColor,
301 INDEX_DrvStrokeAndFillPath,
306 INDEX_DrvSetPalette = 22,
311 INDEX_DrvQueryFontTree,
312 INDEX_DrvQueryFontData,
313 INDEX_DrvSetPointerShape,
314 INDEX_DrvMovePointer,
320 INDEX_DrvGetGlyphMode = 37,
321 INDEX_DrvSynchronize,
322 INDEX_DrvSaveScreenBits = 40,
325 INDEX_DrvDestroyFont,
326 INDEX_DrvQueryFontCaps,
327 INDEX_DrvLoadFontFile,
328 INDEX_DrvUnloadFontFile,
329 INDEX_DrvFontManagement,
330 INDEX_DrvQueryTrueTypeTable,
331 INDEX_DrvQueryTrueTypeOutline,
332 INDEX_DrvGetTrueTypeFile,
333 INDEX_DrvQueryFontFile,
334 INDEX_DrvQueryAdvanceWidths = 53,
335 INDEX_DrvSetPixelFormat,
336 INDEX_DrvDescribePixelFormat,
337 INDEX_DrvSwapBuffers,
338 INDEX_DrvStartBanding,
340 INDEX_DrvGetDirectDrawInfo,
341 INDEX_DrvEnableDirectDraw,
342 INDEX_DrvDisableDirectDraw,
343 INDEX_DrvQuerySpoolType,
344 INDEX_DrvTransparentBlt = 74,
348 /* EngCreatePalette mode types */
349 #define PAL_INDEXED 0x00000001
350 #define PAL_BITFIELDS 0x00000002
351 #define PAL_RGB 0x00000004
352 #define PAL_BGR 0x00000008
354 enum _QUERY_ADVANCE_WIDTH_TYPES
360 #define QC_OUTLINES 0x00000001
361 #define QC_1BIT 0x00000002
362 #define QC_4BIT 0x00000004
370 #define RB_DITHERCOLOR 0x80000000
376 SPS_ACCEPT_NOEXCLUDE,
380 #define SPS_CHANGE 0x00000001L
381 #define SPS_ASYNCCHANGE 0x00000002L
382 #define SPS_ANIMATESTART 0x00000004L
383 #define SPS_ANIMATEUPDATE 0x00000008L
396 #define WO_RGN_CLIENT_DELTA 0x00000001
397 #define WO_RGN_CLIENT 0x00000002
398 #define WO_RGN_SURFACE_DELTA 0x00000004
399 #define WO_RGN_SURFACE 0x00000008
400 #define WO_RGN_UPDATE_ALL 0x00000010
402 #define WOC_RGN_CLIENT_DELTA 0x00000001
403 #define WOC_RGN_CLIENT 0x00000002
404 #define WOC_RGN_SURFACE_DELTA 0x00000004
405 #define WOC_RGN_SURFACE 0x00000008
406 #define WOC_CHANGED 0x00000010
407 #define WOC_DELETE 0x00000020
410 typedef HANDLE HGLYPH;
411 typedef HANDLE HSURF;
412 typedef HANDLE DHPDEV;
413 typedef HANDLE DHSURF;
414 typedef ULONG (*PFN)(VOID);
417 typedef struct _DRVFN
424 * DRVENABLEDATA - this structure is passed to the DDI from the GDI
425 * in the function DrvEnableDriver to determine driver parameters.
428 typedef struct _DRVENABLEDATA
430 ULONG iDriverVersion;
433 } DRVENABLEDATA, *PDRVENABLEDATA;
435 /* FIXME: replace this with correct def for LDECI4 */
436 typedef DWORD LDECI4;
438 typedef struct _CIECHROMA
443 } CIECHROMA, *PCIECHROMA;
445 typedef struct _COLORINFO
453 CIECHROMA AlignmentWhite;
457 LDECI4 MagentaInCyanDye;
458 LDECI4 YellowInCyanDye;
459 LDECI4 CyanInMagentaDye;
460 LDECI4 YellowInMagentaDye;
461 LDECI4 CyanInYellowDye;
462 LDECI4 MagentaInYellowDye;
463 } COLORINFO, *PCOLORINFO;
465 typedef struct _DEVINFO
467 ULONG flGraphicsCaps;
468 LOGFONTW lfDefaultFont;
469 LOGFONTW lfAnsiVarFont;
470 LOGFONTW lfAnsiFixFont;
475 HPALETTE hpalDefault;
476 } DEVINFO, *PDEVINFO;
478 typedef struct _GDIINFO
502 POINTL ptlPhysOffset;
506 ULONG ulDevicePelsDPI;
507 ULONG ulPrimaryOrder;
508 ULONG ulHTPatternSize;
509 ULONG ulHTOutputFormat;
512 ULONG ulBltAlignment;
513 ULONG ulPanningHorzRes;
514 ULONG ulPanningVertRes;
515 } GDIINFO, *PGDIINFO;
517 typedef struct _BRUSHOBJ
522 /* remainder of fields are for GDI internal use */
524 } BRUSHOBJ, *PBRUSHOBJ;
526 typedef struct _CLIPOBJ
534 } CLIPOBJ, *PCLIPOBJ;
536 typedef struct _ENUMRECTS
540 } ENUMRECTS, *PENUMRECTS;
542 typedef struct _FONTOBJ
554 } FONTOBJ, *PFONTOBJ;
556 typedef struct _IFIMETRICS
560 PTRDIFF dpwszFamilyName;
561 PTRDIFF dpwszStyleName;
562 PTRDIFF dpwszFaceName;
563 PTRDIFF dpwszUniqueName;
570 BYTE jWinPitchAndFamily;
578 WORD fwdWinDescender;
580 WORD fwdMacDescender;
582 WORD fwdTypoAscender;
583 WORD fwdTypoDescender;
585 WORD fwdAveCharWidth;
589 WORD fwdSubScriptXSize;
590 WORD fwdSubScriptYSize;
591 WORD fwdSubScriptXOffset;
592 WORD fwdSubScriptYOffset;
593 WORD fwdSuperScriptXSize;
594 WORD fwdSuperScriptYSize;
595 WORD fwdSuperScriptXOffset;
596 WORD fwdSuperScriptYOffset;
597 WORD fwdUnderscoreSize;
598 WORD fwdUnderscorePosition;
599 WORD fwdStrikeoutSize;
600 WORD fwdStrikeoutPosition;
615 ULONG ulPanoseCulture;
617 } IFIMETRICS, *PIFIMETRICS;
619 #define NB_RESERVED_COLORS 20 // number of fixed colors in system palette
621 typedef struct _XLATEOBJ
629 } XLATEOBJ, *PXLATEOBJ;
631 typedef struct _PALOBJ
633 PXLATEOBJ logicalToSystem;
635 PLOGPALETTE logpalette; // _MUST_ be the last field
638 typedef struct _PATHOBJ
642 } PATHOBJ, *PPATHOBJ;
644 typedef struct _SURFOBJ
659 } SURFOBJ, *PSURFOBJ;
661 typedef struct _WNDOBJ
668 typedef VOID (CALLBACK * WNDOBJCHANGEPROC)(PWNDOBJ WndObj, ULONG Flags);
670 typedef struct _XFORMOBJ
672 /* FIXME: what does this beast look like? */
673 } XFORMOBJ, *PXFORMOBJ;
676 * Functions Prefixed with Drv are calls made from GDI to DDI, and
677 * everything else are calls made from DDI to GDI. DDI is
678 * not allowed to make calls to any other kernel or user modules.
681 /* GDI --> DDI calls */
683 DrvAssertMode(IN DHPDEV PDev,
684 IN BOOL ShouldEnable);
686 DrvBitBlt(IN PSURFOBJ DestSurface,
687 IN PSURFOBJ SrcSurface,
688 IN PSURFOBJ MaskSurface,
690 IN PXLATEOBJ XLateObj,
692 IN PPOINTL SrcPointL,
693 IN PPOINTL MaskPointL,
694 IN PBRUSHOBJ BrushObj,
695 IN PPOINTL BrushPointL,
698 DrvCompletePDEV(IN DHPDEV PDev,
701 DrvCopyBits(OUT PSURFOBJ DestSurface,
702 IN PSURFOBJ SrcSurface,
704 IN PXLATEOBJ XLateObj,
706 IN PPOINTL SrcPointL);
708 DrvCreateDeviceBitmap(IN DHPDEV DPev,
712 DrvDeleteDeviceBitmap(IN DHSURF Surface);
714 DrvDescribePixelFormat(IN DHPDEV DPev,
716 IN ULONG DescriptorSize,
717 OUT PPIXELFORMATDESCRIPTOR PFD);
719 DrvDestroyFont(IN PFONTOBJ FontObj);
721 DrvDisableDirectDraw(IN DHPDEV PDev);
723 DrvDisableDriver(VOID);
725 DrvDisablePDEV(IN DHPDEV PDev);
727 DrvDisableSurface(IN DHPDEV PDev);
729 DrvDitherColor(IN DHPDEV DPev,
732 OUT PULONG DitherBits);
734 DrvDrawEscape(IN PSURFOBJ SurfObj,
739 IN PVOID *InputData);
741 DrvEnableDirectDraw(IN DHPDEV PDev,
742 IN PDD_CALLBACKS Callbacks,
743 IN PDD_SURFACECALLBACKS SurfaceCallbacks,
744 IN PDD_PALETTECALLBACKS PaletteCallbacks);
746 DrvEnableDriver(IN ULONG Version,
748 OUT PDRVENABLEDATA DED);
750 DrvEnablePDEV(IN DEVMODEW *DM,
751 IN LPWSTR LogAddress,
752 IN ULONG PatternCount,
753 OUT HSURF *SurfPatterns,
756 IN ULONG DevInfoSize,
758 IN LPWSTR DevDataFile,
759 IN LPWSTR DeviceName,
762 DrvEnableSurface(IN DHPDEV PDev);
764 DrvEndDoc(IN PSURFOBJ SurfObj,
767 DrvEscape(IN PSURFOBJ SurfObj,
772 OUT PVOID *OutputData);
774 DrvFillPath(IN PSURFOBJ SurfObj,
777 IN PBRUSHOBJ BrushObj,
782 DrvFontManagement(IN PSURFOBJ SurfObj,
788 OUT PVOID OutputData);
790 DrvFree(IN PVOID Obj,
793 DrvGetDirectDrawInfo(IN DHPDEV PDev,
794 IN PDD_HALINFO HalInfo,
796 IN PVIDEOMEMORY List,
797 IN PDWORD NumFourCCCodes,
800 DrvGetGlyphMode(IN DHPDEV DPev,
801 IN PFONTOBJ FontObj);
803 DrvGetModes(IN HANDLE Driver,
807 DrvGetTrueTypeFile(IN ULONG FileNumber,
810 DrvLineTo(IN PSURFOBJ SurfObj,
812 IN PBRUSHOBJ BrushObj,
820 DrvLoadFontFile(IN ULONG FileNumber,
825 DrvMovePointer(IN PSURFOBJ SurfObj,
830 DrvNextBand(IN PSURFOBJ SurfObj,
833 DrvPaint(IN PSURFOBJ SurfObj,
835 IN PBRUSHOBJ BrushObj,
839 DrvQueryAdvanceWidths(IN DHPDEV DPev,
846 DrvQueryFont(IN DHPDEV PDev,
849 IN PULONG Identifier);
851 DrvQueryFontCaps(IN ULONG CapsSize,
852 OUT PULONG CapsData);
854 DrvQueryFontData(IN DHPDEV DPev,
858 IN PGLYPHDATA GlyphData,
860 IN ULONG BufferSize);
862 DrvQueryFontFile(IN ULONG FileNumber,
867 DrvQueryFontTree(IN DHPDEV PDev,
873 DrvQuerySpoolType(DHPDEV PDev,
876 DrvQueryTrueTypeOutline(IN DHPDEV PDev,
880 IN PGLYPHDATA GlyphData,
882 OUT PTTPOLYGONHEADER Polygons);
884 DrvQueryTrueTypeTable(IN ULONG FileNumber,
891 DrvRealizeBrush(IN PBRUSHOBJ BrushObj,
892 IN PSURFOBJ TargetSurface,
893 IN PSURFOBJ PatternSurface,
894 IN PSURFOBJ MaskSurface,
895 IN PXLATEOBJ XLateObj,
898 DrvResetPDEV(IN DHPDEV PDevOld,
901 DrvSaveScreenBits(IN PSURFOBJ SurfObj,
906 DrvSendPage(IN PSURFOBJ SurfObj);
908 DrvSetPalette(IN DHPDEV PDev,
909 IN PPALOBJ PaletteObj,
914 DrvSetPointerShape(IN PSURFOBJ SurfObj,
915 IN PSURFOBJ MaskSurface,
916 IN PSURFOBJ ColorSurface,
917 IN PXLATEOBJ XLateObj,
925 DrvStartBanding(IN PSURFOBJ SurfObj,
928 DrvStartDoc(IN PSURFOBJ SurfObj,
932 DrvStartPage(IN PSURFOBJ SurfObj);
934 DrvStretchBlt(IN PSURFOBJ DestSurface,
935 IN PSURFOBJ SrcSurface,
936 IN PSURFOBJ MaskSurface,
938 IN PXLATEOBJ XLateObj,
939 IN PCOLORADJUSTMENT CA,
946 DrvStrokeAndFillPath(IN PSURFOBJ SurfObj,
949 IN PXFORMOBJ XFormObj,
950 IN PBRUSHOBJ StrokeBrush,
951 IN PLINEATTRS LineAttrs,
952 IN PBRUSHOBJ FillBrush,
957 DrvStrokePath(IN PSURFOBJ SurfObj,
959 IN PCLIPOBJ PClipObj,
960 IN PXFORMOBJ XFormObj,
961 IN PBRUSHOBJ BrushObj,
963 IN PLINEATTRS LineAttrs,
966 DrvSynchronize(IN DHPDEV PDev,
969 DrvTextOut(IN PSURFOBJ SurfObj,
974 IN PRECTL OpaqueRect,
975 IN PBRUSHOBJ ForegroundBrush,
976 IN PBRUSHOBJ OpaqueBrush,
980 DrvTransparentBlt(PSURFOBJ Dest,
983 PXLATEOBJ ColorTranslation,
986 ULONG TransparentColor,
989 DrvUnloadFontFile(IN ULONG FileNumber);
991 /* DDI --> GDI calls */
993 BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj,
996 BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj);
999 CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj,
1001 OUT ULONG *EnumRects);
1004 CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj,
1005 IN BOOL ShouldDoAll,
1007 IN ULONG BuildOrder,
1011 CLIPOBJ_ppoGetPath(PCLIPOBJ ClipObj);
1017 /* FIXME: find correct defines for following symbols */
1018 #define FL_ZERO_MEMORY 1
1021 EngAllocMem(ULONG Flags,
1026 EngAllocUserMem(ULONG cj,
1030 EngAssociateSurface(IN HSURF Surface,
1035 EngBitBlt(SURFOBJ *Dest,
1038 CLIPOBJ *ClipRegion,
1039 XLATEOBJ *ColorTranslation,
1041 POINTL *SourcePoint,
1044 POINTL *BrushOrigin,
1053 EngCopyBits(SURFOBJ *Dest,
1056 XLATEOBJ *ColorTranslation,
1058 POINTL *SourcePoint);
1061 EngCreateBitmap(IN SIZEL Size,
1068 EngCreateClip(VOID);
1071 EngCreateDeviceBitmap(IN DHSURF Surface,
1076 EngCreateDeviceSurface(IN DHSURF Surface,
1078 IN ULONG FormatVersion);
1086 EngCreatePalette(IN ULONG Mode,
1100 EngDebugBreak(VOID);
1103 EngDebugPrint(PCHAR StandardPrefix,
1108 EngDeleteClip(CLIPOBJ *ClipRegion);
1116 EngDeletePalette(IN HPALETTE Palette);
1124 EngDeleteSurface(IN HSURF Surface);
1131 EngDeviceIoControl(HANDLE hDevice,
1132 DWORD dwIoControlCode,
1134 DWORD nInBufferSize,
1136 DWORD nOutBufferSize,
1137 DWORD *lpBytesReturned);
1144 EngEraseSurface(SURFOBJ *Surface,
1150 EngFindImageProcAddress
1155 EngFreeMem(PVOID Mem);
1162 EngFreeUserMem(PVOID pv);
1165 EngGetCurrentCodePage
1167 EngGetFileChangeTime
1173 EngGetPrinterDataFileName
1179 EngLineTo(SURFOBJ *Surface,
1190 EngLoadImage(LPWSTR DriverName);
1194 EngLoadModuleForWrite
1199 EngLockSurface(IN HSURF Surface);
1205 EngMarkBandingSurface
1207 EngMultiByteToUnicodeN
1208 EngMultiByteToWideChar
1211 INT STDCALL EngMulDiv(
1217 EngPaint(IN SURFOBJ *Surface,
1218 IN CLIPOBJ *ClipRegion,
1220 IN POINTL *BrushOrigin,
1225 EngProbeForReadAndWrite = NTOSKRNL.ProbeForWrite
1228 EngQueryPerformanceCounter
1229 EngQueryPerformanceFrequency
1231 EngRestoreFloatingPointState
1232 EngSaveFloatingPointState
1241 EngStrokeAndFillPath
1247 EngTransparentBlt(PSURFOBJ Dest,
1250 PXLATEOBJ ColorTranslation,
1253 ULONG TransparentColor,
1257 EngUnicodeToMultiByteN
1263 EngUnsecureMem = NTOSKRNL.MmUnsecureVirtualMemory
1264 EngWaitForSingleObject
1265 EngWideCharToMultiByte
1269 FLOATOBJ_AddFloatObj
1273 FLOATOBJ_DivFloatObj
1279 FLOATOBJ_GreaterThan
1280 FLOATOBJ_GreaterThanLong
1282 FLOATOBJ_LessThanLong
1285 FLOATOBJ_MulFloatObj
1292 FLOATOBJ_SubFloatObj
1296 ULONG FONTOBJ_cGetAllGlyphHandles(IN PFONTOBJ FontObj,
1298 ULONG FONTOBJ_cGetGlyphs(IN PFONTOBJ FontObj,
1301 IN HGLYPH *GlyphHandles,
1302 IN PVOID *OutGlyphs);
1303 PGAMMA_TABLES FONTOBJ_pGetGammaTables(IN PFONTOBJ FontObj);
1304 IFIMETRICS *FONTOBJ_pifi(IN PFONTOBJ FontObj);
1305 PVOID FONTOBJ_pvTrueTypeFontFile(IN PFONTOBJ FontObj,
1306 IN ULONG *FileSize);
1307 XFORMOBJ *FONTOBJ_pxoGetXform(IN PFONTOBJ FontObj);
1308 VOID FONTOBJ_vGetInfo(IN PFONTOBJ FontObj,
1310 OUT PFONTINFO FontInfo);
1313 HT_ComputeRGBGammaTable
1314 HT_Get8BPPFormatPalette
1318 PALOBJ_cGetColors(PALOBJ *PalObj,
1321 ULONG *PaletteEntry);
1324 PATHOBJ_bCloseFigure
1326 PATHOBJ_bEnumClipLines
1328 PATHOBJ_bPolyBezierTo
1331 PATHOBJ_vEnumStartClipLines
1333 RtlAnsiCharToUnicodeChar = NTOSKRNL.RtlAnsiCharToUnicodeChar
1334 RtlMultiByteToUnicodeN = NTOSKRNL.RtlMultiByteToUnicodeN
1335 RtlRaiseException = NTOSKRNL.RtlRaiseException
1336 RtlUnicodeToMultiByteN = NTOSKRNL.RtlUnicodeToMultiByteN
1337 RtlUnicodeToMultiByteSize = NTOSKRNL.RtlUnicodeToMultiByteSize
1338 RtlUnwind = NTOSKRNL.RtlUnwind
1339 RtlUpcaseUnicodeChar = NTOSKRNL.RtlUpcaseUnicodeChar
1340 RtlUpcaseUnicodeToMultiByteN = NTOSKRNL.RtlUpcaseUnicodeToMultiByteN
1342 STROBJ_dwGetCodePage
1347 XFORMOBJ_bApplyXform
1348 XFORMOBJ_iGetFloatObjXform
1353 XLATEOBJ_cGetPalette(XLATEOBJ *XlateObj,
1359 XLATEOBJ_iXlate(XLATEOBJ *XlateObj,
1363 XLATEOBJ_piVector(XLATEOBJ *XlateObj);