Reactos
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 https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-2000-server/cc957204(v=technet.10) */
22typedef 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)
43typedef 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
51typedef 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
59typedef struct
60{
61 BYTE bWidth;
62 BYTE bHeight;
63 BYTE bColorCount;
64 BYTE bReserved;
65} ICONRESDIR;
66
67typedef struct
68{
69 WORD wWidth;
70 WORD wHeight;
71} CURSORRESDIR;
72
73typedef 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
79typedef struct
80{
81 WORD wWidth;
82 WORD wHeight;
83} CURSORDIR;
84
85typedef 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
97typedef struct
98{
99 WORD idReserved;
100 WORD idType;
101 WORD idCount;
102 CURSORICONDIRENTRY idEntries[1];
103} CURSORICONDIR;
104
105typedef 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
118typedef 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
127typedef 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