Difference between revisions of "Techwiki:Win32k/DC"
Line 3: | Line 3: | ||
typedef struct | typedef struct | ||
{ | { | ||
− | /* 0x0000 */ HGDIOBJ hHmgr; | + | /* 0x0000 */ HGDIOBJ hHmgr; /* aka struct BASEOBJECT should be here */ |
/* 0x0004 */ PVOID pEntry; | /* 0x0004 */ PVOID pEntry; | ||
/* 0x0008 */ ULONG cExcLock; | /* 0x0008 */ ULONG cExcLock; | ||
− | /* 0x000C */ ULONG Tid; | + | /* 0x000C */ ULONG Tid; /* aka struct BASEOBJECT last member here */ |
/* 0x0010 */ DHPDEV dhpdev; /* (Handle BITMAP) of PDev */ | /* 0x0010 */ DHPDEV dhpdev; /* (Handle BITMAP) of PDev */ | ||
/* 0x0014 */ DWORD dctp; /* DC Type */ | /* 0x0014 */ DWORD dctp; /* DC Type */ |
Revision as of 09:37, 21 March 2008
Windows XP version of DCOBJ
typedef struct { /* 0x0000 */ HGDIOBJ hHmgr; /* aka struct BASEOBJECT should be here */ /* 0x0004 */ PVOID pEntry; /* 0x0008 */ ULONG cExcLock; /* 0x000C */ ULONG Tid; /* aka struct BASEOBJECT last member here */ /* 0x0010 */ DHPDEV dhpdev; /* (Handle BITMAP) of PDev */ /* 0x0014 */ DWORD dctp; /* DC Type */ /* 0x0018 */ DWORD fs; /* Flags */ /* 0x001C */ PVOID ppdev; /* Pointer to structure. */ /* 0x0020 */ PVOID hsem; /* 0x0024 */ FLONG flGraphicsCaps; /* 0x0028 */ FLONG flGraphicsCaps2; /* 0x002C */ PVOID pDCAttr; /* XP point to user mode DCATTR */ /* 0x0030 */ DCLEVEL dcLevel; /* DCLEVEL is 0x1B8 Bytes */ /* 0x01E8 */ DC_ATTR dcAttr; /* DC_ATTR is 0x1D0 Bytes */ /* 0x03B8 */ HDC hdcNext; /* 0x03BC */ HDC hdcPrev; /* 0x03C0 */ RECTL erclClip; /* 0x03D8 */ RECTL erclWindow; /* See note 1 */ /* 0x03E8 */ RECTL erclBounds; /* SetGetBoundsRect store the value here */ /* 0x03F8 */ RECTL erclBoundsApp; /* 0x0408 */ PVOID prgnAPI; /* 0x040C */ PVOID prgnVis; /* 0x0410 */ PVOID prgnRao_; /* 0x0414 */ POINTL ptlFillOrigin; /* 0x041C */ unsigned eboFill_[21]; /* EBRUSHOBJ* */ /* 0x0470 */ unsigned eboLine_[21]; /* 0x04C4 */ unsigned eboText_[21]; /* 0x0518 */ unsigned eboBackground_[21]; /* 0x056C */ HFONT hlfntCur; /* 0x0570 */ FLONG flSimulationFlags; /* 0x0574 */ LONG lEscapement; /* 0x0578 */ PVOID prfnt; /* 0x057C */ unsigned co_[31]; /* CLIPOBJ */ /* 0x05F8 */ PPFF pPFFList; /* PFF* */ /* 0x05FC */ ULONG unkdata0; /* 0x0600 */ INT ipfdDevMax; /* 0x0604 */ ULONG ulCopyCount; /* has 0x144 */ /* 0x0608 */ PVOID pSurfInfo; /* 0x060C */ ULONG unkdata1[6]; /* 0x0624 */ ULONG CopyCount; /* 0x0628 */ ULONG unkdata2[3]; /* DCMEMOBJ XP size == 0x634 */ } DCOBJ;
Note:
1. NtGdiGetDeviceWidth
erclWindow: Rectangle Window 3D8 = LONG left; 3DC = LONG top; 3E0 = LONG right; 3E4 = LONG bottom; return (right - left);