xref: /reactos/win32ss/include/ntusrtyp.h (revision 4561998a)
1 /*
2  * COPYRIGHT:       See COPYING in the top level directory
3  * PROJECT:         ReactOS Win32 Graphical Subsystem (WIN32K)
4  * FILE:            win32ss/include/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
138