From 2a874266315f030b52995e116f430490f49c937e Mon Sep 17 00:00:00 2001 From: Rex Jolliff Date: Fri, 21 May 1999 07:50:04 +0000 Subject: [PATCH] more additions to DDI interface svn path=/trunk/; revision=500 --- reactos/include/ddk/winddi.h | 760 ++++++++++++++++++++++++++--------- 1 file changed, 579 insertions(+), 181 deletions(-) diff --git a/reactos/include/ddk/winddi.h b/reactos/include/ddk/winddi.h index 838b90feabb..5175849edc7 100644 --- a/reactos/include/ddk/winddi.h +++ b/reactos/include/ddk/winddi.h @@ -4,11 +4,276 @@ #include +/* EngCreateBitmap format types */ +enum _BMF_TYPES +{ + BMF_1BPP = 1, + BMF_4BPP, + BMF_8BPP, + BMF_16BPP, + BMF_24BPP, + BMF_32BPP, + BMF_4RLE, + BMF_8RLE +}; + +#define BMF_TOPDOWN 0x00000001 +#define BMF_NOZEROINIT 0x00000002 +#define BMF_DONTCACHE 0x00000004 +#define BMF_USERMEM 0x00000008 +#define BMF_KMSECTION 0x00000010 + +/* Options for CLIPOBJ_cEnumStart BuildOrder field */ +enum _CD_ORDERS +{ + CD_RIGHTDOWN, + CD_LEFTDOWN, + CD_RIGHTUP, + CD_LEFTUP, + CD_ANY +}; + +/* Options for CLIPOBJ_cEnumStart Type field */ +#define CT_RECTANGLE 1 + +#define DCR_SOLID 0 +#define DCR_DRIVER 1 +#define DCR_HALFTONE 2 + +#define DMMAXDEVICENAME 32 +#define DMMAXFORMNAME 32 + +#define DM_DEFAULT 0x00000001 +#define DM_MONOCHROME 0x00000002 + +#define ED_ABORTDOC 0x00000001 + +enum _ESCAPE_CODES +{ + ESC_PASSTHROUGH, + ESC_QUERYESCSUPPORT +}; + +#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_PID_EMBEDDED 0x00004000 +#define FM_INFO_RETURNS_OUTLINES 0x00008000 +#define FM_INFO_RETURNS_STROKES 0x00010000 +#define FM_INFO_RETURNS_BITMAPS 0x00020000 +#define FM_INFO_UNICODE_COMPLIANT 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_TID_EMBEDDED 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 FM_SEL_ITALIC 0x00000001 +#define FM_SEL_UNDERSCORE 0x00000002 +#define FM_SEL_NEGATIVE 0x00000004 +#define FM_SEL_OUTLINED 0x00000008 +#define FM_SEL_STRIKEOUT 0x00000010 +#define FM_SEL_BOLD 0x00000020 +#define FM_SEL_REGULAR 0x00000040 + +#define FM_TYPE_LICENSED 0x00000002 +#define FM_READONLY_EMBED 0x00000004 +#define FM_EDITABLE_EMBED 0x00000008 +#define FM_NO_EMBEDDING 0x00000002 + +#define FO_TYPE_RASTER RASTER_FONTTYPE +#define FO_TYPE_DEVICE DEVICE_FONTTYPE +#define FO_TYPE_TRUETYPE TRUETYPE_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 + +enum _FP_MODES +{ + FP_ALTERNATEMODE = 1, + FP_WINDINGMODE +}; + +enum _GLYPH_MODE +{ + FO_HGLYPHS, + FO_GLYPHBITS, + FO_PATHOBJ +}; + +/* EngAssocateSurface hook flags */ +#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_SYNCHRONIZE 0x00001000 +#define HOOK_SYNCHRONIZEACCESS 0x00004000 + +enum _DRV_HOOK_FUNCS +{ + INDEX_DrvEnablePDEV, + INDEX_DrvCompletePDEV, + INDEX_DrvDisablePDEV, + INDEX_DrvEnableSurface, + INDEX_DrvDisableSurface, + INDEX_DrvAssertMode, + INDEX_DrvResetPDEV = 7, + INDEX_DrvCreateDeviceBitmap = 10, + INDEX_DrvDeleteDeviceBitmap, + INDEX_DrvRealizeBrush, + INDEX_DrvDitherColor, + INDEX_DrvStrokePath, + INDEX_DrvFillPath, + INDEX_DrvStrokeAndFillPath, + INDEX_DrvPaint + INDEX_DrvBitBlt, + INDEX_DrvCopyBits, + INDEX_DrvStretchBlt, + INDEX_DrvSetPalette = 22, + INDEX_DrvTextOut, + INDEX_DrvEscape, + INDEX_DrvDrawEscape, + INDEX_DrvQueryFont, + INDEX_DrvQueryFontTree, + INDEX_DrvQueryFontData, + INDEX_DrvSetPointerShape, + INDEX_DrvMovePointer, + INDEX_DrvLineTo, + INDEX_DrvSendPage, + INDEX_DrvStartPage, + INDEX_DrvEndDoc, + INDEX_DrvStartDoc, + INDEX_DrvGetGlyphMode = 37, + INDEX_DrvSynchronize, + INDEX_DrvSaveScreenBits = 40, + INDEX_DrvGetModes, + INDEX_DrvFree, + INDEX_DrvDestroyFont, + INDEX_DrvQueryFontCaps, + INDEX_DrvLoadFontFile, + INDEX_DrvUnloadFontFile, + INDEX_DrvFontManagement, + INDEX_DrvQueryTrueTypeTable, + INDEX_DrvQueryTrueTypeOutline, + INDEX_DrvGetTrueTypeFile, + INDEX_DrvQueryFontFile, + INDEX_DrvQueryAdvanceWidths = 53, + INDEX_DrvSetPixelFormat, + INDEX_DrvDescribePixelFormat, + INDEX_DrvSwapBuffers, + INDEX_DrvStartBanding, + INDEX_DrvNextBand, + INDEX_DrvGetDirectDrawInfo, + INDEX_DrvEnableDirectDraw, + INDEX_DrvDisableDirectDraw, + INDEX_DrvQuerySpoolType, + INDEX_LAST +}; + +/* EngCreatePalette mode types */ +#define PAL_INDEXED 0x00000001 +#define PAL_BITFIELDS 0x00000002 +#define PAL_RGB 0x00000004 +#define PAL_BGR 0x00000008 + +enum _QUERY_ADVANCE_WIDTH_TYPES +{ + QAW_GETWIDTHS = 1, + QAW_GETEASYWIDTHS +}; + +#define QC_OUTLINES 0x00000001 +#define QC_1BIT 0x00000002 +#define QC_4BIT 0x00000004 + +enum _QFF_MODES +{ + QFF_DESCRIPTION = 1, + QFF_NUMFACES +}; + +#define RB_DITHERCOLOR 0x80000000 + +enum _SPS_RC +{ + SPS_ERROR, + SPS_DECLINE, + SPS_ACCEPT_NOEXCLUDE, + SPS_ACCEPT_EXCLUDE +}; + +#define SPS_CHANGE 0x00000001L +#define SPS_ASYNCCHANGE 0x00000002L +#define SPS_ANIMATESTART 0x00000004L +#define SPS_ANIMATEUPDATE 0x00000008L + +#define SS_SAVE 0 +#define SS_RESTORE 1 +#define SS_FREE 2 + +enum _SURF_TYPES +{ + STYPE_BITMAP = 1, + STYPE_DEVICE, + STYPE_DEVBITMAP +}; + +#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 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 + +enum _WIN_CHARSET +{ + ANSI_CHARSET = 1, + SYMBOL_CHARSET, + SHIFTJIS_CHARSET, + HANGEUL_CHARSET, + CHINESEBIG5_CHARSET, + OEM_CHARSET +}; + typedef HANDLE HDEV; - typedef HANDLE DHPDEV; - typedef ULONG (*PFN)(); +typedef VOID (CALLBACK * WNDOBJCHANGEPROC)(PWNDOBJ WndObj, ULONG Flags); typedef struct _DRVFN { @@ -41,9 +306,6 @@ typedef struct _DEVINFO HPALETTE hpalDefault; } DEVINFO, *PDEVINFO; -#define DMMAXDEVICENAME 32 -#define DMMAXFORMNAME 32 - typedef struct _DEVMODEW { WCHAR dmDeviceName[DMMAXDEVICENAME]; @@ -173,7 +435,10 @@ typedef struct _IFIMETRICS PANOSE panose; } IFIMETRICS, *PIFIMETRICS; - +typedef struct _PALOBJ +{ + ULONG ulReserved; +} PALOBJ, *PPALOBJ; typedef struct _PATHOBJ { @@ -208,186 +473,12 @@ typedef struct _XLATEOBJ ULONG *pulXlate; } XLATEOBJ, *PXLATEOBJ; -/* Options for CLIPOBJ_cEnumStart Type field */ -#define CT_RECTANGLE 1 - -/* Options for CLIPOBJ_cEnumStart BuildOrder field */ -enum _CD_ORDERS -{ - CD_RIGHTDOWN = 1, - CD_LEFTDOWN, - CD_RIGHTUP, - CD_LEFTUP, - CD_ANY -}; - -/* EngAssocateSurface hook flags */ -#define HOOK_BITBLT 0x00000001 -#define HOOK_STRETCHBLT 0x00000002 -#define HOOK_TEXTOUT 0x00000004 -#define HOOK_PAINT 0x00000008 -#define HOOK_STROKEPATH 0x00000010 -#define HOOK_FILLPATH 0x00000020 -#define HOOK_STROKEANDFILLPATH 0x00000040 -#define HOOK_LINETO 0x00000080 -#define HOOK_COPYBITS 0x00000100 -#define HOOK_SYNCHRONIZE 0x00000200 -#define HOOK_SYNCHRONIZEACCESS 0x00000400 - -/* EngCreateBitmap format types */ -enum _BMF_TYPES -{ - BMF_1BPP = 1, - BMF_4BPP, - BMF_8BPP, - BMF_16BPP, - BMF_24BPP, - BMF_32BPP, - BMF_4RLE, - BMF_8RLE -}; - -#define RASTER_FONTTYPE 0x00000001 -#define DEVICE_FONTTYPE 0x00000002 -#define TRUETYPE_FONTTYPE 0x00000004 -#define FO_SIM_ITALIC 0x00000008 -#define FO_SIM_BOLD 0x00000010 -#define FO_EM_HEIGHT 0x00000020 -#define FO_4_LEVEL 0x00000040 -#define FO_16_LEVEL 0x00000080 -#define FO_64_LEVEL 0x00000100 - -enum _SURF_TYPES -{ - STYPE_BITMAP = 1, - STYPE_DEVICE, - STYPE_DEVBITMAP -}; - -#define BMF_TOPDOWN 0x00000001 -#define BMF_NOZEROINIT 0x00000002 -#define BMF_USERMEM 0x00000004 - -/* EngCreatePalette mode types */ -enum _PAL_TYPES -{ - PAL_INDEXED = 1, - PAL_BITFIELDS, - PAL_RGB, - PAL_BGR -}; - -enum _DITHER_COLOR_MODES -{ - DM_DEFAULT, - DM_MONOCHROME -}; - -enum _ESCAPE_CODES -{ - ESC_PASSTHROUGH, - ESC_QUERYESCSUPPORT -}; - -enum _END_DOC_FLAGS -{ - ED_ABORTDOC -}; - -#define FP_WINDINGMODE 0x00000001 -#define FP_ALTERNATEMODE 0x00000002 - -enum _GLYPH_MODE -{ - FO_GLYPHBITS = 1, - FO_HGLYPHS, - FO_PATHOBJ -}; - -enum _QUERY_ADVANCE_WIDTH_TYPES -{ - QAW_GETWIDTHS = 1, - QAW_GETEASYWIDTHS -}; - -enum _WIN_CHARSET -{ - ANSI_CHARSET = 1, - SYMBOL_CHARSET, - SHIFTJIS_CHARSET, - HANGEUL_CHARSET, - CHINESEBIG5_CHARSET, - OEM_CHARSET -}; - -#define FIXED_PITCH 0x00000000 -#define VARIABLE_PITCH 0x00000001 -#define FF_DECORATIVE 0x00000010 -#define FF_DONTCARE 0x00000020 -#define FF_MODERN 0x00000030 -#define FF_ROMAN 0x00000040 -#define FF_SCRIPT 0x00000050 -#define FF_SWISS 0x00000060 - -#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_1BBP 0x00000020 -#define FM_INFO_INTEGER_WIDTH 0x00000040 -#define FM_INFO_CONSTANT_WIDTH 0x00000080 -#define FM_INFO_NOT_CONTIGUOUS 0x00000100 -#define FM_INFO_PID_EMBEDDED 0x00000200 -#define FM_INFO_RETURNS_OUTLINES 0x00000400 -#define FM_INFO_RETURNS_STROKES 0x00000800 -#define FM_INFO_RETURNS_BITMAPS 0x00001000 -#define FM_INFO_UNICODE_COMPLIANT 0x00002000 -#define FM_INFO_RIGHT_HANDED 0x00004000 -#define FM_INFO_INTEGRAL_SCALING 0x00008000 -#define FM_INFO_90_DEGREE_ROTATIONS 0x00010000 -#define FM_INFO_OPTICALLY_FIXED_PITCH 0x00020000 -#define FM_INFO_DO_NOT_ENUMERATE 0x00040000 -#define FM_INFO_ISOTROPIC_SCALING_ONLY 0x00080000 -#define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x00100000 -#define FM_INFO_TID_EMBEDDED 0x00200000 -#define FM_INFO_FAMILY_EQUIV 0x00400000 -#define FM_INFO_DBCS_FIXED_PITCH 0x00800000 -#define FM_INFO_NONNEGATIVE_AC 0x01000000 -#define FM_INFO_IGNORE_TC_RA_ABLE 0x02000000 - -#define FM_SEL_ITALIC 0x00000001 -#define FM_SEL_UNDERSCORE 0x00000002 -#define FM_SEL_NEGATIVE 0x00000004 -#define FM_SEL_OUTLINED 0x00000008 -#define FM_SEL_STRIKEOUT 0x00000010 -#define FM_SEL_BOLD 0x00000020 -#define FM_SEL_REGULAR 0x00000040 - -#define FM_TYPE_LICENSED 0x00000001 -#define FM_READONLY_EMBED 0x00000002 -#define FM_EDITABLE_EMBED 0x00000004 - /* * Functions Prefixed with Drv are calls made from GDI to DDI, and * everything else are calls made from DDI to GDI. DDI is * not allowed to make calls to any other kernel or user modules. */ -/* DDI --> GDI calls */ -PVOID BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj, - IN ULONG ObjSize); -PVOID BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj); -BOOL CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj, - IN ULONG ObjSize, - OUT ULONG *EnumRects); -ULONG CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj, - IN BOOL ShouldDoAll, - IN ULONG ClipType, - IN ULONG BuildOrder, - IN ULONG MaxRects); -PPATHOBJ CLIPOBJ_ppoGetPath(PCLIPOBJ ClipObj); - /* GDI --> DDI calls */ VOID DrvAssertMode(IN DHPDEV PDev, IN BOOL ShouldEnable); @@ -419,6 +510,7 @@ LONG DrvDescribePixelFormat(IN DHPDEV DPev, IN ULONG DescriptorSize, OUT PPIXELFORMATDESCRIPTOR PFD); VOID DrvDestroyFont(IN PFONTOBJ FontObj); +VOID DrvDisableDirectDraw(IN DHPDEV PDev); VOID DrvDisableDriver(VOID); VOID DrvDisablePDEV(IN DHPDEV PDev); VOID DrvDisableSurface(IN DHPDEV PDev); @@ -432,6 +524,10 @@ ULONG DrvDrawEscape(IN PSURFOBJ SurfObj, IN PRECTL RectL, IN ULONG InputSize, IN PVOID *InputData); +BOOL DrvEnableDirectDraw(IN DHPDEV PDev, + IN PDD_CALLBACKS Callbacks, + IN PDD_SURFACECALLBACKS SurfaceCallbacks, + IN PDD_PALETTECALLBACKS PaletteCallbacks); BOOL DrvEnableDriver(IN ULONG Version, IN ULONG DEDSize, OUT PDRVENABLEDATA DED); @@ -471,6 +567,12 @@ ULONG DrvFontManagement(IN PSURFOBJ SurfObj, OUT PVOID OutputData); VOID DrvFree(IN PVOID Obj, IN ULONG ID); +BOOL DrvGetDirectDrawInfo(IN DHPDEV PDev, + IN PDD_HALINFO HalInfo, + IN PDWORD NumHeaps, + IN PVIDEOMEMORY List, + IN PDWORD NumFourCCCodes, + IN PDWORD FourCC); ULONG DrvGetGlyphMode(IN DHPDEV DPev, IN PFONTOBJ FontObj); ULONG DrvGetModes(IN HANDLE Driver, @@ -521,24 +623,320 @@ LONG DrvQueryFontData(IN DHPDEV DPev, IN PGLYPHDATA GlyphData, IN PVOID DataBuffer, IN ULONG BufferSize); - +LONG DrvQueryFontFile(IN ULONG FileNumber, + IN ULONG Mode, + IN ULONG BufSize, + OUT PULONG Buf); +PVOID DrvQueryFontTree(IN DHPDEV PDev, + IN ULONG FileNumber, + IN ULONG FaceIndex, + IN ULONG Mode, + OUT ULONG *ID); +BOOL DrvQuerySpoolType(DHPDEV PDev, + LPWSTR SpoolType); +LONG DrvQueryTrueTypeOutline(IN DHPDEV PDev, + IN PFONTOBJ FontObj, + IN HGLYPH Glyph, + IN BOOL MetricsOnly, + IN PGLYPHDATA GlyphData, + IN ULONG BufSize, + OUT PTTPOLYGONHEADER Polygons); +LONG DrvQueryTrueTypeTable(IN ULONG FileNumber, + IN ULONG Font, + IN ULONG Tag, + IN PTRDIFF Start, + IN ULONG BufSize, + OUT BYTE *Buf); +BOOL DrvRealizeBrush(IN PBRUSHOBJ BrushObj, + IN PSURFOBJ TargetSurface, + IN PSURFOBJ PatternSurface, + IN PSURFOBJ MaskSurface, + IN PXLATEOBJ XLateObj, + IN ULONG iHatch); +BOOL DrvResetPDEV(IN DHPDEV PDevOld, + IN DHPDEV PDevNew); +ULONG DrvSaveScreenBits(IN PSURFOBJ SurfObj, + IN ULONG Mode, + IN ULONG ID, + IN PRECTL RectL); +BOOL DrvSendPage(IN PSURFOBJ SurfObj); +BOOL DrvSetPalette(IN DHPDEV PDev, + IN PPALOBJ PaletteObj, + IN ULONG Flags, + IN ULONG Start, + IN ULONG NumColors); +ULONG DrvSetPointerShape(IN PSURFOBJ SurfObj, + IN PSURFOBJ MaskSurface, + IN PSURFOBJ ColorSurface, + IN PXLATEOBJ XLateObj, + IN LONG xHot, + IN LONG yHot, + IN LONG x, + IN LONG y, + IN PRECTL RectL, + IN ULONG Flags); +BOOL DrvStartBanding(IN PSURFOBJ SurfObj, + IN PPOINTL PointL); +BOOL DrvStartDoc(IN PSURFOBJ SurfObj, + IN LPWSTR DocName, + IN DWORD JobID); +BOOL DrvStartPage(IN PSURFOBJ SurfObj); +BOOL DrvStretchBlt(IN PSURFOBJ DestSurface, + IN PSURFOBJ SrcSurface, + IN PSURFOBJ MaskSurface, + IN PCLIPOBJ ClipObj, + IN PXLATEOBJ XLateObj, + IN PCOLORADJUSTMENT CA, + IN PPOINTL HTOrg, + IN PRECTL Dest, + IN PRECTL Src, + IN PPOINTL Mask, + IN ULONG Mode); +BOOL DrvStrokeAndFillPath(IN PSURFOBJ SurfObj, + IN PPATHOBJ PathObj, + IN PCLIPOBJ ClipObj, + IN PXFORMOBJ XFormObj, + IN PBRUSHOBJ StrokeBrush, + IN PLINEATTRS LineAttrs, + IN PBRUSHOBJ FillBrush, + IN PPOINTL BrushOrg, + IN MIX MixFill, + IN ULONG Options); +BOOL DrvStrokePath(IN PSURFOBJ SurfObj, + IN PPATHOBJ PathObj, + IN PCLIPOBJ PClipObj, + IN PXFORMOBJ XFormObj, + IN PBRUSHOBJ BrushObj, + IN PPOINTL BrushOrg, + IN PLINEATTRS LineAttrs, + IN MIX Mix); +VOID DrvSynchronize(IN DHPDEV PDev, + IN PRECTL RectL); +BOOL DrvTextOut(IN PSURFOBJ SurfObj, + IN PSTROBJ StrObj, + IN PFONTOBJ FontObj, + IN PCLIPOBJ ClipObj, + IN PRECTL ExtraRect, + IN PRECTL OpaqueRect, + IN PBRUSHOBJ ForegroundBrush, + IN PBRUSHOBJ OpaqueBrush, + IN PPOINTL OrgPoint, + IN MIX Mix); +BOOL DrvUnloadFontFile(IN ULONG FileNumber); + +/* DDI --> GDI calls */ +PVOID BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj, + IN ULONG ObjSize); +PVOID BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj); +BOOL CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj, + IN ULONG ObjSize, + OUT ULONG *EnumRects); +ULONG CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj, + IN BOOL ShouldDoAll, + IN ULONG ClipType, + IN ULONG BuildOrder, + IN ULONG MaxRects); +PPATHOBJ CLIPOBJ_ppoGetPath(PCLIPOBJ ClipObj); + +/* +EngAcquireSemaphore +EngAllocMem +EngAllocUserMem +*/ BOOL EngAssociateSurface(IN HSURF Surface, IN HDEV Dev, IN ULONG Hooks); + +/* +EngBitBlt +EngCheckAbort +EngComputeGlyphSet +EngCopyBits +*/ + HBITMAP EngCreateBitmap(IN SIZEL Size, IN LONG Width, IN ULONG Format, IN ULONG Flags, IN PVOID Bits); + +/* +EngCreateClip +EngCreateDeviceBitmap +*/ + HSURF EngCreateDeviceSurface(IN DHSURF Surface, IN SIZEL Size, IN ULONG FormatVersion); + +/* +EngCreateDriverObj +EngCreateEvent +*/ + HPALETTE EngCreatePalette(IN ULONG Mode, IN ULONG Colors, IN PULONG *Colors, IN ULONG Red, IN ULONG Green, IN ULONG Blue); +/* +EngCreatePath +EngCreateSemaphore +EngCreateWnd +EngDebugBreak = NTOSKRNL.DbgBreakPoint +EngDebugPrint +EngDeleteClip +EngDeleteDriverObj +EngDeleteEvent +EngDeletePalette +EngDeletePath +EngDeleteSemaphore +EngDeleteSurface +EngDeleteWnd +EngDeviceIoControl +EngEnumForms +EngEraseSurface +EngFillPath +EngFindImageProcAddress +EngFindResource +EngFreeMem +EngFreeModule +EngFreeUserMem +EngGetCurrentCodePage +EngGetDriverName +EngGetFileChangeTime +EngGetFilePath +EngGetForm +EngGetLastError +EngGetPrinter +EngGetPrinterData +EngGetPrinterDataFileName +EngGetProcessHandle +EngGetType1FontList +EngLineTo +EngLoadImage +EngLoadModule +EngLoadModuleForWrite +EngLockDriverObj +EngLockSurface +EngMapEvent +EngMapFontFile +EngMapModule +EngMarkBandingSurface +EngMovePointer +EngMulDiv +EngMultiByteToUnicodeN +EngMultiByteToWideChar +EngPaint +EngProbeForRead +EngProbeForReadAndWrite = NTOSKRNL.ProbeForWrite +EngQueryLocalTime +EngQueryPalette +EngQueryPerformanceCounter +EngQueryPerformanceFrequency +EngReleaseSemaphore +EngRestoreFloatingPointState +EngSaveFloatingPointState +EngSecureMem +EngSetEvent +EngSetLastError +EngSetPointerShape +EngSetPointerTag +EngSetPrinterData +EngSort +EngStretchBlt +EngStrokeAndFillPath +EngStrokePath +EngTextOut +EngUnicodeToMultiByteN +EngUnloadImage +EngUnlockDriverObj +EngUnlockSurface +EngUnmapEvent +EngUnmapFontFile +EngUnsecureMem = NTOSKRNL.MmUnsecureVirtualMemory +EngWaitForSingleObject +EngWideCharToMultiByte +EngWritePrinter +FLOATOBJ_Add +FLOATOBJ_AddFloat +FLOATOBJ_AddFloatObj +FLOATOBJ_AddLong +FLOATOBJ_Div +FLOATOBJ_DivFloat +FLOATOBJ_DivFloatObj +FLOATOBJ_DivLong +FLOATOBJ_Equal +FLOATOBJ_EqualLong +FLOATOBJ_GetFloat +FLOATOBJ_GetLong +FLOATOBJ_GreaterThan +FLOATOBJ_GreaterThanLong +FLOATOBJ_LessThan +FLOATOBJ_LessThanLong +FLOATOBJ_Mul +FLOATOBJ_MulFloat +FLOATOBJ_MulFloatObj +FLOATOBJ_MulLong +FLOATOBJ_Neg +FLOATOBJ_SetFloat +FLOATOBJ_SetLong +FLOATOBJ_Sub +FLOATOBJ_SubFloat +FLOATOBJ_SubFloatObj +FLOATOBJ_SubLong +*/ +ULONG FONTOBJ_cGetAllGlyphHandles(IN PFONTOBJ FontObj, + IN HGLYPH *Glyphs); +ULONG FONTOBJ_cGetGlyphs(IN PFONTOBJ FontObj, + IN ULONG Mode, + IN ULONG NumGlyphs, + IN HGLYPH *GlyphHandles, + IN PVOID *OutGlyphs); +GAMMA_TABLES *FONTOBJ_pGetGammaTables(IN PFONTOBJ FontObj); +IFIMETRICS *FONTOBJ_pifi(IN PFONTOBJ FontObj); +PVOID FONTOBJ_pvTrueTypeFontFile(IN PFONTOBJ FontObj, + IN ULONG *FileSize); +XFORMOBJ *FONTOBJ_pxoGetXform(IN PFONTOBJ FontObj); +VOID FONTOBJ_vGetInfo(IN PFONTOBJ FontObj, + IN ULONG InfoSize, + OUT PFONTINFO FontInfo); + +/* +HT_ComputeRGBGammaTable +HT_Get8BPPFormatPalette +PALOBJ_cGetColors +PATHOBJ_bCloseFigure +PATHOBJ_bEnum +PATHOBJ_bEnumClipLines +PATHOBJ_bMoveTo +PATHOBJ_bPolyBezierTo +PATHOBJ_bPolyLineTo +PATHOBJ_vEnumStart +PATHOBJ_vEnumStartClipLines +PATHOBJ_vGetBounds +RtlAnsiCharToUnicodeChar = NTOSKRNL.RtlAnsiCharToUnicodeChar +RtlMultiByteToUnicodeN = NTOSKRNL.RtlMultiByteToUnicodeN +RtlRaiseException = NTOSKRNL.RtlRaiseException +RtlUnicodeToMultiByteN = NTOSKRNL.RtlUnicodeToMultiByteN +RtlUnicodeToMultiByteSize = NTOSKRNL.RtlUnicodeToMultiByteSize +RtlUnwind = NTOSKRNL.RtlUnwind +RtlUpcaseUnicodeChar = NTOSKRNL.RtlUpcaseUnicodeChar +RtlUpcaseUnicodeToMultiByteN = NTOSKRNL.RtlUpcaseUnicodeToMultiByteN +STROBJ_bEnum +STROBJ_dwGetCodePage +STROBJ_vEnumStart +WNDOBJ_bEnum +WNDOBJ_cEnumStart +WNDOBJ_vSetConsumer +XFORMOBJ_bApplyXform +XFORMOBJ_iGetFloatObjXform +XFORMOBJ_iGetXform +XLATEOBJ_cGetPalette +XLATEOBJ_iXlate +XLATEOBJ_piVector +*/