2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Win32 Graphical Subsystem (WIN32K)
4 * FILE: include/win32k/ntusrtyp.h
5 * PURPOSE: Win32 Shared USER Types for NtUser*
6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
9 /* INCLUDES ******************************************************************/
14 /* ENUMERATIONS **************************************************************/
16 /* TYPES *********************************************************************/
18 typedef struct _PATRECT
22 } PATRECT
, * PPATRECT
;
24 /* Structures for reading icon/cursor files and resources */
26 typedef struct _ICONIMAGE
28 BITMAPINFOHEADER icHeader
; // DIB header
29 RGBQUAD icColors
[1]; // Color table
30 BYTE icXOR
[1]; // DIB bits for XOR mask
31 BYTE icAND
[1]; // DIB bits for AND mask
32 } ICONIMAGE
, *LPICONIMAGE
;
34 typedef struct _CURSORIMAGE
36 BITMAPINFOHEADER icHeader
; // DIB header
37 RGBQUAD icColors
[1]; // Color table
38 BYTE icXOR
[1]; // DIB bits for XOR mask
39 BYTE icAND
[1]; // DIB bits for AND mask
40 } CURSORIMAGE
, *LPCURSORIMAGE
;
58 WORD wPlanes
; // Number of Color Planes in the XOR image
59 WORD wBitCount
; // Bits per pixel in the XOR image
64 WORD wXHotspot
; // Number of Color Planes in the XOR image
65 WORD wYHotspot
; // Bits per pixel in the XOR image
70 BYTE bWidth
; // Width, in pixels, of the icon image
71 BYTE bHeight
; // Height, in pixels, of the icon image
72 BYTE bColorCount
; // Number of colors in image (0 if >=8bpp)
73 BYTE bReserved
; // Reserved ( must be 0)
79 DWORD dwBytesInRes
; // How many bytes in this resource?
80 DWORD dwImageOffset
; // Where in the file is this image?
85 WORD idReserved
; // Reserved (must be 0)
86 WORD idType
; // Resource Type (1 for icons, 0 for cursors)
87 WORD idCount
; // How many images?
88 CURSORICONDIRENTRY idEntries
[1];// An entry for idCount number of images
98 WORD wPlanes
; // Color Planes
99 WORD wBitCount
; // Bits per pixel
100 DWORD dwBytesInRes
; // how many bytes in this resource?
102 } GRPCURSORICONDIRENTRY
;
106 WORD idReserved
; // Reserved (must be 0)
107 WORD idType
; // Resource type (1 for icons)
108 WORD idCount
; // How many images?
109 GRPCURSORICONDIRENTRY idEntries
[1]; // The entries for each image
113 typedef struct _THRDCARETINFO
121 } THRDCARETINFO
, *PTHRDCARETINFO
;
123 typedef struct tagROSMENUINFO
125 /* ----------- MENUINFO ----------- */
131 DWORD dwContextHelpID
;
132 ULONG_PTR dwMenuData
;
133 /* ----------- Extra ----------- */
134 HMENU Self
; /* Handle of this menu */
135 WORD Flags
; /* Menu flags (MF_POPUP, MF_SYSMENU) */
136 UINT FocusedItem
; /* Currently focused item */
137 UINT MenuItemCount
; /* Number of items in the menu */
138 HWND Wnd
; /* Window containing the menu */
139 WORD Width
; /* Width of the whole menu */
140 WORD Height
; /* Height of the whole menu */
141 HWND WndOwner
; /* window receiving the messages for ownerdraw */
142 BOOL TimeToHide
; /* Request hiding when receiving a second click in the top-level menu item */
143 SIZE maxBmpSize
; /* Maximum size of the bitmap items in MIIM_BITMAP state */
144 } ROSMENUINFO
, *PROSMENUINFO
;
146 /* (other FocusedItem values give the position of the focused item) */
147 #define NO_SELECTED_ITEM 0xffff
149 typedef struct tagROSMENUITEMINFO
151 /* ----------- MENUITEMINFOW ----------- */
159 HBITMAP hbmpUnchecked
;
164 /* ----------- Extra ----------- */
165 RECT Rect
; /* Item area (relative to menu window) */
166 UINT XTab
; /* X position of text after Tab */
167 } ROSMENUITEMINFO
, *PROSMENUITEMINFO
;