[ros-dev] GDI_TABLE_ENTRY structure

James Tabor jimtabor at adsl-64-217-116-74.dsl.hstntx.swbell.net
Thu Aug 30 14:35:59 CEST 2007


Hi!
Timo Kreuzer wrote:
> #pragma pack(push,1)
> typedef struct
> {
>     PVOID KernelData; /* Points to the kernel mode structure */
>     union
>     {
>         DWORD ProcessId; /* process id that created the object, 0 for 
> kernel objects */
>         struct
>         {
>             unsigned ProcessId16: 16;
>             unsigned Unused: 16;
>         };
>     };
>     union
>     {
>         ULONG Type;
>         struct
>         {
>             union
>             {
>                 unsigned TypeLower: 16;
>                 struct
>                 {
>                     union
>                     {
>                         unsigned HandleTypeStock: 8;
>                         struct
>                         {
>                             unsigned HandleType: 7;
>                             unsigned StockBit: 1;
>                         };
>                     };
>                     unsigned ReuseCount: 8;
>                 };
>             };
>             union
>             {
>                 unsigned TypeUpper: 16;
>                 struct
>                 {
>                     unsigned StorageType: 8; /* PEN uses same value as 
> BRUSH here, no stock bit */
>                     unsigned Flags: 8;
>                 };
>             };
>         };
>     };
>     PVOID UserData;   /* Points to the user mode structure, usually NULL 
> though */
> } GDI_TABLE_ENTRY, *PGDI_TABLE_ENTRY;;
> 
> typedef union
> {
>     HGDIOBJ Handle;
>     struct
>     {
>         unsigned Index: 16;
>         union
>         {
>             unsigned Upper: 16;
>             struct
>             {
>                 union
>                 {
>                     unsigned HandleTypeStock: 8;
>                     struct
>                     {
>                         unsigned HandleType: 7;
>                         unsigned StockBit: 1;
>                     };
>                 };
>                 unsigned ReuseCount: 8;
>             };
>         };
>     };
> } GDIHANDLE, *PGDIHANDLE;
> #pragma pack(pop)
> 

Okay! 8^D
James




More information about the Ros-dev mailing list