540d550a38
d4iface.h, ddkmapi.h, hidclass.h, hidpi.h, hidusage.h, mcd.h, miniport.h, minitape.h, mountdev.h, mountmgr.h, ndis.h, ndisquid.h, ndistapi.h, ndisvan.h, netevent.h, netpnp.h, netdev.h, ntapi.h, ntdd8042.h, ntddbeep.h, ntddcdrm.h, ntddcdvd.h, ntddchgr.h, ntdddisk.h, ntddk.h, ntddkbd.h, ntddmou.h, ntddndis.h, ntddpar.h, ntddpcm.h, ntddscsi.h, ntddser.h, ntddstor.h, ntddtape.h, ntddtdi.h, ntddvdeo.h, ntddvol.h, ntifs.h, ntpoapi.h, ntstatus.h, parallel.h, pfhook.h, poclass.h, scsi.h, scsiscan.h, scsiwmi.h, smbus.h, srb.h, storport.h, tdi.h, tdiinfo.h, tdikrnl.h, tdistat.h, tvout.h, upssvc.h, usb.h, usb100.h, usbcamdi.h, usbdi.h, usbioctl.h, usbiodef.h, usbscan.h, usbuser.h, video.h, videoagp.h, win2k.h, winddi.h, winddk.h, winnt4.h, winxp.h, ws2san.h, xfilter.h): Change comment to refer w32api package, not MinGW.
4145 lines
81 KiB
C
4145 lines
81 KiB
C
/*
|
|
* winddi.h
|
|
*
|
|
* GDI device driver interface
|
|
*
|
|
* This file is part of the w32api package.
|
|
*
|
|
* Contributors:
|
|
* Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
|
|
*
|
|
* THIS SOFTWARE IS NOT COPYRIGHTED
|
|
*
|
|
* This source code is offered for use in the public domain. You may
|
|
* use, modify or distribute it freely.
|
|
*
|
|
* This code is distributed in the hope that it will be useful but
|
|
* WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
|
|
* DISCLAIMED. This includes but is not limited to warranties of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
*
|
|
*/
|
|
|
|
#ifndef __WINDDI_H
|
|
#define __WINDDI_H
|
|
|
|
#ifdef __VIDEO_H
|
|
#error video.h cannot be included with winddi.h
|
|
#endif
|
|
|
|
#if __GNUC__ >=3
|
|
#pragma GCC system_header
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "ntddk.h"
|
|
#include <wingdi.h>
|
|
|
|
#if 1
|
|
/* FIXME: Some DirectDraw structures not added yet */
|
|
typedef ULONG_PTR FLATPTR;
|
|
typedef PVOID LPVIDMEM;
|
|
typedef PVOID LPVMEMHEAP;
|
|
typedef PVOID PGLYPHOS;
|
|
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 _DDSCAPS {
|
|
} DDSCAPS, *PDDSCAPS;
|
|
typedef struct _DDSCAPSEX {
|
|
} DDSCAPSEX, *PDDSCAPSEX;
|
|
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
|
|
|
|
#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 _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 pptfx;
|
|
} PATHDATA, *PPATHDATA;
|
|
|
|
/* PATHOBJ.fl constants */
|
|
#define PO_BEZIERS 0x00000001
|
|
#define PO_ELLIPSE 0x00000002
|
|
#define PO_ALL_INTEGERS 0x00000004
|
|
#define PO_ENUM_AS_INTEGERS 0x00000008
|
|
|
|
typedef struct _PATHOBJ {
|
|
FLONG fl;
|
|
ULONG cCurves;
|
|
} PATHOBJ;
|
|
|
|
typedef struct _GLYPHBITS {
|
|
POINTL ptlOrigin;
|
|
SIZEL sizlBitmap;
|
|
BYTE aj[1];
|
|
} GLYPHBITS;
|
|
|
|
typedef union _GLYPHDEF {
|
|
GLYPHBITS *pgb;
|
|
PATHOBJ *ppo;
|
|
} GLYPHDEF;
|
|
|
|
typedef struct _GLYPHPOS {
|
|
HGLYPH hg;
|
|
GLYPHDEF *pgdf;
|
|
POINTL *ptl;
|
|
} GLYPHPOS, *PGLYPHPOS;
|
|
|
|
typedef struct _GLYPHDATA {
|
|
GLYPHDEF gdf;
|
|
HGLYPH hg;
|
|
FIX fxD;
|
|
FIX fxA;
|
|
FIX fxAB;
|
|
FIX fxInkTop;
|
|
FIX fxInkBottom;
|
|
RECTL rclInk;
|
|
POINTQF ptqD;
|
|
} GLYPHDATA;
|
|
|
|
typedef struct _IFIEXTRA {
|
|
ULONG ulIdentifier;
|
|
PTRDIFF dpFontSig;
|
|
ULONG cig;
|
|
PTRDIFF dpDesignVector;
|
|
PTRDIFF dpAxesInfoW;
|
|
ULONG aulReserved[1];
|
|
} IFIEXTRA, *PIFIEXTRA;
|
|
|
|
/* IFIMETRICS constants */
|
|
|
|
#define FM_VERSION_NUMBER 0x0
|
|
|
|
/* IFIMETRICS.fsType constants */
|
|
#define FM_TYPE_LICENSED 0x2
|
|
#define FM_READONLY_EMBED 0x4
|
|
#define FM_EDITABLE_EMBED 0x8
|
|
#define FM_NO_EMBEDDING FM_TYPE_LICENSED
|
|
|
|
/* IFIMETRICS.flInfo constants */
|
|
#define FM_INFO_TECH_TRUETYPE 0x00000001
|
|
#define FM_INFO_TECH_BITMAP 0x00000002
|
|
#define FM_INFO_TECH_STROKE 0x00000004
|
|
#define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008
|
|
#define FM_INFO_ARB_XFORMS 0x00000010
|
|
#define FM_INFO_1BPP 0x00000020
|
|
#define FM_INFO_4BPP 0x00000040
|
|
#define FM_INFO_8BPP 0x00000080
|
|
#define FM_INFO_16BPP 0x00000100
|
|
#define FM_INFO_24BPP 0x00000200
|
|
#define FM_INFO_32BPP 0x00000400
|
|
#define FM_INFO_INTEGER_WIDTH 0x00000800
|
|
#define FM_INFO_CONSTANT_WIDTH 0x00001000
|
|
#define FM_INFO_NOT_CONTIGUOUS 0x00002000
|
|
#define FM_INFO_TECH_MM 0x00004000
|
|
#define FM_INFO_RETURNS_OUTLINES 0x00008000
|
|
#define FM_INFO_RETURNS_STROKES 0x00010000
|
|
#define FM_INFO_RETURNS_BITMAPS 0x00020000
|
|
#define FM_INFO_DSIG 0x00040000
|
|
#define FM_INFO_RIGHT_HANDED 0x00080000
|
|
#define FM_INFO_INTEGRAL_SCALING 0x00100000
|
|
#define FM_INFO_90DEGREE_ROTATIONS 0x00200000
|
|
#define FM_INFO_OPTICALLY_FIXED_PITCH 0x00400000
|
|
#define FM_INFO_DO_NOT_ENUMERATE 0x00800000
|
|
#define FM_INFO_ISOTROPIC_SCALING_ONLY 0x01000000
|
|
#define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x02000000
|
|
#define FM_INFO_TECH_CFF 0x04000000
|
|
#define FM_INFO_FAMILY_EQUIV 0x08000000
|
|
#define FM_INFO_DBCS_FIXED_PITCH 0x10000000
|
|
#define FM_INFO_NONNEGATIVE_AC 0x20000000
|
|
#define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000
|
|
#define FM_INFO_TECH_TYPE1 0x80000000
|
|
|
|
#define MAXCHARSETS 16
|
|
|
|
/* IFIMETRICS.ulPanoseCulture constants */
|
|
#define FM_PANOSE_CULTURE_LATIN 0x0
|
|
|
|
typedef struct _IFIMETRICS {
|
|
ULONG cjThis;
|
|
ULONG cjIfiExtra;
|
|
PTRDIFF dpwszFamilyName;
|
|
PTRDIFF dpwszStyleName;
|
|
PTRDIFF dpwszFaceName;
|
|
PTRDIFF dpwszUniqueName;
|
|
PTRDIFF dpFontSim;
|
|
LONG lEmbedId;
|
|
LONG lItalicAngle;
|
|
LONG lCharBias;
|
|
PTRDIFF dpCharSets;
|
|
BYTE jWinCharSet;
|
|
BYTE jWinPitchAndFamily;
|
|
USHORT usWinWeight;
|
|
ULONG flInfo;
|
|
USHORT fsSelection;
|
|
USHORT fsType;
|
|
FWORD fwdUnitsPerEm;
|
|
FWORD fwdLowestPPEm;
|
|
FWORD fwdWinAscender;
|
|
FWORD fwdWinDescender;
|
|
FWORD fwdMacAscender;
|
|
FWORD fwdMacDescender;
|
|
FWORD fwdMacLineGap;
|
|
FWORD fwdTypoAscender;
|
|
FWORD fwdTypoDescender;
|
|
FWORD fwdTypoLineGap;
|
|
FWORD fwdAveCharWidth;
|
|
FWORD fwdMaxCharInc;
|
|
FWORD fwdCapHeight;
|
|
FWORD fwdXHeight;
|
|
FWORD fwdSubscriptXSize;
|
|
FWORD fwdSubscriptYSize;
|
|
FWORD fwdSubscriptXOffset;
|
|
FWORD fwdSubscriptYOffset;
|
|
FWORD fwdSuperscriptXSize;
|
|
FWORD fwdSuperscriptYSize;
|
|
FWORD fwdSuperscriptXOffset;
|
|
FWORD fwdSuperscriptYOffset;
|
|
FWORD fwdUnderscoreSize;
|
|
FWORD fwdUnderscorePosition;
|
|
FWORD fwdStrikeoutSize;
|
|
FWORD fwdStrikeoutPosition;
|
|
BYTE chFirstChar;
|
|
BYTE chLastChar;
|
|
BYTE chDefaultChar;
|
|
BYTE chBreakChar;
|
|
WCHAR wcFirstChar;
|
|
WCHAR wcLastChar;
|
|
WCHAR wcDefaultChar;
|
|
WCHAR wcBreakChar;
|
|
POINTL ptlBaseline;
|
|
POINTL ptlAspect;
|
|
POINTL ptlCaret;
|
|
RECTL rclFontBox;
|
|
BYTE achVendId[4];
|
|
ULONG cKerningPairs;
|
|
ULONG ulPanoseCulture;
|
|
PANOSE panose;
|
|
#if defined(_WIN64)
|
|
PVOID Align;
|
|
#endif
|
|
} IFIMETRICS, *PIFIMETRICS;
|
|
|
|
/* LINEATTRS.fl */
|
|
#define LA_GEOMETRIC 0x00000001
|
|
#define LA_ALTERNATE 0x00000002
|
|
#define LA_STARTGAP 0x00000004
|
|
#define LA_STYLED 0x00000008
|
|
|
|
/* LINEATTRS.iJoin */
|
|
#define JOIN_ROUND 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 PGLYPHOS **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);
|
|
|
|
#pragma pack(pop)
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* __WINDDI_H */
|