Difference between revisions of "Techwiki:Win32k/BRUSH"

From ReactOS Wiki
Jump to: navigation, search
Line 18: Line 18:
 
     PBRUSHATTR pBrushAttr;  // 0x024 e16293c8
 
     PBRUSHATTR pBrushAttr;  // 0x024 e16293c8
 
     BRUSHATTR BrushAttr;    // 0x028
 
     BRUSHATTR BrushAttr;    // 0x028
     DWORD unk030;          // 0x030 00000000  
+
     DWORD unk030;          // 0x030 00000000
     DWORD unk034;           // 0x034 00000000
+
     ULONG ulRealization;   // 0x034 00000000 ?
     DWORD unk038;           // 0x038 00000001  
+
     BOOL bCacheGrabbed;     // 0x038 00000001 ?
     DWORD unk03c;           // 0x03c 00d8e9ec
+
     COLORREF crBack;       // 0x03c 00d8e9ec
     DWORD unk040;           // 0x040 00ffffff  
+
     COLORREF crFore;       // 0x040 00ffffff
     DWORD unk044;           // 0x044 00000004  
+
     ULONG ulPalTime;       // 0x044 00000004 ?
     DWORD unk048;           // 0x048 00000008  
+
     ULONG ulSurfTime;       // 0x048 00000008 ?
 
     PVOID pvRBrush          // 0x04c e16146b0 -> 'Gdbr'
 
     PVOID pvRBrush          // 0x04c e16146b0 -> 'Gdbr'
 
     PPDEVOBJ ppdev;        // 0x050 e1d17008 -> 'GDev'
 
     PPDEVOBJ ppdev;        // 0x050 e1d17008 -> 'GDev'

Revision as of 07:19, 4 December 2008

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 ulRealization;    // 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'
    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
    FLOAT 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;