Difference between revisions of "Techwiki:Win32k/BRUSH"
ThePhysicist (talk | contribs) |
ThePhysicist (talk | contribs) |
||
Line 10: | Line 10: | ||
typedef _BRUSH | typedef _BRUSH | ||
{ | { | ||
− | BASEOBJECT BaseObject; | + | BASEOBJECT BaseObject; // 0x000 ulShareCount = 6 |
− | ULONG ulStyle; | + | ULONG ulStyle; // 0x010 |
− | HBITMAP hbmPattern; | + | HBITMAP hbmPattern; // 0x014 01050078 |
− | HBITMAP hbmClient; | + | HBITMAP hbmClient; // 0x018 01050077 invalid handle |
− | FLONG flAttrs; | + | FLONG flAttrs; // 0x01c 00020043 |
− | ULONG ulBrushUnique; | + | ULONG ulBrushUnique; // 0x020 0000002e ? |
− | PBRUSHATTR pbrushattr; | + | PBRUSHATTR pbrushattr; // 0x024 e16293c8 |
− | BRUSHATTR brushattr; | + | BRUSHATTR brushattr; // 0x028 |
− | DWORD unk030; | + | DWORD unk030; // 0x030 00000000 |
− | ULONG unk034; | + | ULONG unk034; // 0x034 00000000 ? |
− | BOOL bCacheGrabbed; | + | BOOL bCacheGrabbed; // 0x038 00000001 ? |
− | COLORREF crBack; // 0x03c 00d8e9ec | + | COLORREF crBack; // 0x03c 00d8e9ec |
− | COLORREF crFore; // 0x040 00ffffff | + | COLORREF crFore; // 0x040 00ffffff |
− | ULONG ulPalTime; | + | ULONG ulPalTime; // 0x044 00000004 ? |
− | ULONG ulSurfTime; | + | ULONG ulSurfTime; // 0x048 00000008 ? |
− | PVOID pvRBrush | + | PVOID pvRBrush // 0x04c e16146b0 -> 'Gdbr' (ulRealisation in gdikdx) |
− | PPDEVOBJ ppdev; // 0x050 e1d17008 -> 'GDev' | + | PPDEVOBJ ppdev; // 0x050 e1d17008 -> 'GDev' |
− | DWORD unk054; | + | DWORD unk054; // 0x054 ffffffff |
− | LONG | + | LONG lWidth; // 0x058 00000000 Width is measured in LONG device coordinates |
− | + | // for a cosmetic wide line. | |
− | + | // NtGdiExtCreatePen ulWidth | |
− | FLOATL eWidth; | + | FLOATL eWidth; // 0x05c 00000000 Width is measured in FLOAT world coordinates |
− | + | // for a geometric wide line. | |
− | ULONG ulPenStyle; | + | ULONG ulPenStyle; // 0x060 |
− | DWORD *pStyle; | + | DWORD *pStyle; // 0x064 -> 'Gsty' Pointer to an array of FLOAT_LONG elements |
− | + | // Allocated copy of pulStyle. | |
− | DWORD dwStyleCount; | + | DWORD dwStyleCount; // 0x068 Specifies the number of entries in the style |
− | + | // array pointed to by the pstyle member. | |
− | BYTE | + | BYTE jJoin; // 0x06c 00 join styles for geometric wide lines |
− | BYTE | + | BYTE jEndCap; // 00 end cap style for a geometric wide line |
− | WORD | + | WORD unk06e; // 0x06e 0100 |
− | INT | + | INT iBrushStyle; // 0x070 8a27f1f0 ??? |
− | PREGION prgn; | + | PREGION prgn; // 0x074 e1610008 -> 'Gla4' |
− | DWORD unk078; | + | DWORD unk078; // 0x078 00020210 |
− | DWORD unk07c; | + | DWORD unk07c; // 0x07c 7153624f |
− | LIST_ENTRY ListHead; | + | LIST_ENTRY ListHead; // 0x080 |
} BRUSH, *PBRUSH; | } BRUSH, *PBRUSH; | ||
* See [[Techwiki/win32k/EBRUSHOBJ|EBRUSHOBJ]] for a list of flAttrs flags. | * See [[Techwiki/win32k/EBRUSHOBJ|EBRUSHOBJ]] for a list of flAttrs flags. |
Revision as of 20:07, 20 March 2009
BRUSH as found on Windows XP
typedef _BRUSHATTR { UINT AttrFlags; COLORREF lbColor; } BRUSHATTR, *PBRUSHATTR;
typedef _BRUSH { BASEOBJECT BaseObject; // 0x000 ulShareCount = 6 ULONG ulStyle; // 0x010 HBITMAP hbmPattern; // 0x014 01050078 HBITMAP hbmClient; // 0x018 01050077 invalid handle FLONG flAttrs; // 0x01c 00020043 ULONG ulBrushUnique; // 0x020 0000002e ? PBRUSHATTR pbrushattr; // 0x024 e16293c8 BRUSHATTR brushattr; // 0x028 DWORD unk030; // 0x030 00000000 ULONG unk034; // 0x034 00000000 ? BOOL bCacheGrabbed; // 0x038 00000001 ? COLORREF crBack; // 0x03c 00d8e9ec COLORREF crFore; // 0x040 00ffffff ULONG ulPalTime; // 0x044 00000004 ? ULONG ulSurfTime; // 0x048 00000008 ? PVOID pvRBrush // 0x04c e16146b0 -> 'Gdbr' (ulRealisation in gdikdx) PPDEVOBJ ppdev; // 0x050 e1d17008 -> 'GDev' DWORD unk054; // 0x054 ffffffff LONG lWidth; // 0x058 00000000 Width is measured in LONG device coordinates // for a cosmetic wide line. // NtGdiExtCreatePen ulWidth FLOATL eWidth; // 0x05c 00000000 Width is measured in FLOAT world coordinates // for a geometric wide line. ULONG ulPenStyle; // 0x060 DWORD *pStyle; // 0x064 -> 'Gsty' Pointer to an array of FLOAT_LONG elements // Allocated copy of pulStyle. DWORD dwStyleCount; // 0x068 Specifies the number of entries in the style // array pointed to by the pstyle member. BYTE jJoin; // 0x06c 00 join styles for geometric wide lines BYTE jEndCap; // 00 end cap style for a geometric wide line WORD unk06e; // 0x06e 0100 INT iBrushStyle; // 0x070 8a27f1f0 ??? PREGION prgn; // 0x074 e1610008 -> 'Gla4' DWORD unk078; // 0x078 00020210 DWORD unk07c; // 0x07c 7153624f LIST_ENTRY ListHead; // 0x080 } BRUSH, *PBRUSH;
- See EBRUSHOBJ for a list of flAttrs flags.