Difference between revisions of "Techwiki:Win32k/DC"
ThePhysicist (talk | contribs) |
|||
Line 34: | Line 34: | ||
/* 0x0598 */ RFONT * prfnt; // -> 'Gfnt' | /* 0x0598 */ RFONT * prfnt; // -> 'Gfnt' | ||
/* 0x059C */ unsigned co_[31]; /* Ref in NtGdiSetPixel called XCLIPOBJ::vSetup */ | /* 0x059C */ unsigned co_[31]; /* Ref in NtGdiSetPixel called XCLIPOBJ::vSetup */ | ||
− | + | /* 0x0??? */ PPFF pPFFList; /* PFF* ??? */ | |
− | /* 0x0??? */ PPFF pPFFList; /* PFF* */ | + | /* 0x061C */ PVOID ClrxFormObj; /* Ref in XDCOBJ::vCleanupColorTransform, COLORTRANSFORMOBJ */ |
− | /* | ||
− | // | ||
/* 0x0620 */ INT ipfdDevMax; /* Ref in XDCOBJ::ipfdDevMax/Get, -1 NtGdiEndPage, 0 GreDoBanding */ | /* 0x0620 */ INT ipfdDevMax; /* Ref in XDCOBJ::ipfdDevMax/Get, -1 NtGdiEndPage, 0 GreDoBanding */ | ||
/* 0x0624 */ ULONG ulCopyCount; /* Ref in NtGdiGetAndSetDCDword */ | /* 0x0624 */ ULONG ulCopyCount; /* Ref in NtGdiGetAndSetDCDword */ |
Revision as of 18:04, 16 April 2008
Windows XP version of DCOBJ
typedef struct { /* 0x0000 */ BASEOBJECT BaseObject; /* 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 points 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; /* 0x03D0 */ POINTL ptlSomething; /* Don't know, for padding */ /* 0x03D8 */ RECTL erclWindow; /* See note 1 */ /* 0x03E8 */ RECTL erclBounds; /* SetGetBoundsRect stores the value here */ /* 0x03F8 */ RECTL erclBoundsApp; /* 0x0408 */ PVOID prgnAPI; /* 0x040C */ PVOID prgnVis; /* 0x0410 */ PVOID prgnRao_; /* 0x0414 */ POINTL ptlFillOrigin; /* 0x041C */ EBRUSHOBJ eboFill; /* 0x0478 */ EBRUSHOBJ eboLine; /* 0x04D4 */ EBRUSHOBJ eboText; /* 0x0530 */ EBRUSHOBJ eboBackground; /* 0x058C */ HFONT hlfntCur; /* 0x0590 */ FLONG flSimulationFlags; /* 0x0594 */ LONG lEscapement; /* 0x0598 */ RFONT * prfnt; // -> 'Gfnt' /* 0x059C */ unsigned co_[31]; /* Ref in NtGdiSetPixel called XCLIPOBJ::vSetup */ /* 0x0??? */ PPFF pPFFList; /* PFF* ??? */ /* 0x061C */ PVOID ClrxFormObj; /* Ref in XDCOBJ::vCleanupColorTransform, COLORTRANSFORMOBJ */ /* 0x0620 */ INT ipfdDevMax; /* Ref in XDCOBJ::ipfdDevMax/Get, -1 NtGdiEndPage, 0 GreDoBanding */ /* 0x0624 */ ULONG ulCopyCount; /* Ref in NtGdiGetAndSetDCDword */ /* 0x0628 */ PVOID pSurfInfo; /* Ref in DC::bMakeInfoDC Copy from DCLEVEL.pSurface */ /* 0x062C */ POINTL ptlDoBanding; /* Ref in GreDoBanding */ /* 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);