mirror of
https://github.com/reactos/reactos.git
synced 2024-07-21 19:58:08 +00:00
Added to DDI interface definition
svn path=/trunk/; revision=495
This commit is contained in:
parent
f234e93d1e
commit
d22c45fab2
|
@ -2,10 +2,9 @@
|
|||
* WinDDI.h - definition of the GDI - DDI interface
|
||||
*/
|
||||
|
||||
typedef HANDLE HBITMAP;
|
||||
#include <windows.h>
|
||||
|
||||
typedef HANDLE HDEV;
|
||||
typedef HANDLE HPALETTE;
|
||||
typedef HANDLE HSURF;
|
||||
|
||||
typedef HANDLE DHPDEV;
|
||||
|
||||
|
@ -75,6 +74,88 @@ typedef struct _DEVMODEW
|
|||
DWORD dmDisplayFrequency;
|
||||
} 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 */
|
||||
#define HOOK_BITBLT 0x00000001
|
||||
#define HOOK_STRETCHBLT 0x00000002
|
||||
|
@ -100,7 +181,24 @@ enum _BMF_TYPES
|
|||
BMF_4RLE,
|
||||
BMF_8RLE
|
||||
};
|
||||
|
||||
|
||||
#define RASTER_FONTTYPE 0x00000001
|
||||
#define DEVICE_FONTTYPE 0x00000002
|
||||
#define TRUETYPE_FONTTYPE 0x00000004
|
||||
#define FO_SIM_ITALIC 0x00000008
|
||||
#define FO_SIM_BOLD 0x00000010
|
||||
#define FO_EM_HEIGHT 0x00000020
|
||||
#define FO_4_LEVEL 0x00000040
|
||||
#define FO_16_LEVEL 0x00000080
|
||||
#define FO_64_LEVEL 0x00000100
|
||||
|
||||
enum _SURF_TYPES
|
||||
{
|
||||
STYPE_BITMAP = 1,
|
||||
STYPE_DEVICE,
|
||||
STYPE_DEVBITMAP
|
||||
};
|
||||
|
||||
#define BMF_TOPDOWN 0x00000001
|
||||
#define BMF_NOZEROINIT 0x00000002
|
||||
#define BMF_USERMEM 0x00000004
|
||||
|
@ -114,17 +212,90 @@ enum _PAL_TYPES
|
|||
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
|
||||
* 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.
|
||||
*/
|
||||
|
||||
/* DDI --> GDI calls */
|
||||
PVOID BRUSHOBJ_pvAllocRbrush(IN PBRUSHOBJ BrushObj,
|
||||
IN ULONG ObjSize);
|
||||
PVOID BRUSHOBJ_pvGetRbrush(IN PBRUSHOBJ BrushObj);
|
||||
BOOL CLIPOBJ_bEnum(IN PCLIPOBJ ClipObj,
|
||||
IN ULONG ObjSize,
|
||||
OUT ULONG *EnumRects);
|
||||
ULONG CLIPOBJ_cEnumStart(IN PCLIPOBJ ClipObj,
|
||||
IN BOOL ShouldDoAll,
|
||||
IN ULONG ClipType,
|
||||
IN ULONG BuildOrder,
|
||||
IN ULONG MaxRects);
|
||||
PPATHOBJ CLIPOBJ_ppoGetPath(PCLIPOBJ ClipObj);
|
||||
|
||||
/* GDI --> DDI calls */
|
||||
VOID DrvCompletePDEV(IN DHPDEV PDev,
|
||||
IN HDEV Dev);
|
||||
VOID DrvAssertMode(IN DHPDEV PDev,
|
||||
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 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,
|
||||
IN ULONG DEDSize,
|
||||
OUT PDRVENABLEDATA DED);
|
||||
|
@ -139,12 +310,38 @@ DHPDEV DrvEnablePDEV(IN DEVMODEW *DM,
|
|||
IN LPWSTR DevDataFile,
|
||||
IN LPWSTR DeviceName,
|
||||
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,
|
||||
IN ULONG DataSize,
|
||||
OUT PDEVMODEW DM);
|
||||
|
||||
/* DDI --> GDI calls */
|
||||
BOOL EngAssociateSurface(IN HSURF Surface,
|
||||
IN HDEV Dev,
|
||||
IN ULONG Hooks);
|
||||
|
|
Loading…
Reference in a new issue