Difference between revisions of "Techwiki:Win32k/BRUSH"

From ReactOS Wiki
Jump to: navigation, search
(No difference)

Revision as of 22:36, 8 November 2009

BRUSH as found on Windows XP


typedef _BRUSHATTR
{
    UINT AttrFlags;
    COLORREF lbColor;
} BRUSHATTR, *PBRUSHATTR;
typedef _BRUSH
{
    BASEOBJECT baseobj;       // 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;