X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=include%2Fddk%2Fwinddi.h;h=c3dde720d8f06f2c47e67817599d8790977eaba2;hp=9d18363075fa374df17a27b039f92239b5e5f059;hb=HEAD;hpb=7c0db166f81fbe8c8b913d7f26048e337d383605 diff --git a/include/ddk/winddi.h b/include/ddk/winddi.h index 9d18363..c3dde72 100644 --- a/include/ddk/winddi.h +++ b/include/ddk/winddi.h @@ -16,6 +16,7 @@ #else #include #endif +#include #ifndef IN #define IN @@ -27,27 +28,54 @@ typedef DWORD PTRDIFF; #endif -#define GDI_DRIVER_VERSION 0x4000 // NT 4 compatibility - -/* FIXME: find definitions for these structs */ -typedef PVOID PCOLORADJUSTMENT; -typedef PVOID PDD_CALLBACKS; -typedef PVOID PDD_HALINFO; -typedef PVOID PDD_PALETTECALLBACKS; -typedef PVOID PDD_SURFACECALLBACKS; -typedef PVOID PFONTINFO; -typedef PVOID PGAMMA_TABLES; -typedef PVOID PGLYPHDATA; -typedef PVOID PLINEATTRS; -typedef DWORD MIX; -typedef DWORD ROP4; -typedef PVOID PSTROBJ; -typedef PVOID PTTPOLYGONHEADER; -typedef PVOID PVIDEOMEMORY; +#define DDI_DRIVER_VERSION_NT4 0x20000 +#define DDI_DRIVER_VERSION_SP3 0x20003 +#define DDI_DRIVER_VERSION_NT5 0x30000 +#define DDI_DRIVER_VERSION_NT5_01 0x30100 +#define GDI_DRIVER_VERSION 0x4000 /* NT 4 compatibility */ + +typedef DDHAL_DDCALLBACKS *PDD_CALLBACKS; +typedef DDHALINFO *PDD_HALINFO; +typedef DDHAL_DDPALETTECALLBACKS *PDD_PALETTECALLBACKS; +typedef DDHAL_DDSURFACECALLBACKS *PDD_SURFACECALLBACKS; +typedef struct _VIDEOMEMORY +{ + DWORD dwFlags; + FLATPTR fpStart; + union + { + FLATPTR fpEnd; + DWORD dwWidth; + }; + DDSCAPS ddsCaps; + DDSCAPS ddsCapsAlt; + union + { + struct _VMEMHEAP *lpHeap; + DWORD dwHeight; + }; +} VIDEOMEMORY, *PVIDEOMEMORY; + +typedef struct _FONTINFO +{ + ULONG cjThis; + FLONG flCaps; + ULONG cGlyphsSupported; + ULONG cjMaxGlyph1; + ULONG cjMaxGlyph4; + ULONG cjMaxGlyph8; + ULONG cjMaxGlyph32; +} FONTINFO, *PFONTINFO; + +typedef BYTE GAMMA_TABLES[2][256]; +typedef GAMMA_TABLES *PGAMMA_TABLES; +typedef COLORADJUSTMENT *PCOLORADJUSTMENT; + +typedef ULONG MIX; +typedef ULONG ROP4; #define DDI_DRIVER_VERSION 0x00010000 -/* FIXME: how big should this constant be? */ #define HS_DDI_MAX 6 /* XLate types */ @@ -69,7 +97,9 @@ enum _BMF_TYPES BMF_24BPP, BMF_32BPP, BMF_4RLE, - BMF_8RLE + BMF_8RLE, + BMF_JPEG, + BMF_PNG }; #define BMF_TOPDOWN 0x00000001 @@ -77,6 +107,10 @@ enum _BMF_TYPES #define BMF_DONTCACHE 0x00000004 #define BMF_USERMEM 0x00000008 #define BMF_KMSECTION 0x00000010 +#define BMF_NOTSYSMEM 0x0020 +#define BMF_WINDOW_BLT 0x0040 +#define BMF_UMPDMEM 0x0080 +#define BMF_RESERVED 0xFF00 #define DC_TRIVIAL 0 #define DC_RECT 1 @@ -190,6 +224,13 @@ enum _FP_MODES FP_WINDINGMODE }; +typedef struct _FD_GLYPHATTR { + ULONG cjThis; + ULONG cGlyphs; + ULONG iMode; + BYTE aGlyphAttr[1]; +} FD_GLYPHATTR, *PFD_GLYPHATTR; + enum _GLYPH_MODE { FO_HGLYPHS, @@ -197,7 +238,7 @@ enum _GLYPH_MODE FO_PATHOBJ }; -// Allowed values for GDIINFO.ulPrimaryOrder. +/* Allowed values for GDIINFO.ulPrimaryOrder. */ #define PRIMARY_ORDER_ABC 0 #define PRIMARY_ORDER_ACB 1 @@ -206,7 +247,7 @@ enum _GLYPH_MODE #define PRIMARY_ORDER_CBA 4 #define PRIMARY_ORDER_CAB 5 -// Allowed values for GDIINFO.ulHTPatternSize. +/* Allowed values for GDIINFO.ulHTPatternSize. */ #define HT_PATSIZE_2x2 0 #define HT_PATSIZE_2x2_M 1 @@ -227,7 +268,7 @@ enum _GLYPH_MODE #define HT_PATSIZE_MAX_INDEX HT_PATSIZE_16x16_M #define HT_PATSIZE_DEFAULT HT_PATSIZE_4x4_M -// Allowed values for GDIINFO.ulHTOutputFormat. +/* Allowed values for GDIINFO.ulHTOutputFormat. */ #define HT_FORMAT_1BPP 0 #define HT_FORMAT_4BPP 2 @@ -237,7 +278,7 @@ enum _GLYPH_MODE #define HT_FORMAT_24BPP 6 #define HT_FORMAT_32BPP 7 -// Allowed values for GDIINFO.flHTFlags. +/* Allowed values for GDIINFO.flHTFlags. */ #define HT_FLAG_SQUARE_DEVICE_PEL 0x00000001 #define HT_FLAG_HAS_BLACK_DYE 0x00000002 @@ -292,6 +333,7 @@ enum _DRV_HOOK_FUNCS INDEX_DrvDisableSurface, INDEX_DrvAssertMode, INDEX_DrvResetPDEV = 7, + INDEX_DrvDisableDriver, INDEX_DrvCreateDeviceBitmap = 10, INDEX_DrvDeleteDeviceBitmap, INDEX_DrvRealizeBrush, @@ -331,7 +373,8 @@ enum _DRV_HOOK_FUNCS INDEX_DrvQueryTrueTypeOutline, INDEX_DrvGetTrueTypeFile, INDEX_DrvQueryFontFile, - INDEX_DrvQueryAdvanceWidths = 53, + INDEX_DrvMovePanning, + INDEX_DrvQueryAdvanceWidths, INDEX_DrvSetPixelFormat, INDEX_DrvDescribePixelFormat, INDEX_DrvSwapBuffers, @@ -341,7 +384,35 @@ enum _DRV_HOOK_FUNCS INDEX_DrvEnableDirectDraw, INDEX_DrvDisableDirectDraw, INDEX_DrvQuerySpoolType, - INDEX_DrvTransparentBlt = 74, + INDEX_DrvIcmCreateColorTransform, + INDEX_DrvIcmDeleteColorTransform, + INDEX_DrvIcmCheckBitmapBits, + INDEX_DrvIcmSetDeviceGammaRamp, + INDEX_DrvGradientFill, + INDEX_DrvStretchBltROP, + INDEX_DrvPlgBlt, + INDEX_DrvAlphaBlend, + INDEX_DrvSynthesizeFont, + INDEX_DrvGetSynthesizedFontFiles, + INDEX_DrvTransparentBlt, + INDEX_DrvQueryPerBandInfo, + INDEX_DrvQueryDeviceSupport, + INDEX_DrvReserved1, + INDEX_DrvReserved2, + INDEX_DrvReserved3, + INDEX_DrvReserved4, + INDEX_DrvReserved5, + INDEX_DrvReserved6, + INDEX_DrvReserved7, + INDEX_DrvReserved8, + INDEX_DrvQueryGlyphAttrs, + INDEX_DrvNotify, + INDEX_DrvSynchronizeSurface, + INDEX_DrvResetDevice, + INDEX_DrvReserved9, + INDEX_DrvReserved10, + INDEX_DrvReserved11, + INDEX_DrvDeriveSurface = 85, INDEX_LAST }; @@ -432,8 +503,7 @@ typedef struct _DRVENABLEDATA DRVFN *pdrvfn; } DRVENABLEDATA, *PDRVENABLEDATA; -/* FIXME: replace this with correct def for LDECI4 */ -typedef DWORD LDECI4; +typedef LONG LDECI4; typedef struct _CIECHROMA { @@ -518,7 +588,7 @@ typedef struct _BRUSHOBJ { ULONG iSolidColor; PVOID pvRbrush; - + FLONG flColorType; /* remainder of fields are for GDI internal use */ LOGBRUSH logbrush; } BRUSHOBJ, *PBRUSHOBJ; @@ -539,6 +609,19 @@ typedef struct _ENUMRECTS RECTL arcl[1]; } ENUMRECTS, *PENUMRECTS; +typedef struct _BLENDOBJ +{ + BLENDFUNCTION BlendFunction; +}BLENDOBJ,*PBLENDOBJ; + +typedef struct +{ + DWORD nSize; + HDC hdc; + PBYTE pvEMF; + PBYTE pvCurrentRecord; +} EMFINFO, *PEMFINFO; + typedef struct _FONTOBJ { ULONG iUniq; @@ -616,7 +699,7 @@ typedef struct _IFIMETRICS PANOSE panose; } IFIMETRICS, *PIFIMETRICS; -#define NB_RESERVED_COLORS 20 // number of fixed colors in system palette +#define NB_RESERVED_COLORS 20 /* number of fixed colors in system palette */ typedef struct _XLATEOBJ { @@ -630,9 +713,10 @@ typedef struct _XLATEOBJ typedef struct _PALOBJ { + ULONG ulReserved; PXLATEOBJ logicalToSystem; int *mapping; - PLOGPALETTE logpalette; // _MUST_ be the last field + PLOGPALETTE logpalette; /* _MUST_ be the last field */ } PALOBJ, *PPALOBJ; typedef struct _PATHOBJ @@ -669,9 +753,178 @@ typedef VOID (CALLBACK * WNDOBJCHANGEPROC)(PWNDOBJ WndObj, ULONG Flags); typedef struct _XFORMOBJ { - /* FIXME: what does this beast look like? */ + ULONG ulReserved; } XFORMOBJ, *PXFORMOBJ; +typedef struct _GLYPHBITS +{ + POINTL ptlOrigin; + SIZEL sizlBitmap; + BYTE aj[1]; +} GLYPHBITS; + +typedef union _GLYPHDEF +{ + GLYPHBITS *pgb; + PATHOBJ *ppo; +} GLYPHDEF; + +typedef struct _POINTQF +{ + LARGE_INTEGER x; + LARGE_INTEGER y; +} POINTQF, *PPOINTQF; + +typedef struct _GLYPHDATA { + GLYPHDEF gdf; + HGLYPH hg; + FIX fxD; + FIX fxA; + FIX fxAB; + FIX fxInkTop; + FIX fxInkBottom; + RECTL rclInk; + POINTQF ptqD; +} GLYPHDATA, *PGLYPHDATA; + +typedef struct _GLYPHPOS +{ + HGLYPH hg; + GLYPHDEF *pgdf; + POINTL *ptl; +} GLYPHPOS, *PGLYPHPOS; + +typedef struct _STROBJ +{ + ULONG cGlyphs; + FLONG flAccel; + ULONG ulCharInc; + RECTL rclBkGround; + GLYPHPOS *pgp; + LPWSTR pwszOrg; +} STROBJ, *PSTROBJ; + +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; + +struct _DRIVEROBJ; + +typedef BOOL (CALLBACK * FREEOBJPROC) (struct _DRIVEROBJ* pDriverObj); + +typedef struct _DRIVEROBJ +{ + PVOID pvObj; + FREEOBJPROC pFreeProc; + HDEV hdev; + DHPDEV dhpdev; +} DRIVEROBJ; + +typedef struct _TYPE1_FONT +{ + HANDLE hPFM; + HANDLE hPFB; + ULONG ulIdentifier; +} TYPE1_FONT; + +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 _LINEATTRS +{ + FLONG fl; + ULONG iJoin; + ULONG iEndCap; + FLOAT_LONG elWidth; + FLOATL eMiterLimit; + ULONG cstyle; + PFLOAT_LONG pstyle; + FLOAT_LONG elStyleState; +} LINEATTRS, *PLINEATTRS; + +typedef struct _FLOATOBJ +{ + ULONG ul1, + ul2; +} FLOATOBJ, *PFLOATOBJ; + +typedef struct _POINTFIX +{ + FIX x, + y; +} POINTFIX; + +typedef struct _PATHDATA +{ + FLONG flags; + ULONG count; + POINTFIX *pptfx; +} PATHDATA, *PPATHDATA; + +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; + +typedef struct _RECTFX +{ + FIX xLeft, + yTop, + xRight, + yBottom; +} RECTFX, *PRECTFX; + +typedef struct +{ + FLOATOBJ eM11, + eM12, + eM21, + eM22, + eDx, + eDy; +} FLOATOBJ_XFORM, *PFLOATOBJ_XFORM, FAR *LPFLOATOBJ_XFORM; + +typedef struct _XFORML +{ + FLOATL eM11, + eM12, + eM21, + eM22, + eDx, + eDy; +} XFORML, *PXFORML; + /* * Functions Prefixed with Drv are calls made from GDI to DDI, and * everything else are calls made from DDI to GDI. DDI is @@ -682,6 +935,7 @@ typedef struct _XFORMOBJ BOOL STDCALL DrvAssertMode(IN DHPDEV PDev, IN BOOL ShouldEnable); + BOOL STDCALL DrvBitBlt(IN PSURFOBJ DestSurface, IN PSURFOBJ SrcSurface, @@ -751,10 +1005,10 @@ DrvEnablePDEV(IN DEVMODEW *DM, IN LPWSTR LogAddress, IN ULONG PatternCount, OUT HSURF *SurfPatterns, - IN ULONG CapsSize, - OUT ULONG *DevCaps, + IN ULONG GDIInfoSize, + OUT GDIINFO *GDIInfo, IN ULONG DevInfoSize, - OUT DEVINFO *DI, + OUT DEVINFO *DevInfo, IN LPWSTR DevDataFile, IN LPWSTR DeviceName, IN HANDLE Driver); @@ -1010,12 +1264,8 @@ CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj, PPATHOBJ STDCALL CLIPOBJ_ppoGetPath(PCLIPOBJ ClipObj); -/* -EngAcquireSemaphore -*/ - -/* FIXME: find correct defines for following symbols */ #define FL_ZERO_MEMORY 1 +#define FL_NONPAGED_MEMORY 2 PVOID STDCALL EngAllocMem(ULONG Flags, @@ -1045,7 +1295,6 @@ EngBitBlt(SURFOBJ *Dest, ROP4 rop4); /* -EngCheckAbort EngComputeGlyphSet */ @@ -1090,6 +1339,30 @@ EngCreatePalette(IN ULONG Mode, IN ULONG Green, IN ULONG Blue); +HSEMAPHORE +STDCALL +EngCreateSemaphore ( VOID ); + +VOID +STDCALL +EngAcquireSemaphore ( IN HSEMAPHORE hsem ); + +VOID +STDCALL +EngReleaseSemaphore ( IN HSEMAPHORE hsem ); + +VOID +STDCALL +EngDeleteSemaphore ( IN HSEMAPHORE hsem ); + +BOOL +STDCALL +EngIsSemaphoreOwned ( IN HSEMAPHORE hsem ); + +BOOL +STDCALL +EngIsSemaphoreOwnedByCurrentThread ( IN HSEMAPHORE hsem ); + /* EngCreatePath EngCreateSemaphore @@ -1115,11 +1388,6 @@ EngDeleteEvent BOOL STDCALL EngDeletePalette(IN HPALETTE Palette); -/* -EngDeletePath -EngDeleteSemaphore -*/ - BOOL STDCALL EngDeleteSurface(IN HSURF Surface); @@ -1146,7 +1414,6 @@ EngEraseSurface(SURFOBJ *Surface, ULONG iColor); /* -EngFillPath EngFindImageProcAddress EngFindResource */ @@ -1161,16 +1428,17 @@ EngFreeModule VOID STDCALL EngFreeUserMem(PVOID pv); +VOID STDCALL +EngGetCurrentCodePage(OUT PUSHORT OemCodePage, + OUT PUSHORT AnsiCodePage); + /* -EngGetCurrentCodePage -EngGetDriverName EngGetFileChangeTime EngGetFilePath EngGetForm EngGetLastError EngGetPrinter EngGetPrinterData -EngGetPrinterDataFileName EngGetProcessHandle EngGetType1FontList */ @@ -1190,7 +1458,6 @@ HANDLE STDCALL EngLoadImage(LPWSTR DriverName); /* -EngLoadModule EngLoadModuleForWrite EngLockDriverObj */ @@ -1202,16 +1469,20 @@ EngLockSurface(IN HSURF Surface); EngMapEvent EngMapFontFile EngMapModule -EngMarkBandingSurface EngMovePointer -EngMultiByteToUnicodeN -EngMultiByteToWideChar */ -INT STDCALL EngMulDiv( - INT nMultiplicand, - INT nMultiplier, - INT nDivisor); +INT STDCALL +EngMulDiv(IN INT nMultiplicand, + IN INT nMultiplier, + IN INT nDivisor); + +VOID STDCALL +EngMultiByteToUnicodeN(OUT LPWSTR UnicodeString, + IN ULONG MaxBytesInUnicodeString, + OUT PULONG BytesInUnicodeString, + IN PCHAR MultiByteString, + IN ULONG BytesInMultiByteString); BOOL STDCALL EngPaint(IN SURFOBJ *Surface, @@ -1227,7 +1498,6 @@ EngQueryLocalTime EngQueryPalette EngQueryPerformanceCounter EngQueryPerformanceFrequency -EngReleaseSemaphore EngRestoreFloatingPointState EngSaveFloatingPointState EngSecureMem @@ -1236,28 +1506,39 @@ EngSetLastError EngSetPointerShape EngSetPointerTag EngSetPrinterData -EngSort -EngStretchBlt +*/ + +typedef int CDECL (*SORTCOMP)(const void *Elem1, const void *Elem2); + +void STDCALL +EngSort(IN OUT PBYTE Buf, IN ULONG ElemSize, IN ULONG ElemCount, IN SORTCOMP CompFunc); + +/* EngStrokeAndFillPath EngStrokePath EngTextOut */ BOOL STDCALL -EngTransparentBlt(PSURFOBJ Dest, - PSURFOBJ Source, - PCLIPOBJ Clip, - PXLATEOBJ ColorTranslation, - PRECTL DestRect, - PRECTL SourceRect, - ULONG TransparentColor, - ULONG Reserved); +EngTransparentBlt(IN PSURFOBJ Dest, + IN PSURFOBJ Source, + IN PCLIPOBJ Clip, + IN PXLATEOBJ ColorTranslation, + IN PRECTL DestRect, + IN PRECTL SourceRect, + IN ULONG TransparentColor, + IN ULONG Reserved); + +VOID STDCALL +EngUnicodeToMultiByteN(OUT PCHAR MultiByteString, + IN ULONG MaxBytesInMultiByteString, + OUT PULONG BytesInMultiByteString, + IN PWSTR UnicodeString, + IN ULONG BytesInUnicodeString); /* -EngUnicodeToMultiByteN EngUnloadImage EngUnlockDriverObj -EngUnlockSurface EngUnmapEvent EngUnmapFontFile EngUnsecureMem = NTOSKRNL.MmUnsecureVirtualMemory @@ -1293,28 +1574,49 @@ 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); -PGAMMA_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); +ULONG +STDCALL +FONTOBJ_cGetAllGlyphHandles(IN PFONTOBJ FontObj, + IN HGLYPH *Glyphs); + +ULONG +STDCALL +FONTOBJ_cGetGlyphs(IN PFONTOBJ FontObj, + IN ULONG Mode, + IN ULONG NumGlyphs, + IN HGLYPH *GlyphHandles, + IN PVOID *OutGlyphs); + +PGAMMA_TABLES +STDCALL +FONTOBJ_pGetGammaTables(IN PFONTOBJ FontObj); + +IFIMETRICS* +STDCALL +FONTOBJ_pifi(IN PFONTOBJ FontObj); + +PVOID +STDCALL +FONTOBJ_pvTrueTypeFontFile(IN PFONTOBJ FontObj, + IN ULONG *FileSize); + +XFORMOBJ* +STDCALL +FONTOBJ_pxoGetXform(IN PFONTOBJ FontObj); + +VOID +STDCALL +FONTOBJ_vGetInfo(IN PFONTOBJ FontObj, + IN ULONG InfoSize, + OUT PFONTINFO FontInfo); /* HT_ComputeRGBGammaTable HT_Get8BPPFormatPalette */ -ULONG STDCALL +ULONG +STDCALL PALOBJ_cGetColors(PALOBJ *PalObj, ULONG Start, ULONG Colors, @@ -1322,14 +1624,12 @@ PALOBJ_cGetColors(PALOBJ *PalObj, /* 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 @@ -1362,5 +1662,85 @@ XLATEOBJ_iXlate(XLATEOBJ *XlateObj, ULONG * STDCALL XLATEOBJ_piVector(XLATEOBJ *XlateObj); -#endif +HANDLE STDCALL +BRUSHOBJ_hGetColorTransform(BRUSHOBJ *pbo); +ULONG STDCALL +BRUSHOBJ_ulGetBrushColor(BRUSHOBJ *pbo); +BOOL STDCALL +EngAlphaBlend(SURFOBJ *psoDest,SURFOBJ *psoSrc,CLIPOBJ *pco,XLATEOBJ *pxlo,RECTL *prclDest,RECTL *prclSrc,BLENDOBJ *pBlendObj); +BOOL STDCALL +EngCheckAbort(SURFOBJ *pso); +FD_GLYPHSET* STDCALL +EngComputeGlyphSet(INT nCodePage,INT nFirstChar,INT cChars); +VOID STDCALL +EngDeletePath(PATHOBJ *ppo); +BOOL STDCALL +EngFillPath(SURFOBJ *pso,PATHOBJ *ppo,CLIPOBJ *pco,BRUSHOBJ *pbo,POINTL *pptlBrushOrg,MIX mix,FLONG flOptions); +PVOID STDCALL +EngFindResource(HANDLE h,int iName,int iType,PULONG pulSize); +VOID STDCALL +EngFreeModule(HANDLE h); +LPWSTR STDCALL +EngGetDriverName(HDEV hdev); +LPWSTR STDCALL +EngGetPrinterDataFileName(HDEV hdev); +BOOL STDCALL +EngGradientFill(SURFOBJ *psoDest,CLIPOBJ *pco,XLATEOBJ *pxlo,TRIVERTEX *pVertex,ULONG nVertex,PVOID pMesh,ULONG nMesh,RECTL *prclExtents,POINTL *pptlDitherOrg,ULONG ulMode); +HANDLE STDCALL +EngLoadModule(LPWSTR pwsz); +BOOL STDCALL +EngMarkBandingSurface(HSURF hsurf); +INT STDCALL +EngMultiByteToWideChar(UINT CodePage,LPWSTR WideCharString,INT BytesInWideCharString,LPSTR MultiByteString,INT BytesInMultiByteString); +BOOL STDCALL +EngPlgBlt(SURFOBJ *psoTrg,SURFOBJ *psoSrc,SURFOBJ *psoMsk,CLIPOBJ *pco,XLATEOBJ *pxlo,COLORADJUSTMENT *pca,POINTL *pptlBrushOrg,POINTFIX *pptfx,RECTL *prcl,POINTL *pptl,ULONG iMode); +BOOL STDCALL +EngQueryEMFInfo(HDEV hdev,EMFINFO *pEMFInfo); +VOID STDCALL +EngQueryLocalTime(PENG_TIME_FIELDS etf); +BOOL STDCALL +EngStretchBlt(SURFOBJ *psoDest,SURFOBJ *psoSrc,SURFOBJ *psoMask,CLIPOBJ *pco,XLATEOBJ *pxlo,COLORADJUSTMENT *pca,POINTL *pptlHTOrg,RECTL *prclDest,RECTL *prclSrc,POINTL *pptlMask,ULONG iMode); +BOOL STDCALL +EngStretchBltROP(SURFOBJ *psoDest,SURFOBJ *psoSrc,SURFOBJ *psoMask,CLIPOBJ *pco,XLATEOBJ *pxlo,COLORADJUSTMENT *pca,POINTL *pptlHTOrg,RECTL *prclDest,RECTL *prclSrc,POINTL *pptlMask,ULONG iMode,BRUSHOBJ *pbo,DWORD rop4); +BOOL STDCALL +EngStrokeAndFillPath(SURFOBJ *pso,PATHOBJ *ppo,CLIPOBJ *pco,XFORMOBJ *pxo,BRUSHOBJ *pboStroke,LINEATTRS *plineattrs,BRUSHOBJ *pboFill,POINTL *pptlBrushOrg,MIX mixFill,FLONG flOptions); +BOOL STDCALL +EngStrokePath(SURFOBJ *pso,PATHOBJ *ppo,CLIPOBJ *pco,XFORMOBJ *pxo,BRUSHOBJ *pbo,POINTL *pptlBrushOrg,LINEATTRS *plineattrs,MIX mix); +BOOL STDCALL +EngTextOut(SURFOBJ *pso,STROBJ *pstro,FONTOBJ *pfo,CLIPOBJ *pco,RECTL *prclExtra,RECTL *prclOpaque,BRUSHOBJ *pboFore,BRUSHOBJ *pboOpaque,POINTL *pptlOrg,MIX mix); +VOID STDCALL +EngUnlockSurface(SURFOBJ *pso); +INT STDCALL +EngWideCharToMultiByte(UINT CodePage,LPWSTR WideCharString,INT BytesInWideCharString,LPSTR MultiByteString,INT BytesInMultiByteString); +PFD_GLYPHATTR STDCALL +FONTOBJ_pQueryGlyphAttrs(FONTOBJ *pfo,ULONG iMode); +VOID STDCALL +PATHOBJ_vGetBounds(PATHOBJ *ppo,PRECTFX prectfx); +FD_GLYPHSET *STDCALL +FONTOBJ_pfdg(FONTOBJ *pfo); +BOOL STDCALL +PATHOBJ_bEnum(PATHOBJ *ppo,PATHDATA *ppd); +BOOL STDCALL +PATHOBJ_bEnumClipLines(PATHOBJ *ppo,ULONG cb,CLIPLINE *pcl); +VOID STDCALL +PATHOBJ_vEnumStart(PATHOBJ *ppo); +VOID STDCALL +PATHOBJ_vEnumStartClipLines(PATHOBJ *ppo,CLIPOBJ *pco,SURFOBJ *pso,LINEATTRS *pla); +BOOL STDCALL +STROBJ_bEnum(STROBJ *pstro,ULONG *pc,PGLYPHPOS *ppgpos); +BOOL STDCALL +STROBJ_bEnumPositionsOnly(STROBJ *pstro,ULONG *pc,PGLYPHPOS *ppgpos); +BOOL STDCALL +STROBJ_bGetAdvanceWidths(STROBJ *pso,ULONG iFirst,ULONG c,POINTQF *pptqD); +DWORD STDCALL +STROBJ_dwGetCodePage(STROBJ *pstro); +VOID STDCALL +STROBJ_vEnumStart(STROBJ *pstro); +ULONG STDCALL +XFORMOBJ_iGetXform(XFORMOBJ *pxo,XFORML *pxform); +BOOL STDCALL +XFORMOBJ_bApplyXform(XFORMOBJ *pxo,ULONG iMode,ULONG cPoints,PVOID pvIn,PVOID pvOut); +HANDLE STDCALL +XLATEOBJ_hGetColorTransform(XLATEOBJ *pxlo); +#endif