ReactOS 0.4.16-dev-91-g764881a
monslctl.h
Go to the documentation of this file.
1#pragma once
2
3/* Control extended styles */
4#define MSLM_EX_ALLOWSELECTNONE 0x1
5#define MSLM_EX_ALLOWSELECTDISABLED 0x2
6#define MSLM_EX_HIDENUMBERONSINGLE 0x4
7#define MSLM_EX_HIDENUMBERS 0x8
8#define MSLM_EX_SELECTONRIGHTCLICK 0x10
9#define MSLM_EX_SELECTBYNUMKEY 0x20
10#define MSLM_EX_SELECTBYARROWKEY 0x40
11
12/* MONSL_MONINFO Flags */
13#define MSL_MIF_DISABLED 0x1
14
15typedef struct _MONSL_MONINFO
16{
19 DWORD Flags; /* MSL_MIF_* */
22
23typedef struct _MONSL_MONNMHDR
24{
27 /* NOTE: MonitorInfo is only valid if Index >= 0 */
30
32{
33 /* Used with MSLN_MONITORCHANGING */
37
39{
40 /* Used with MSLN_MONITORCHANGING */
45
46/*
47 * MSLN_MONITORCHANGING
48 * This notification code is sent through WM_NOTIFY before another monitor
49 * can be selected. This notification is not sent in response to a
50 * MSLM_SETCURSEL message.
51 *
52 * lParam: PMONSL_MONNMMONITORCHANGING
53 * Change AllowChanging to FALSE to prevent the new monitor to
54 * be selected.
55 */
56#define MSLN_MONITORCHANGING 101
57
58/*
59 * MSLN_MONITORCHANGED
60 * This notification code is sent through WM_NOTIFY after a new monitor
61 * was selected. This notification is not sent in response to a
62 * MSLM_SETCURSEL message.
63 *
64 * lParam: PMONSL_MONNMHDR
65 */
66#define MSLN_MONITORCHANGED 102
67
68/*
69 * MSLN_RBUTTONUP
70 * This notification code is sent through WM_NOTIFY after the user did a
71 * right click on the control. If the control's extended style
72 * MSLM_EX_SELECTONRIGHTCLICK is set and the user clicked on a monitor,
73 * that monitor is selected and relevant notifications are sent before
74 * this notification is sent.
75 *
76 * lParam: PMONSL_MONNMBUTTONCLICKED
77 */
78#define MSLN_RBUTTONUP 103
79
80/*
81 * MSLM_SETMONITORSINFO
82 * wParam: DWORD
83 * Count of MONSL_MONINFO structures provided as lParam.
84 * lParam: PMONSL_MONINFO
85 * Array of wParam MONSL_MONINFO structures.
86 *
87 * Returns non-zero value if successful.
88 */
89#define MSLM_SETMONITORSINFO (WM_USER + 0x10)
90
91/*
92 * MSLM_GETMONITORSINFO
93 * wParam: DWORD
94 * Length of MONSL_MONINFO array buffer provided in lParam.
95 * lParam: PMONSL_MONINFO
96 * Array of wParam MONSL_MONINFO structures
97 *
98 * Returns number of structures copied.
99 */
100#define MSLM_GETMONITORSINFO (WM_USER + 0x11)
101
102/*
103 * MSLM_GETMONITORINFOCOUNT
104 * wParam: Ignored.
105 * lParam: Ignored.
106 *
107 * Returns number of monitors.
108 */
109#define MSLM_GETMONITORINFOCOUNT (WM_USER + 0x12)
110
111/*
112 * MSLM_HITTEST
113 * wParam: PPOINT
114 * Pointer to a POINT structure specifying the coordinates
115 * relative to the client area of the control.
116 * lParam: Ignored.
117 *
118 * Returns the index of the monitor at this point, or -1.
119 */
120#define MSLM_HITTEST (WM_USER + 0x13)
121
122/*
123 * MSLM_SETCURSEL
124 * wParam: INT
125 * Selects the monitor with this index. Pass -1 to clear the selection.
126 * lParam: Ignored.
127 *
128 * Returns a non-zero value if successful.
129 */
130#define MSLM_SETCURSEL (WM_USER + 0x14)
131
132/*
133 * MSLM_GETCURSEL
134 * wParam: Ignored.
135 * lParam: Ignored.
136 *
137 * Returns the index of the selected monitor, or -1 if none is currently selected.
138 */
139#define MSLM_GETCURSEL (WM_USER + 0x15)
140
141/*
142 * MSLM_SETMONITORINFO
143 * wParam: INT
144 * Index of the monitor information that is queried.
145 * lParam: PMONSL_MONINFO
146 * Pointer to a MONSL_MONINFO structures.
147 *
148 * Returns non-zero value if successful.
149 */
150#define MSLM_SETMONITORINFO (WM_USER + 0x16)
151
152/*
153 * MSLM_GETMONITORINFO
154 * wParam: INT
155 * Index of the monitor information to be changed.
156 * lParam: PMONSL_MONINFO
157 * Pointer to a MONSL_MONINFO structures.
158 *
159 * Returns non-zero value if successful.
160 */
161#define MSLM_GETMONITORINFO (WM_USER + 0x17)
162
163/*
164 * MSLM_SETEXSTYLE
165 * wParam: Ignored.
166 * lParam: DWORD
167 * Can be a combination of the following flags:
168 * * MSLM_EX_ALLOWSELECTNONE
169 * Allow deselecting a monitor by clicking into
170 * unused areas of the control.
171 * * MSLM_EX_ALLOWSELECTDISABLED
172 * Allow selecting disabled monitors.
173 * * MSLM_EX_HIDENUMBERONSINGLE
174 * Hides the monitor number if the control only
175 * displays one monitor.
176 * * MSLM_EX_HIDENUMBERS
177 * Does not show monitor numbers.
178 * * MSLM_EX_SELECTONRIGHTCLICK
179 * Selects a monitor when the user right clicks
180 * on it.
181 * * MSLM_EX_SELECTBYNUMKEY
182 * Allows selecting a monitor by using the keys
183 * '1' to '9'.
184 * * MSLM_EX_SELECTBYARROWKEY
185 * Allows selecting a monitor using the arrow keys.
186 *
187 * Returns non-zero value if successful.
188 */
189#define MSLM_SETEXSTYLE (WM_USER + 0x18)
190
191/*
192 * MSLM_GETEXSTYLE
193 * wParam: Ignored.
194 * lParam: Ignored
195 *
196 * Returns the control's extended style flags.
197 */
198#define MSLM_GETEXSTYLE (WM_USER + 0x19)
199
200/*
201 * MSLM_GETMONITORRECT
202 * wParam: INT
203 * Index of the monitor whose display rectangle is queried.
204 * lParam: PRECT
205 * Pointer to a RECT structure that receives the rectangle
206 * in coordinates relative to the control's client area.
207 *
208 * Returns a positive value if the rectangle is visible.
209 * Returns zero if the rectangle is invisible.
210 * Returns a negative value if the index is not valid.
211 */
212#define MSLM_GETMONITORRECT (WM_USER + 0x20)
213
HINSTANCE hInstance
Definition: charmap.c:19
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
VOID UnregisterMonitorSelectionControl(IN HINSTANCE hInstance)
Definition: monslctl.c:1655
struct _MONSL_MONINFO MONSL_MONINFO
struct _MONSL_MONNMMONITORCHANGING * PMONSL_MONNMMONITORCHANGING
struct _MONSL_MONINFO * PMONSL_MONINFO
struct _MONSL_MONNMBUTTONCLICKED * PMONSL_MONNMBUTTONCLICKED
struct _MONSL_MONNMBUTTONCLICKED MONSL_MONNMBUTTONCLICKED
struct _MONSL_MONNMHDR MONSL_MONNMHDR
struct _MONSL_MONNMMONITORCHANGING MONSL_MONNMMONITORCHANGING
BOOL RegisterMonitorSelectionControl(IN HINSTANCE hInstance)
Definition: monslctl.c:1638
struct _MONSL_MONNMHDR * PMONSL_MONNMHDR
DWORD Flags
Definition: monslctl.h:19
LPARAM lParam
Definition: monslctl.h:20
POINT Position
Definition: monslctl.h:17
MONSL_MONNMHDR hdr
Definition: monslctl.h:34
MONSL_MONINFO MonitorInfo
Definition: monslctl.h:28
MONSL_MONNMHDR hdr
Definition: monslctl.h:41
int32_t INT
Definition: typedefs.h:58
#define IN
Definition: typedefs.h:39
LONG_PTR LPARAM
Definition: windef.h:208