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