#define _WIN32_WINNT 0x0501\r
#endif\r
\r
-typedef struct _GDI_TABLE_ENTRY\r
-{\r
- PVOID KernelData; /* Points to the kernel mode structure */\r
- HANDLE ProcessId; /* process id that created the object, 0 for stock objects */\r
- LONG Type; /* the first 16 bit is the object type including the stock obj flag, the last 16 bits is just the object type */\r
- PVOID UserData; /* Points to the user mode structure, usually NULL though */\r
-} GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;\r
\r
typedef PGDI_TABLE_ENTRY (CALLBACK * GDIQUERYPROC) (void);\r
\r
#define GDI_HANDLE_STOCK_MASK 0x00800000\r
#define GDI_HANDLE_REUSE_MASK 0xff000000\r
#define GDI_HANDLE_REUSECNT_SHIFT 24\r
-#define GDI_HANDLE_UPPER_MASK 0xffff0000\r
\r
-/* Handle macros */\r
-#define GDI_HANDLE_CREATE(i, t) \\r
- ((HANDLE)(((i) & GDI_HANDLE_INDEX_MASK) | ((t) << 16)))\r
-\r
-#define GDI_HANDLE_GET_INDEX(h) \\r
- (((ULONG_PTR)(h)) & GDI_HANDLE_INDEX_MASK)\r
-\r
-#define GDI_HANDLE_GET_TYPE(h) \\r
- (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK)\r
-\r
-#define GDI_HANDLE_IS_TYPE(h, t) \\r
- ((t) == (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK))\r
-\r
-#define GDI_HANDLE_IS_STOCKOBJ(h) \\r
- (0 != (((ULONG_PTR)(h)) & GDI_HANDLE_STOCK_MASK))\r
-\r
-#define GDI_HANDLE_SET_STOCKOBJ(h) \\r
- ((h) = (HANDLE)(((ULONG_PTR)(h)) | GDI_HANDLE_STOCK_MASK))\r
-\r
-#define GDI_HANDLE_GET_UPPER(h) \\r
- (((ULONG_PTR)(h)) & GDI_HANDLE_UPPER_MASK)\r
\r
#define GDI_OBJECT_TYPE_DC 0x00010000\r
#define GDI_OBJECT_TYPE_REGION 0x00040000\r
\r
typedef LONG FIX;\r
\r
-typedef struct _EFLOAT_S\r
-{\r
- LONG lMant;\r
- LONG lExp;\r
-} EFLOAT_S;\r
-\r
-/* XFORM Structures */\r
-typedef struct _MATRIX_S\r
-{\r
- EFLOAT_S efM11;\r
- EFLOAT_S efM12;\r
- EFLOAT_S efM21;\r
- EFLOAT_S efM22;\r
- EFLOAT_S efDx;\r
- EFLOAT_S efDy;\r
- FIX fxDx;\r
- FIX fxDy;\r
- FLONG flAccel;\r
-} MATRIX;\r
-\r
-/* GDI object structures */\r
-\r
-typedef struct _RGNATTR\r
-{\r
- ULONG AttrFlags;\r
- ULONG Flags;\r
- RECTL Rect;\r
-} RGNATTR,*PRGNATTR;\r
-\r
-// Local DC structure (_DC_ATTR) PVOID pvLDC;\r
-typedef struct _LDC\r
-{\r
- HDC hDC;\r
- ULONG Flags;\r
- INT iType;\r
- PVOID pvEmfDC; /* Pointer to ENHMETAFILE structure */\r
- ABORTPROC pAbortProc; /* AbortProc for Printing */\r
- HANDLE hPrinter; /* Local or Remote Printer driver */\r
- INT iInitPage; /* Start/Stop */\r
- INT iInitDocument;\r
-} LDC, *PLDC;\r
-\r
-typedef struct\r
-{\r
- void * pvLDC; // 000\r
- ULONG ulDirty;\r
- HBRUSH hbrush;\r
- HPEN hpen;\r
-\r
- COLORREF crBackgroundClr; // 010\r
- ULONG ulBackgroundClr;\r
- COLORREF crForegroundClr;\r
- ULONG ulForegroundClr;\r
-\r
-#if (_WIN32_WINNT >= 0x0500)\r
- COLORREF crBrushClr; // 020\r
- ULONG ulBrushClr;\r
- COLORREF crPenClr;\r
- ULONG ulPenClr;\r
\r
-#endif\r
- int iCS_CP; // 030\r
- int iGraphicsMode;\r
- BYTE jROP2; // 038\r
- BYTE jBkMode;\r
- BYTE jFillMode;\r
- BYTE jStretchBltMode;\r
-\r
- POINT ptlCurrent; // 03C\r
- POINTFX ptfxCurrent; // 044\r
- long lBkMode; // 04C\r
-\r
- long lFillMode; // 050\r
- long lStretchBltMode;\r
-\r
-#if (_WIN32_WINNT >= 0x0500)\r
- long flFontMapper; // 058\r
- long lIcmMode;\r
- unsigned hcmXform; // 060\r
- HCOLORSPACE hColorSpace;\r
- FLONG flIcmFlags;\r
- unsigned IcmBrushColor;\r
- unsigned IcmPenColor; // 070\r
- PVOID pvLIcm;\r
-#endif\r
-\r
- long flTextAlign; // 078\r
- long lTextAlign;\r
- long lTextExtra; // 080\r
- long lRelAbs;\r
- long lBreakExtra;\r
- long cBreak;\r
-\r
- HFONT hlfntNew; // 090\r
- MATRIX mxWorldToDevice; // 094\r
- MATRIX mxDeviceToWorld; // 0D0\r
- MATRIX mxWorldToPage; // 10C\r
\r
- EFLOAT_S efM11PtoD;\r
- EFLOAT_S efM22PtoD;\r
- EFLOAT_S efDxPtoD;\r
- EFLOAT_S efDyPtoD;\r
-\r
- int iMapMode; // 168\r
-\r
-#if (_WIN32_WINNT >= 0x0500)\r
- DWORD dwLayout; // 16c\r
- long lWindowOrgx; // 170\r
-#endif\r
- POINT ptlWindowOrg; // 174\r
- SIZE szlWindowExt; // 17c\r
- POINT ptlViewportOrg; // 184\r
- SIZE szlViewportExt; // 18c\r
-\r
- long flXform; // 194\r
- SIZE szlVirtualDevicePixel; // 198\r
- SIZE szlVirtualDeviceMm; // 1a0\r
- POINT ptlBrushOrigin; // 1a8\r
-\r
- unsigned unk1b0_00000000[2]; // 1b0\r
- RGNATTR VisRectRegion;\r
-\r
-// unsigned unk1b0_00000000[2]; // 1b0\r
-// unsigned RectRegionFlag; // 1b4\r
-// RECT VisRectRegion; // 1b8\r
-} DC_ATTR, *PDC_ATTR;\r
\r
HDC WINAPI GdiConvertBitmap(HDC hdc);\r
HBRUSH WINAPI GdiConvertBrush(HBRUSH hbr);\r