mirror of
https://github.com/reactos/reactos.git
synced 2025-08-03 07:46:29 +00:00
Added to DDI interface definition
svn path=/trunk/; revision=495
This commit is contained in:
parent
f234e93d1e
commit
d22c45fab2
1 changed files with 206 additions and 9 deletions
|
@ -2,10 +2,9 @@
|
||||||
* WinDDI.h - definition of the GDI - DDI interface
|
* WinDDI.h - definition of the GDI - DDI interface
|
||||||
*/
|
*/
|
||||||
|
|
||||||
typedef HANDLE HBITMAP;
|
#include <windows.h>
|
||||||
|
|
||||||
typedef HANDLE HDEV;
|
typedef HANDLE HDEV;
|
||||||
typedef HANDLE HPALETTE;
|
|
||||||
typedef HANDLE HSURF;
|
|
||||||
|
|
||||||
typedef HANDLE DHPDEV;
|
typedef HANDLE DHPDEV;
|
||||||
|
|
||||||
|
@ -75,6 +74,88 @@ typedef struct _DEVMODEW
|
||||||
DWORD dmDisplayFrequency;
|
DWORD dmDisplayFrequency;
|
||||||
} DEVMODEW;
|
} DEVMODEW;
|
||||||
|
|
||||||
|
typedef struct _BRUSHOBJ
|
||||||
|
{
|
||||||
|
ULONG iSolidColor;
|
||||||
|
PVOID pvRbrush;
|
||||||
|
} BRUSHOBJ, *PBRUSHOBJ;
|
||||||
|
|
||||||
|
typedef struct _CLIPOBJ
|
||||||
|
{
|
||||||
|
ULONG iUniq;
|
||||||
|
RECTL rclBounds;
|
||||||
|
BYTE iDComplexity;
|
||||||
|
BYTE iFComplexity;
|
||||||
|
BYTE iMode;
|
||||||
|
BYTE fjOptions;
|
||||||
|
} CLIPOBJ, *PCLIPOBJ;
|
||||||
|
|
||||||
|
typedef struct _ENUMRECTS
|
||||||
|
{
|
||||||
|
ULONG c;
|
||||||
|
RECTL arcl[1];
|
||||||
|
} ENUMRECTS, *PENUMRECTS;
|
||||||
|
|
||||||
|
typedef struct _FONTOBJ
|
||||||
|
{
|
||||||
|
ULONG iUniq;
|
||||||
|
ULONG iFace;
|
||||||
|
ULONG cxMax;
|
||||||
|
ULONG flFontType;
|
||||||
|
ULONG iTTUniq;
|
||||||
|
ULONG iFile;
|
||||||
|
SIZE sizLogResPpi;
|
||||||
|
ULONG ulStyleSize;
|
||||||
|
PVOID pvConsumer;
|
||||||
|
PVOID pvProducer;
|
||||||
|
} FONTOBJ, *PFONTOBJ;
|
||||||
|
|
||||||
|
typedef struct _PATHOBJ
|
||||||
|
{
|
||||||
|
ULONG fl;
|
||||||
|
ULONG cCurves;
|
||||||
|
} PATHOBJ, *PPATHOBJ;
|
||||||
|
|
||||||
|
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, *PSURFOBJ;
|
||||||
|
|
||||||
|
typedef struct _XLATEOBJ
|
||||||
|
{
|
||||||
|
ULONG iUniq;
|
||||||
|
FLONG flXlate;
|
||||||
|
USHORT iSrcType;
|
||||||
|
USHORT iDstType;
|
||||||
|
ULONG cEntries;
|
||||||
|
ULONG *pulXlate;
|
||||||
|
} XLATEOBJ, *PXLATEOBJ;
|
||||||
|
|
||||||
|
/* Options for CLIPOBJ_cEnumStart Type field */
|
||||||
|
#define CT_RECTANGLE 1
|
||||||
|
|
||||||
|
/* Options for CLIPOBJ_cEnumStart BuildOrder field */
|
||||||
|
enum _CD_ORDERS
|
||||||
|
{
|
||||||
|
CD_RIGHTDOWN = 1,
|
||||||
|
CD_LEFTDOWN,
|
||||||
|
CD_RIGHTUP,
|
||||||
|
CD_LEFTUP,
|
||||||
|
CD_ANY
|
||||||
|
};
|
||||||
|
|
||||||
/* EngAssocateSurface hook flags */
|
/* EngAssocateSurface hook flags */
|
||||||
#define HOOK_BITBLT 0x00000001
|
#define HOOK_BITBLT 0x00000001
|
||||||
#define HOOK_STRETCHBLT 0x00000002
|
#define HOOK_STRETCHBLT 0x00000002
|
||||||
|
@ -101,6 +182,23 @@ enum _BMF_TYPES
|
||||||
BMF_8RLE
|
BMF_8RLE
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define RASTER_FONTTYPE 0x00000001
|
||||||
|
#define DEVICE_FONTTYPE 0x00000002
|
||||||
|
#define TRUETYPE_FONTTYPE 0x00000004
|
||||||
|
#define FO_SIM_ITALIC 0x00000008
|
||||||
|
#define FO_SIM_BOLD 0x00000010
|
||||||
|
#define FO_EM_HEIGHT 0x00000020
|
||||||
|
#define FO_4_LEVEL 0x00000040
|
||||||
|
#define FO_16_LEVEL 0x00000080
|
||||||
|
#define FO_64_LEVEL 0x00000100
|
||||||
|
|
||||||
|
enum _SURF_TYPES
|
||||||
|
{
|
||||||
|
STYPE_BITMAP = 1,
|
||||||
|
STYPE_DEVICE,
|
||||||
|
STYPE_DEVBITMAP
|
||||||
|
};
|
||||||
|
|
||||||
#define BMF_TOPDOWN 0x00000001
|
#define BMF_TOPDOWN 0x00000001
|
||||||
#define BMF_NOZEROINIT 0x00000002
|
#define BMF_NOZEROINIT 0x00000002
|
||||||
#define BMF_USERMEM 0x00000004
|
#define BMF_USERMEM 0x00000004
|
||||||
|
@ -114,17 +212,90 @@ enum _PAL_TYPES
|
||||||
PAL_BGR
|
PAL_BGR
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum _DITHER_COLOR_MODES
|
||||||
|
{
|
||||||
|
DM_DEFAULT,
|
||||||
|
DM_MONOCHROME
|
||||||
|
};
|
||||||
|
|
||||||
|
enum _ESCAPE_CODES
|
||||||
|
{
|
||||||
|
ESC_PASSTHROUGH,
|
||||||
|
ESC_QUERYESCSUPPORT
|
||||||
|
};
|
||||||
|
|
||||||
|
enum _END_DOC_FLAGS
|
||||||
|
{
|
||||||
|
ED_ABORTDOC
|
||||||
|
};
|
||||||
|
|
||||||
|
#define FP_WINDINGMODE 0x00000001
|
||||||
|
#define FP_ALTERNATEMODE 0x00000002
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Functions Prefixed with Drv are calls made from GDI to DDI, and
|
* Functions Prefixed with Drv are calls made from GDI to DDI, and
|
||||||
* those prefixed with Eng are calls made from DDI to GDI. DDI is
|
* everything else are calls made from DDI to GDI. DDI is
|
||||||
* not allowed to make calls to any other kernel or user modules.
|
* not allowed to make calls to any other kernel or user modules.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* DDI --> GDI calls */
|
||||||
|
PVOID BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj,
|
||||||
|
IN ULONG ObjSize);
|
||||||
|
PVOID BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj);
|
||||||
|
BOOL CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj,
|
||||||
|
IN ULONG ObjSize,
|
||||||
|
OUT ULONG *EnumRects);
|
||||||
|
ULONG CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj,
|
||||||
|
IN BOOL ShouldDoAll,
|
||||||
|
IN ULONG ClipType,
|
||||||
|
IN ULONG BuildOrder,
|
||||||
|
IN ULONG MaxRects);
|
||||||
|
PPATHOBJ CLIPOBJ_ppoGetPath(PCLIPOBJ ClipObj);
|
||||||
|
|
||||||
/* GDI --> DDI calls */
|
/* GDI --> DDI calls */
|
||||||
VOID DrvCompletePDEV(IN DHPDEV PDev,
|
VOID DrvAssertMode(IN DHPDEV PDev,
|
||||||
IN HDEV Dev);
|
IN BOOL ShouldEnable);
|
||||||
|
BOOL DrvBitBlt(IN PSURFOBJ DestSurface,
|
||||||
|
IN PSURFOBJ SrcSurface,
|
||||||
|
IN PSURFOBJ MaskSurface,
|
||||||
|
IN PCLIPOBJ ClipObj,
|
||||||
|
IN PXLATEOBJ XLateObj,
|
||||||
|
IN PRECTL DestRectL,
|
||||||
|
IN PPOINTL SrcPointL,
|
||||||
|
IN PPOINTL MaskPointL,
|
||||||
|
IN PBRUSHOBJ BrushObj,
|
||||||
|
IN PPOINTL BrushPointL,
|
||||||
|
IN ROP4 RasterOp);
|
||||||
|
VOID DrvCompletePDEV(IN DHPDEV PDev,
|
||||||
|
IN HDEV Dev);
|
||||||
|
BOOL DrvCopyBits(OUT PSURFOBJ DestSurface,
|
||||||
|
IN PSURFOBJ SrcSurface,
|
||||||
|
IN PCLIPOBJ ClipObj,
|
||||||
|
IN PXLATEOBJ XLateObj,
|
||||||
|
IN PRECTL DestRectL,
|
||||||
|
IN PPOINTL SrcPointL);
|
||||||
|
HBITMAP DrvCreateDeviceBitmap(IN DHPDEV DPev,
|
||||||
|
IN SIZEL SizeL,
|
||||||
|
IN ULONG Format);
|
||||||
|
VOID DrvDeleteDeviceBitmap(IN DHSURF Surface);
|
||||||
|
LONG DrvDescribePixelFormat(IN DHPDEV DPev,
|
||||||
|
IN LONG PixelFormat,
|
||||||
|
IN ULONG DescriptorSize,
|
||||||
|
OUT PPIXELFORMATDESCRIPTOR PFD);
|
||||||
|
VOID DrvDestroyFont(IN PFONTOBJ FontObj);
|
||||||
|
VOID DrvDisableDriver(VOID);
|
||||||
VOID DrvDisablePDEV(IN DHPDEV PDev);
|
VOID DrvDisablePDEV(IN DHPDEV PDev);
|
||||||
VOID DrvDisableSurface(IN DHPDEV PDev);
|
VOID DrvDisableSurface(IN DHPDEV PDev);
|
||||||
|
ULONG DrvDitherColor(IN DHPDEV DPev,
|
||||||
|
IN ULONG Mode,
|
||||||
|
IN ULONG RGB,
|
||||||
|
OUT PULONG DitherBits);
|
||||||
|
ULONG DrvDrawEscape(IN PSURFOBJ SurfObj,
|
||||||
|
IN ULONG EscCode,
|
||||||
|
IN PCLIPOBJ ClipObj,
|
||||||
|
IN PRECTL RectL,
|
||||||
|
IN ULONG InputSize,
|
||||||
|
IN PVOID *InputData);
|
||||||
BOOL DrvEnableDriver(IN ULONG Version,
|
BOOL DrvEnableDriver(IN ULONG Version,
|
||||||
IN ULONG DEDSize,
|
IN ULONG DEDSize,
|
||||||
OUT PDRVENABLEDATA DED);
|
OUT PDRVENABLEDATA DED);
|
||||||
|
@ -139,12 +310,38 @@ DHPDEV DrvEnablePDEV(IN DEVMODEW *DM,
|
||||||
IN LPWSTR DevDataFile,
|
IN LPWSTR DevDataFile,
|
||||||
IN LPWSTR DeviceName,
|
IN LPWSTR DeviceName,
|
||||||
IN HANDLE Driver);
|
IN HANDLE Driver);
|
||||||
HSURF DrvEnableSurface(IN DHPDEV PDev);
|
HSURF DrvEnableSurface(IN DHPDEV PDev);
|
||||||
|
BOOL DrvEndDoc(IN PSURFOBJ SurfObj,
|
||||||
|
IN ULONG Flags);
|
||||||
|
ULONG DrvEscape(IN PSURFOBJ SurfObj,
|
||||||
|
IN ULONG EscCode,
|
||||||
|
IN ULONG InputSize,
|
||||||
|
IN PVOID *InputData,
|
||||||
|
IN ULONG OutputSize,
|
||||||
|
OUT PVOID *OutputData);
|
||||||
|
BOOL DrvFillPath(IN PSURFOBJ SurfObj,
|
||||||
|
IN PPATHOBJ PathObj,
|
||||||
|
IN PCLIPOBJ ClipObj,
|
||||||
|
IN PBRUSHOBJ BrushObj,
|
||||||
|
IN PPOINTL BrushOrg,
|
||||||
|
IN MIX Mix,
|
||||||
|
IN ULONG Options);
|
||||||
|
ULONG DrvFontManagement(IN PSURFOBJ SurfObj,
|
||||||
|
IN PFONTOBJ FontObj,
|
||||||
|
IN ULONG Mode,
|
||||||
|
IN ULONG InputSize,
|
||||||
|
IN PVOID InputData,
|
||||||
|
IN ULONG OutputSize,
|
||||||
|
OUT PVOID OutputData);
|
||||||
|
VOID DrvFree(IN PVOID Obj,
|
||||||
|
IN ULONG ID);
|
||||||
|
ULONG DrvGetGlyphMode(IN DHPDEV DPev,
|
||||||
|
IN PFONTOBJ FontObj);
|
||||||
|
|
||||||
ULONG DrvGetModes(IN HANDLE Driver,
|
ULONG DrvGetModes(IN HANDLE Driver,
|
||||||
IN ULONG DataSize,
|
IN ULONG DataSize,
|
||||||
OUT PDEVMODEW DM);
|
OUT PDEVMODEW DM);
|
||||||
|
|
||||||
/* DDI --> GDI calls */
|
|
||||||
BOOL EngAssociateSurface(IN HSURF Surface,
|
BOOL EngAssociateSurface(IN HSURF Surface,
|
||||||
IN HDEV Dev,
|
IN HDEV Dev,
|
||||||
IN ULONG Hooks);
|
IN ULONG Hooks);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue