Synchronize with trunk's revision r57659.
[reactos.git] / win32ss / include / ntusrtyp.h
1 /*
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)
7 */
8
9 /* INCLUDES ******************************************************************/
10
11 #ifndef _NTUSRTYP_
12 #define _NTUSRTYP_
13
14 /* ENUMERATIONS **************************************************************/
15
16 /* TYPES *********************************************************************/
17
18 typedef struct _PATRECT
19 {
20 RECT r;
21 HBRUSH hBrush;
22 } PATRECT, * PPATRECT;
23
24 /* Bitfields for UserpreferencesMask SPI_ values (with defaults) */
25 /* See also http://technet.microsoft.com/nl-nl/library/cc957204(en-us).aspx */
26 typedef struct {
27 DWORD bActiveWindowTracking:1; //0 SPI_GETACTIVEWINDOWTRACKING
28 DWORD bMenuAnimation:1; //1 SPI_GETMENUANIMATION
29 DWORD bComboBoxAnimation:1; //1 SPI_GETCOMBOBOXANIMATION
30 DWORD bListBoxSmoothScrolling:1; //1 SPI_GETLISTBOXSMOOTHSCROLLING
31 DWORD bGradientCaptions:1; //1 SPI_GETGRADIENTCAPTIONS
32 DWORD bKeyboardCues:1; //0 SPI_GETKEYBOARDCUES
33 DWORD bActiveWndTrkZorder:1; //0 SPI_GETACTIVEWNDTRKZORDER
34 DWORD bHotTracking:1; //1 SPI_GETHOTTRACKING
35 DWORD bReserved1:1; //0 Reserved
36 DWORD bMenuFade:1; //1 SPI_GETMENUFADE
37 DWORD bSelectionFade:1; //1 SPI_GETSELECTIONFADE
38 DWORD bTooltipAnimation:1; //1 SPI_GETTOOLTIPANIMATION
39 DWORD bTooltipFade:1; //1 SPI_GETTOOLTIPFADE
40 DWORD bCursorShadow:1; //1 SPI_GETCURSORSHADOW
41 DWORD bReserved2:17; //0 Reserved
42 DWORD bUiEffects:1; //1 SPI_GETUIEFFECTS
43 } USERPREFERENCESMASK, *PUSERPREFERENCESMASK;
44
45 /* Structures for reading icon/cursor files and resources */
46 #pragma pack(push,1)
47 typedef struct _ICONIMAGE
48 {
49 BITMAPINFOHEADER icHeader; // DIB header
50 RGBQUAD icColors[1]; // Color table
51 BYTE icXOR[1]; // DIB bits for XOR mask
52 BYTE icAND[1]; // DIB bits for AND mask
53 } ICONIMAGE, *LPICONIMAGE;
54
55 typedef struct _CURSORIMAGE
56 {
57 BITMAPINFOHEADER icHeader; // DIB header
58 RGBQUAD icColors[1]; // Color table
59 BYTE icXOR[1]; // DIB bits for XOR mask
60 BYTE icAND[1]; // DIB bits for AND mask
61 } CURSORIMAGE, *LPCURSORIMAGE;
62
63 typedef struct
64 {
65 BYTE bWidth;
66 BYTE bHeight;
67 BYTE bColorCount;
68 BYTE bReserved;
69 } ICONRESDIR;
70
71 typedef struct
72 {
73 WORD wWidth;
74 WORD wHeight;
75 } CURSORRESDIR;
76
77 typedef struct
78 {
79 WORD wPlanes; // Number of Color Planes in the XOR image
80 WORD wBitCount; // Bits per pixel in the XOR image
81 } ICONDIR;
82
83 typedef struct
84 {
85 WORD wWidth;
86 WORD wHeight;
87 } CURSORDIR;
88
89 typedef struct
90 { union
91 { ICONRESDIR icon;
92 CURSORDIR cursor;
93 } ResInfo;
94 WORD wPlanes;
95 WORD wBitCount;
96 DWORD dwBytesInRes;
97 WORD wResId;
98 } CURSORICONDIRENTRY;
99
100 typedef struct
101 {
102 WORD idReserved;
103 WORD idType;
104 WORD idCount;
105 CURSORICONDIRENTRY idEntries[1];
106 } CURSORICONDIR;
107
108 typedef struct
109 {
110 union
111 {
112 ICONRESDIR icon;
113 CURSORRESDIR cursor;
114 } ResInfo;
115 WORD wPlanes; // Color Planes
116 WORD wBitCount; // Bits per pixel
117 DWORD dwBytesInRes; // how many bytes in this resource?
118 WORD nID; // the ID
119 } GRPCURSORICONDIRENTRY;
120
121 typedef struct
122 {
123 WORD idReserved; // Reserved (must be 0)
124 WORD idType; // Resource type (1 for icons)
125 WORD idCount; // How many images?
126 GRPCURSORICONDIRENTRY idEntries[1]; // The entries for each image
127 } GRPCURSORICONDIR;
128 #pragma pack(pop)
129
130 typedef struct _THRDCARETINFO
131 {
132 HWND hWnd;
133 HBITMAP Bitmap;
134 POINT Pos;
135 SIZE Size;
136 BYTE Visible;
137 BYTE Showing;
138 } THRDCARETINFO, *PTHRDCARETINFO;
139
140 #endif