· 6 years ago · Apr 05, 2020, 07:14 AM
1<head>
2<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
3</head>
4<PRE>/****************************************************************************
5* *
6* winuser.h -- USER procedure declarations, constant definitions and macros *
7* *
8* Copyright (c) 1985-1996, Microsoft Corp. All rights reserved. *
9* *
10****************************************************************************/
11</PRE>
12<PRE>#ifndef _WINUSER_
13#define _WINUSER_</PRE>
14<PRE>//
15// Define API decoration for direct importing of DLL references.
16//</PRE>
17<PRE>#if !defined(_USER32_)
18#define WINUSERAPI DECLSPEC_IMPORT
19#else
20#define WINUSERAPI
21#endif</PRE>
22<PRE>#ifdef __cplusplus
23extern "C" {
24#endif /* __cplusplus */
25</PRE>
26<PRE>#ifndef WINVER
27#define WINVER 0x0400 /* version 4.0 */
28#endif /* !WINVER */</PRE>
29<PRE>#include <stdarg.h></PRE>
30<PRE>#ifndef NOUSER</PRE>
31<PRE>typedef HANDLE HDWP;
32typedef VOID MENUTEMPLATEA;
33typedef VOID MENUTEMPLATEW;
34#ifdef UNICODE
35typedef MENUTEMPLATEW MENUTEMPLATE;
36#else
37typedef MENUTEMPLATEA MENUTEMPLATE;
38#endif // UNICODE
39typedef PVOID LPMENUTEMPLATEA;
40typedef PVOID LPMENUTEMPLATEW;
41#ifdef UNICODE
42typedef LPMENUTEMPLATEW LPMENUTEMPLATE;
43#else
44typedef LPMENUTEMPLATEA LPMENUTEMPLATE;
45#endif // UNICODE</PRE>
46<PRE>typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);</PRE>
47<PRE>#ifdef STRICT</PRE>
48<PRE>typedef BOOL (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
49typedef VOID (CALLBACK* TIMERPROC)(HWND, UINT, UINT, DWORD);
50typedef BOOL (CALLBACK* GRAYSTRINGPROC)(HDC, LPARAM, int);
51typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM);
52typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);
53typedef VOID (CALLBACK* SENDASYNCPROC)(HWND, UINT, DWORD, LRESULT);</PRE>
54<PRE>typedef BOOL (CALLBACK* PROPENUMPROCA)(HWND, LPCSTR, HANDLE);
55typedef BOOL (CALLBACK* PROPENUMPROCW)(HWND, LPCWSTR, HANDLE);</PRE>
56<PRE>typedef BOOL (CALLBACK* PROPENUMPROCEXA)(HWND, LPSTR, HANDLE, DWORD);
57typedef BOOL (CALLBACK* PROPENUMPROCEXW)(HWND, LPWSTR, HANDLE, DWORD);</PRE>
58<PRE>typedef int (CALLBACK* EDITWORDBREAKPROCA)(LPSTR lpch, int ichCurrent, int cch, int code);
59typedef int (CALLBACK* EDITWORDBREAKPROCW)(LPWSTR lpch, int ichCurrent, int cch, int code);</PRE>
60<PRE>#if(WINVER >= 0x0400)
61typedef BOOL (CALLBACK* DRAWSTATEPROC)(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy);
62#endif /* WINVER >= 0x0400 */
63#else /* !STRICT */</PRE>
64<PRE>typedef FARPROC DLGPROC;
65typedef FARPROC TIMERPROC;
66typedef FARPROC GRAYSTRINGPROC;
67typedef FARPROC WNDENUMPROC;
68typedef FARPROC HOOKPROC;
69typedef FARPROC SENDASYNCPROC;</PRE>
70<PRE>typedef FARPROC EDITWORDBREAKPROCA;
71typedef FARPROC EDITWORDBREAKPROCW;</PRE>
72<PRE>typedef FARPROC PROPENUMPROCA;
73typedef FARPROC PROPENUMPROCW;</PRE>
74<PRE>typedef FARPROC PROPENUMPROCEXA;
75typedef FARPROC PROPENUMPROCEXW;</PRE>
76<PRE>#if(WINVER >= 0x0400)
77typedef FARPROC DRAWSTATEPROC;
78#endif /* WINVER >= 0x0400 */
79#endif /* !STRICT */</PRE>
80<PRE>#ifdef UNICODE
81typedef PROPENUMPROCW PROPENUMPROC;
82typedef PROPENUMPROCEXW PROPENUMPROCEX;
83typedef EDITWORDBREAKPROCW EDITWORDBREAKPROC;
84#else /* !UNICODE */
85typedef PROPENUMPROCA PROPENUMPROC;
86typedef PROPENUMPROCEXA PROPENUMPROCEX;
87typedef EDITWORDBREAKPROCA EDITWORDBREAKPROC;
88#endif /* UNICODE */</PRE>
89<PRE>#ifdef STRICT</PRE>
90<PRE>typedef BOOL (CALLBACK* NAMEENUMPROCA)(LPSTR, LPARAM);
91typedef BOOL (CALLBACK* NAMEENUMPROCW)(LPWSTR, LPARAM);</PRE>
92<PRE>typedef NAMEENUMPROCA WINSTAENUMPROCA;
93typedef NAMEENUMPROCA DESKTOPENUMPROCA;
94typedef NAMEENUMPROCW WINSTAENUMPROCW;
95typedef NAMEENUMPROCW DESKTOPENUMPROCW;</PRE>
96<PRE>#else /* !STRICT */</PRE>
97<PRE>typedef FARPROC NAMEENUMPROCA;
98typedef FARPROC NAMEENUMPROCW;
99typedef FARPROC WINSTAENUMPROCA;
100typedef FARPROC DESKTOPENUMPROCA;
101typedef FARPROC WINSTAENUMPROCW;
102typedef FARPROC DESKTOPENUMPROCW;</PRE>
103<PRE>#endif /* !STRICT */</PRE>
104<PRE>#ifdef UNICODE
105typedef WINSTAENUMPROCW WINSTAENUMPROC;
106typedef DESKTOPENUMPROCW DESKTOPENUMPROC;
107#else /* !UNICODE */
108typedef WINSTAENUMPROCA WINSTAENUMPROC;
109typedef DESKTOPENUMPROCA DESKTOPENUMPROC;
110#endif /* UNICODE */</PRE>
111<PRE>#define MAKEINTRESOURCEA(i) (LPSTR)((DWORD)((WORD)(i)))
112#define MAKEINTRESOURCEW(i) (LPWSTR)((DWORD)((WORD)(i)))
113#ifdef UNICODE
114#define MAKEINTRESOURCE MAKEINTRESOURCEW
115#else
116#define MAKEINTRESOURCE MAKEINTRESOURCEA
117#endif // !UNICODE</PRE>
118<PRE>#ifndef NORESOURCE</PRE>
119<PRE>/*
120 * Predefined Resource Types
121 */
122#define RT_CURSOR MAKEINTRESOURCE(1)
123#define RT_BITMAP MAKEINTRESOURCE(2)
124#define RT_ICON MAKEINTRESOURCE(3)
125#define RT_MENU MAKEINTRESOURCE(4)
126#define RT_DIALOG MAKEINTRESOURCE(5)
127#define RT_STRING MAKEINTRESOURCE(6)
128#define RT_FONTDIR MAKEINTRESOURCE(7)
129#define RT_FONT MAKEINTRESOURCE(8)
130#define RT_ACCELERATOR MAKEINTRESOURCE(9)
131#define RT_RCDATA MAKEINTRESOURCE(10)
132#define RT_MESSAGETABLE MAKEINTRESOURCE(11)</PRE>
133<PRE>#define DIFFERENCE 11
134#define RT_GROUP_CURSOR MAKEINTRESOURCE((DWORD)RT_CURSOR + DIFFERENCE)
135#define RT_GROUP_ICON MAKEINTRESOURCE((DWORD)RT_ICON + DIFFERENCE)
136#define RT_VERSION MAKEINTRESOURCE(16)
137#define RT_DLGINCLUDE MAKEINTRESOURCE(17)
138#if(WINVER >= 0x0400)
139#define RT_PLUGPLAY MAKEINTRESOURCE(19)
140#define RT_VXD MAKEINTRESOURCE(20)
141#define RT_ANICURSOR MAKEINTRESOURCE(21)
142#define RT_ANIICON MAKEINTRESOURCE(22)
143#endif /* WINVER >= 0x0400 */</PRE>
144<PRE>#endif /* !NORESOURCE */</PRE>
145<PRE>WINUSERAPI
146int
147WINAPI
148wvsprintfA(
149 LPSTR,
150 LPCSTR,
151 va_list arglist);
152WINUSERAPI
153int
154WINAPI
155wvsprintfW(
156 LPWSTR,
157 LPCWSTR,
158 va_list arglist);
159#ifdef UNICODE
160#define wvsprintf wvsprintfW
161#else
162#define wvsprintf wvsprintfA
163#endif // !UNICODE</PRE>
164<PRE>WINUSERAPI int WINAPIV wsprintfA(LPSTR, LPCSTR, ...);
165WINUSERAPI int WINAPIV wsprintfW(LPWSTR, LPCWSTR, ...);
166#ifdef UNICODE
167#define wsprintf wsprintfW
168#else
169#define wsprintf wsprintfA
170#endif // !UNICODE</PRE>
171<PRE>#ifndef NOSCROLL</PRE>
172<PRE>/*
173 * Scroll Bar Constants
174 */
175#define SB_HORZ 0
176#define SB_VERT 1
177#define SB_CTL 2
178#define SB_BOTH 3</PRE>
179<PRE>/*
180 * Scroll Bar Commands
181 */
182#define SB_LINEUP 0
183#define SB_LINELEFT 0
184#define SB_LINEDOWN 1
185#define SB_LINERIGHT 1
186#define SB_PAGEUP 2
187#define SB_PAGELEFT 2
188#define SB_PAGEDOWN 3
189#define SB_PAGERIGHT 3
190#define SB_THUMBPOSITION 4
191#define SB_THUMBTRACK 5
192#define SB_TOP 6
193#define SB_LEFT 6
194#define SB_BOTTOM 7
195#define SB_RIGHT 7
196#define SB_ENDSCROLL 8</PRE>
197<PRE>#endif /* !NOSCROLL */</PRE>
198<PRE>#ifndef NOSHOWWINDOW</PRE>
199<PRE>// begin_r_winuser</PRE>
200<PRE>/*
201 * ShowWindow() Commands
202 */
203#define SW_HIDE 0
204#define SW_SHOWNORMAL 1
205#define SW_NORMAL 1
206#define SW_SHOWMINIMIZED 2
207#define SW_SHOWMAXIMIZED 3
208#define SW_MAXIMIZE 3
209#define SW_SHOWNOACTIVATE 4
210#define SW_SHOW 5
211#define SW_MINIMIZE 6
212#define SW_SHOWMINNOACTIVE 7
213#define SW_SHOWNA 8
214#define SW_RESTORE 9
215#define SW_SHOWDEFAULT 10
216#define SW_MAX 10</PRE>
217<PRE>/*
218 * Old ShowWindow() Commands
219 */
220#define HIDE_WINDOW 0
221#define SHOW_OPENWINDOW 1
222#define SHOW_ICONWINDOW 2
223#define SHOW_FULLSCREEN 3
224#define SHOW_OPENNOACTIVATE 4</PRE>
225<PRE>/*
226 * Identifiers for the WM_SHOWWINDOW message
227 */
228#define SW_PARENTCLOSING 1
229#define SW_OTHERZOOM 2
230#define SW_PARENTOPENING 3
231#define SW_OTHERUNZOOM 4</PRE>
232<PRE>// end_r_winuser</PRE>
233<PRE>#endif /* !NOSHOWWINDOW */</PRE>
234<PRE>/*
235 * WM_KEYUP/DOWN/CHAR HIWORD(lParam) flags
236 */
237#define KF_EXTENDED 0x0100
238#define KF_DLGMODE 0x0800
239#define KF_MENUMODE 0x1000
240#define KF_ALTDOWN 0x2000
241#define KF_REPEAT 0x4000
242#define KF_UP 0x8000</PRE>
243<PRE>#ifndef NOVIRTUALKEYCODES</PRE>
244<PRE>// begin_r_winuser</PRE>
245<PRE>/*
246 * Virtual Keys, Standard Set
247 */
248#define VK_LBUTTON 0x01
249#define VK_RBUTTON 0x02
250#define VK_CANCEL 0x03
251#define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */</PRE>
252<PRE>#define VK_BACK 0x08
253#define VK_TAB 0x09</PRE>
254<PRE>#define VK_CLEAR 0x0C
255#define VK_RETURN 0x0D</PRE>
256<PRE>#define VK_SHIFT 0x10
257#define VK_CONTROL 0x11
258#define VK_MENU 0x12
259#define VK_PAUSE 0x13
260#define VK_CAPITAL 0x14
261</PRE>
262<PRE>#define VK_ESCAPE 0x1B</PRE>
263<PRE>#define VK_SPACE 0x20
264#define VK_PRIOR 0x21
265#define VK_NEXT 0x22
266#define VK_END 0x23
267#define VK_HOME 0x24
268#define VK_LEFT 0x25
269#define VK_UP 0x26
270#define VK_RIGHT 0x27
271#define VK_DOWN 0x28
272#define VK_SELECT 0x29
273#define VK_PRINT 0x2A
274#define VK_EXECUTE 0x2B
275#define VK_SNAPSHOT 0x2C
276#define VK_INSERT 0x2D
277#define VK_DELETE 0x2E
278#define VK_HELP 0x2F</PRE>
279<PRE>/* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
280/* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */</PRE>
281<PRE>#define VK_LWIN 0x5B
282#define VK_RWIN 0x5C
283#define VK_APPS 0x5D</PRE>
284<PRE>#define VK_NUMPAD0 0x60
285#define VK_NUMPAD1 0x61
286#define VK_NUMPAD2 0x62
287#define VK_NUMPAD3 0x63
288#define VK_NUMPAD4 0x64
289#define VK_NUMPAD5 0x65
290#define VK_NUMPAD6 0x66
291#define VK_NUMPAD7 0x67
292#define VK_NUMPAD8 0x68
293#define VK_NUMPAD9 0x69
294#define VK_MULTIPLY 0x6A
295#define VK_ADD 0x6B
296#define VK_SEPARATOR 0x6C
297#define VK_SUBTRACT 0x6D
298#define VK_DECIMAL 0x6E
299#define VK_DIVIDE 0x6F
300#define VK_F1 0x70
301#define VK_F2 0x71
302#define VK_F3 0x72
303#define VK_F4 0x73
304#define VK_F5 0x74
305#define VK_F6 0x75
306#define VK_F7 0x76
307#define VK_F8 0x77
308#define VK_F9 0x78
309#define VK_F10 0x79
310#define VK_F11 0x7A
311#define VK_F12 0x7B
312#define VK_F13 0x7C
313#define VK_F14 0x7D
314#define VK_F15 0x7E
315#define VK_F16 0x7F
316#define VK_F17 0x80
317#define VK_F18 0x81
318#define VK_F19 0x82
319#define VK_F20 0x83
320#define VK_F21 0x84
321#define VK_F22 0x85
322#define VK_F23 0x86
323#define VK_F24 0x87</PRE>
324<PRE>#define VK_NUMLOCK 0x90
325#define VK_SCROLL 0x91</PRE>
326<PRE>/*
327 * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
328 * Used only as parameters to GetAsyncKeyState() and GetKeyState().
329 * No other API or message will distinguish left and right keys in this way.
330 */
331#define VK_LSHIFT 0xA0
332#define VK_RSHIFT 0xA1
333#define VK_LCONTROL 0xA2
334#define VK_RCONTROL 0xA3
335#define VK_LMENU 0xA4
336#define VK_RMENU 0xA5</PRE>
337<PRE>#if(WINVER >= 0x0400)
338#define VK_PROCESSKEY 0xE5
339#endif /* WINVER >= 0x0400 */</PRE>
340<PRE>#define VK_ATTN 0xF6
341#define VK_CRSEL 0xF7
342#define VK_EXSEL 0xF8
343#define VK_EREOF 0xF9
344#define VK_PLAY 0xFA
345#define VK_ZOOM 0xFB
346#define VK_NONAME 0xFC
347#define VK_PA1 0xFD
348#define VK_OEM_CLEAR 0xFE</PRE>
349<PRE>// end_r_winuser</PRE>
350<PRE>#endif /* !NOVIRTUALKEYCODES */</PRE>
351<PRE>#ifndef NOWH</PRE>
352<PRE>/*
353 * SetWindowsHook() codes
354 */
355#define WH_MIN (-1)
356#define WH_MSGFILTER (-1)
357#define WH_JOURNALRECORD 0
358#define WH_JOURNALPLAYBACK 1
359#define WH_KEYBOARD 2
360#define WH_GETMESSAGE 3
361#define WH_CALLWNDPROC 4
362#define WH_CBT 5
363#define WH_SYSMSGFILTER 6
364#define WH_MOUSE 7
365#define WH_HARDWARE 8
366#define WH_DEBUG 9
367#define WH_SHELL 10
368#define WH_FOREGROUNDIDLE 11
369#if(WINVER >= 0x0400)
370#define WH_CALLWNDPROCRET 12
371#endif /* WINVER >= 0x0400 */
372#if(WINVER >= 0x0400)
373#define WH_MAX 12
374#else
375#define WH_MAX 11
376#endif
377#define WH_MINHOOK WH_MIN
378#define WH_MAXHOOK WH_MAX</PRE>
379<PRE>/*
380 * Hook Codes
381 */
382#define HC_ACTION 0
383#define HC_GETNEXT 1
384#define HC_SKIP 2
385#define HC_NOREMOVE 3
386#define HC_NOREM HC_NOREMOVE
387#define HC_SYSMODALON 4
388#define HC_SYSMODALOFF 5</PRE>
389<PRE>/*
390 * CBT Hook Codes
391 */
392#define HCBT_MOVESIZE 0
393#define HCBT_MINMAX 1
394#define HCBT_QS 2
395#define HCBT_CREATEWND 3
396#define HCBT_DESTROYWND 4
397#define HCBT_ACTIVATE 5
398#define HCBT_CLICKSKIPPED 6
399#define HCBT_KEYSKIPPED 7
400#define HCBT_SYSCOMMAND 8
401#define HCBT_SETFOCUS 9</PRE>
402<PRE>/*
403 * HCBT_CREATEWND parameters pointed to by lParam
404 */
405typedef struct tagCBT_CREATEWNDA
406{
407 struct tagCREATESTRUCTA *lpcs;
408 HWND hwndInsertAfter;
409} CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
410/*
411 * HCBT_CREATEWND parameters pointed to by lParam
412 */
413typedef struct tagCBT_CREATEWNDW
414{
415 struct tagCREATESTRUCTW *lpcs;
416 HWND hwndInsertAfter;
417} CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
418#ifdef UNICODE
419typedef CBT_CREATEWNDW CBT_CREATEWND;
420typedef LPCBT_CREATEWNDW LPCBT_CREATEWND;
421#else
422typedef CBT_CREATEWNDA CBT_CREATEWND;
423typedef LPCBT_CREATEWNDA LPCBT_CREATEWND;
424#endif // UNICODE</PRE>
425<PRE>/*
426 * HCBT_ACTIVATE structure pointed to by lParam
427 */
428typedef struct tagCBTACTIVATESTRUCT
429{
430 BOOL fMouse;
431 HWND hWndActive;
432} CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;</PRE>
433<PRE>/*
434 * WH_MSGFILTER Filter Proc Codes
435 */
436#define MSGF_DIALOGBOX 0
437#define MSGF_MESSAGEBOX 1
438#define MSGF_MENU 2
439#define MSGF_MOVE 3
440#define MSGF_SIZE 4
441#define MSGF_SCROLLBAR 5
442#define MSGF_NEXTWINDOW 6
443#define MSGF_MAINLOOP 8
444#define MSGF_MAX 8
445#define MSGF_USER 4096</PRE>
446<PRE>/*
447 * Shell support
448 */
449#define HSHELL_WINDOWCREATED 1
450#define HSHELL_WINDOWDESTROYED 2
451#define HSHELL_ACTIVATESHELLWINDOW 3</PRE>
452<PRE>#if(WINVER >= 0x0400)
453#define HSHELL_WINDOWACTIVATED 4
454#define HSHELL_GETMINRECT 5
455#define HSHELL_REDRAW 6
456#define HSHELL_TASKMAN 7
457#define HSHELL_LANGUAGE 8
458#endif /* WINVER >= 0x0400 */
459</PRE>
460<PRE>/*
461 * Message Structure used in Journaling
462 */
463typedef struct tagEVENTMSG {
464 UINT message;
465 UINT paramL;
466 UINT paramH;
467 DWORD time;
468 HWND hwnd;
469} EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG;</PRE>
470<PRE>typedef struct tagEVENTMSG *PEVENTMSG, NEAR *NPEVENTMSG, FAR *LPEVENTMSG;</PRE>
471<PRE>/*
472 * Message structure used by WH_CALLWNDPROC
473 */
474typedef struct tagCWPSTRUCT {
475 LPARAM lParam;
476 WPARAM wParam;
477 UINT message;
478 HWND hwnd;
479} CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT;</PRE>
480<PRE>#if(WINVER >= 0x0400)
481/*
482 * Message structure used by WH_CALLWNDPROCRET
483 */
484typedef struct tagCWPRETSTRUCT {
485 LRESULT lResult;
486 LPARAM lParam;
487 WPARAM wParam;
488 UINT message;
489 HWND hwnd;
490} CWPRETSTRUCT, *PCWPRETSTRUCT, NEAR *NPCWPRETSTRUCT, FAR *LPCWPRETSTRUCT;
491#endif /* WINVER >= 0x0400 */</PRE>
492<PRE>/*
493 * Structure used by WH_DEBUG
494 */
495typedef struct tagDEBUGHOOKINFO
496{
497 DWORD idThread;
498 DWORD idThreadInstaller;
499 LPARAM lParam;
500 WPARAM wParam;
501 int code;
502} DEBUGHOOKINFO, *PDEBUGHOOKINFO, NEAR *NPDEBUGHOOKINFO, FAR* LPDEBUGHOOKINFO;</PRE>
503<PRE>/*
504 * Structure used by WH_MOUSE
505 */
506typedef struct tagMOUSEHOOKSTRUCT {
507 POINT pt;
508 HWND hwnd;
509 UINT wHitTestCode;
510 DWORD dwExtraInfo;
511} MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;
512#if(WINVER >= 0x0400)
513/*
514 * Structure used by WH_HARDWARE
515 */
516typedef struct tagHARDWAREHOOKSTRUCT {
517 HWND hwnd;
518 UINT message;
519 WPARAM wParam;
520 LPARAM lParam;
521} HARDWAREHOOKSTRUCT, FAR *LPHARDWAREHOOKSTRUCT, *PHARDWAREHOOKSTRUCT;
522#endif /* WINVER >= 0x0400 */
523#endif /* !NOWH */</PRE>
524<PRE>/*
525 * Keyboard Layout API
526 */
527#define HKL_PREV 0
528#define HKL_NEXT 1
529</PRE>
530<PRE>#define KLF_ACTIVATE 0x00000001
531#define KLF_SUBSTITUTE_OK 0x00000002
532#define KLF_UNLOADPREVIOUS 0x00000004
533#define KLF_REORDER 0x00000008
534#if(WINVER >= 0x0400)
535#define KLF_REPLACELANG 0x00000010
536#define KLF_NOTELLSHELL 0x00000080
537#endif /* WINVER >= 0x0400 */</PRE>
538<PRE>/*
539 * Size of KeyboardLayoutName (number of characters), including nul terminator
540 */
541#define KL_NAMELENGTH 9</PRE>
542<PRE>WINUSERAPI
543HKL
544WINAPI
545LoadKeyboardLayoutA(
546 LPCSTR pwszKLID,
547 UINT Flags);
548WINUSERAPI
549HKL
550WINAPI
551LoadKeyboardLayoutW(
552 LPCWSTR pwszKLID,
553 UINT Flags);
554#ifdef UNICODE
555#define LoadKeyboardLayout LoadKeyboardLayoutW
556#else
557#define LoadKeyboardLayout LoadKeyboardLayoutA
558#endif // !UNICODE
559</PRE>
560<PRE>#if(WINVER >= 0x0400)
561WINUSERAPI
562HKL
563WINAPI
564ActivateKeyboardLayout(
565 HKL hkl,
566 UINT Flags);
567#else
568WINUSERAPI
569BOOL
570WINAPI
571ActivateKeyboardLayout(
572 HKL hkl,
573 UINT Flags);
574#endif /* WINVER >= 0x0400 */</PRE>
575<PRE>#if(WINVER >= 0x0400)
576WINUSERAPI
577int
578WINAPI
579ToUnicodeEx(
580 UINT wVirtKey,
581 UINT wScanCode,
582 PBYTE lpKeyState,
583 LPWSTR pwszBuff,
584 int cchBuff,
585 UINT wFlags,
586 HKL dwhkl);
587#endif /* WINVER >= 0x0400 */</PRE>
588<PRE>WINUSERAPI
589BOOL
590WINAPI
591UnloadKeyboardLayout(
592 HKL hkl);</PRE>
593<PRE>WINUSERAPI
594BOOL
595WINAPI
596GetKeyboardLayoutNameA(
597 LPSTR pwszKLID);
598WINUSERAPI
599BOOL
600WINAPI
601GetKeyboardLayoutNameW(
602 LPWSTR pwszKLID);
603#ifdef UNICODE
604#define GetKeyboardLayoutName GetKeyboardLayoutNameW
605#else
606#define GetKeyboardLayoutName GetKeyboardLayoutNameA
607#endif // !UNICODE</PRE>
608<PRE>#if(WINVER >= 0x0400)
609WINUSERAPI
610int
611WINAPI
612GetKeyboardLayoutList(
613 int nBuff,
614 HKL FAR *lpList);</PRE>
615<PRE>WINUSERAPI
616HKL
617WINAPI
618GetKeyboardLayout(
619 DWORD dwLayout
620);
621#endif /* WINVER >= 0x0400 */</PRE>
622<PRE>#ifndef NODESKTOP
623/*
624 * Desktop-specific access flags
625 */
626#define DESKTOP_READOBJECTS 0x0001L
627#define DESKTOP_CREATEWINDOW 0x0002L
628#define DESKTOP_CREATEMENU 0x0004L
629#define DESKTOP_HOOKCONTROL 0x0008L
630#define DESKTOP_JOURNALRECORD 0x0010L
631#define DESKTOP_JOURNALPLAYBACK 0x0020L
632#define DESKTOP_ENUMERATE 0x0040L
633#define DESKTOP_WRITEOBJECTS 0x0080L
634#define DESKTOP_SWITCHDESKTOP 0x0100L</PRE>
635<PRE>/*
636 * Desktop-specific control flags
637 */
638#define DF_ALLOWOTHERACCOUNTHOOK 0x0001L</PRE>
639<PRE>#ifdef _WINGDI_
640#ifndef NOGDI</PRE>
641<PRE>WINUSERAPI
642HDESK
643WINAPI
644CreateDesktopA(
645 LPSTR lpszDesktop,
646 LPSTR lpszDevice,
647 LPDEVMODEA pDevmode,
648 DWORD dwFlags,
649 DWORD dwDesiredAccess,
650 LPSECURITY_ATTRIBUTES lpsa);
651WINUSERAPI
652HDESK
653WINAPI
654CreateDesktopW(
655 LPWSTR lpszDesktop,
656 LPWSTR lpszDevice,
657 LPDEVMODEW pDevmode,
658 DWORD dwFlags,
659 DWORD dwDesiredAccess,
660 LPSECURITY_ATTRIBUTES lpsa);
661#ifdef UNICODE
662#define CreateDesktop CreateDesktopW
663#else
664#define CreateDesktop CreateDesktopA
665#endif // !UNICODE</PRE>
666<PRE>#endif /* NOGDI */
667#endif /* _WINGDI_ */</PRE>
668<PRE>WINUSERAPI
669HDESK
670WINAPI
671OpenDesktopA(
672 LPSTR lpszDesktop,
673 DWORD dwFlags,
674 BOOL fInherit,
675 DWORD dwDesiredAccess);
676WINUSERAPI
677HDESK
678WINAPI
679OpenDesktopW(
680 LPWSTR lpszDesktop,
681 DWORD dwFlags,
682 BOOL fInherit,
683 DWORD dwDesiredAccess);
684#ifdef UNICODE
685#define OpenDesktop OpenDesktopW
686#else
687#define OpenDesktop OpenDesktopA
688#endif // !UNICODE</PRE>
689<PRE>WINUSERAPI
690HDESK
691WINAPI
692OpenInputDesktop(
693 DWORD dwFlags,
694 BOOL fInherit,
695 DWORD dwDesiredAccess);</PRE>
696<PRE>WINUSERAPI
697BOOL
698WINAPI
699EnumDesktopsA(
700 HWINSTA hwinsta,
701 DESKTOPENUMPROCA lpEnumFunc,
702 LPARAM lParam);
703WINUSERAPI
704BOOL
705WINAPI
706EnumDesktopsW(
707 HWINSTA hwinsta,
708 DESKTOPENUMPROCW lpEnumFunc,
709 LPARAM lParam);
710#ifdef UNICODE
711#define EnumDesktops EnumDesktopsW
712#else
713#define EnumDesktops EnumDesktopsA
714#endif // !UNICODE</PRE>
715<PRE>WINUSERAPI
716BOOL
717WINAPI
718EnumDesktopWindows(
719 HDESK hDesktop,
720 WNDENUMPROC lpfn,
721 LPARAM lParam);</PRE>
722<PRE>WINUSERAPI
723BOOL
724WINAPI
725SwitchDesktop(
726 HDESK hDesktop);</PRE>
727<PRE>WINUSERAPI
728BOOL
729WINAPI
730SetThreadDesktop(
731 HDESK hDesktop);</PRE>
732<PRE>WINUSERAPI
733BOOL
734WINAPI
735CloseDesktop(
736 HDESK hDesktop);</PRE>
737<PRE>WINUSERAPI
738HDESK
739WINAPI
740GetThreadDesktop(
741 DWORD dwThreadId);</PRE>
742<PRE>#endif /* !NODESKTOP */</PRE>
743<PRE>#ifndef NOWINDOWSTATION
744/*
745 * Windowstation-specific access flags
746 */
747#define WINSTA_ENUMDESKTOPS 0x0001L
748#define WINSTA_READATTRIBUTES 0x0002L
749#define WINSTA_ACCESSCLIPBOARD 0x0004L
750#define WINSTA_CREATEDESKTOP 0x0008L
751#define WINSTA_WRITEATTRIBUTES 0x0010L
752#define WINSTA_ACCESSGLOBALATOMS 0x0020L
753#define WINSTA_EXITWINDOWS 0x0040L
754#define WINSTA_ENUMERATE 0x0100L
755#define WINSTA_READSCREEN 0x0200L</PRE>
756<PRE>/*
757 * Windowstation-specific attribute flags
758 */
759#define WSF_VISIBLE 0x0001L</PRE>
760<PRE>WINUSERAPI
761HWINSTA
762WINAPI
763CreateWindowStationA(
764 LPSTR lpwinsta,
765 DWORD dwReserved,
766 DWORD dwDesiredAccess,
767 LPSECURITY_ATTRIBUTES lpsa);
768WINUSERAPI
769HWINSTA
770WINAPI
771CreateWindowStationW(
772 LPWSTR lpwinsta,
773 DWORD dwReserved,
774 DWORD dwDesiredAccess,
775 LPSECURITY_ATTRIBUTES lpsa);
776#ifdef UNICODE
777#define CreateWindowStation CreateWindowStationW
778#else
779#define CreateWindowStation CreateWindowStationA
780#endif // !UNICODE</PRE>
781<PRE>WINUSERAPI
782HWINSTA
783WINAPI
784OpenWindowStationA(
785 LPSTR lpszWinSta,
786 BOOL fInherit,
787 DWORD dwDesiredAccess);
788WINUSERAPI
789HWINSTA
790WINAPI
791OpenWindowStationW(
792 LPWSTR lpszWinSta,
793 BOOL fInherit,
794 DWORD dwDesiredAccess);
795#ifdef UNICODE
796#define OpenWindowStation OpenWindowStationW
797#else
798#define OpenWindowStation OpenWindowStationA
799#endif // !UNICODE</PRE>
800<PRE>WINUSERAPI
801BOOL
802WINAPI
803EnumWindowStationsA(
804 WINSTAENUMPROCA lpEnumFunc,
805 LPARAM lParam);
806WINUSERAPI
807BOOL
808WINAPI
809EnumWindowStationsW(
810 WINSTAENUMPROCW lpEnumFunc,
811 LPARAM lParam);
812#ifdef UNICODE
813#define EnumWindowStations EnumWindowStationsW
814#else
815#define EnumWindowStations EnumWindowStationsA
816#endif // !UNICODE</PRE>
817<PRE>WINUSERAPI
818BOOL
819WINAPI
820CloseWindowStation(
821 HWINSTA hWinSta);</PRE>
822<PRE>WINUSERAPI
823BOOL
824WINAPI
825SetProcessWindowStation(
826 HWINSTA hWinSta);</PRE>
827<PRE>WINUSERAPI
828HWINSTA
829WINAPI
830GetProcessWindowStation(
831 VOID);
832#endif /* !NOWINDOWSTATION */</PRE>
833<PRE>#ifndef NOSECURITY</PRE>
834<PRE>WINUSERAPI
835BOOL
836WINAPI
837SetUserObjectSecurity(
838 HANDLE hObj,
839 PSECURITY_INFORMATION pSIRequested,
840 PSECURITY_DESCRIPTOR pSID);</PRE>
841<PRE>WINUSERAPI
842BOOL
843WINAPI
844GetUserObjectSecurity(
845 HANDLE hObj,
846 PSECURITY_INFORMATION pSIRequested,
847 PSECURITY_DESCRIPTOR pSID,
848 DWORD nLength,
849 LPDWORD lpnLengthNeeded);</PRE>
850<PRE>#define UOI_FLAGS 1
851#define UOI_NAME 2
852#define UOI_TYPE 3
853#define UOI_USER_SID 4</PRE>
854<PRE>typedef struct tagUSEROBJECTFLAGS {
855 BOOL fInherit;
856 BOOL fReserved;
857 DWORD dwFlags;
858} USEROBJECTFLAGS, *PUSEROBJECTFLAGS;</PRE>
859<PRE>WINUSERAPI
860BOOL
861WINAPI
862GetUserObjectInformationA(
863 HANDLE hObj,
864 int nIndex,
865 PVOID pvInfo,
866 DWORD nLength,
867 LPDWORD lpnLengthNeeded);
868WINUSERAPI
869BOOL
870WINAPI
871GetUserObjectInformationW(
872 HANDLE hObj,
873 int nIndex,
874 PVOID pvInfo,
875 DWORD nLength,
876 LPDWORD lpnLengthNeeded);
877#ifdef UNICODE
878#define GetUserObjectInformation GetUserObjectInformationW
879#else
880#define GetUserObjectInformation GetUserObjectInformationA
881#endif // !UNICODE</PRE>
882<PRE>WINUSERAPI
883BOOL
884WINAPI
885SetUserObjectInformationA(
886 HANDLE hObj,
887 int nIndex,
888 PVOID pvInfo,
889 DWORD nLength);
890WINUSERAPI
891BOOL
892WINAPI
893SetUserObjectInformationW(
894 HANDLE hObj,
895 int nIndex,
896 PVOID pvInfo,
897 DWORD nLength);
898#ifdef UNICODE
899#define SetUserObjectInformation SetUserObjectInformationW
900#else
901#define SetUserObjectInformation SetUserObjectInformationA
902#endif // !UNICODE</PRE>
903<PRE>#endif /* !NOSECURITY */</PRE>
904<PRE>#if(WINVER >= 0x0400)
905typedef struct tagWNDCLASSEXA {
906 UINT cbSize;
907 /* Win 3.x */
908 UINT style;
909 WNDPROC lpfnWndProc;
910 int cbClsExtra;
911 int cbWndExtra;
912 HINSTANCE hInstance;
913 HICON hIcon;
914 HCURSOR hCursor;
915 HBRUSH hbrBackground;
916 LPCSTR lpszMenuName;
917 LPCSTR lpszClassName;
918 /* Win 4.0 */
919 HICON hIconSm;
920} WNDCLASSEXA, *PWNDCLASSEXA, NEAR *NPWNDCLASSEXA, FAR *LPWNDCLASSEXA;
921typedef struct tagWNDCLASSEXW {
922 UINT cbSize;
923 /* Win 3.x */
924 UINT style;
925 WNDPROC lpfnWndProc;
926 int cbClsExtra;
927 int cbWndExtra;
928 HINSTANCE hInstance;
929 HICON hIcon;
930 HCURSOR hCursor;
931 HBRUSH hbrBackground;
932 LPCWSTR lpszMenuName;
933 LPCWSTR lpszClassName;
934 /* Win 4.0 */
935 HICON hIconSm;
936} WNDCLASSEXW, *PWNDCLASSEXW, NEAR *NPWNDCLASSEXW, FAR *LPWNDCLASSEXW;
937#ifdef UNICODE
938typedef WNDCLASSEXW WNDCLASSEX;
939typedef PWNDCLASSEXW PWNDCLASSEX;
940typedef NPWNDCLASSEXW NPWNDCLASSEX;
941typedef LPWNDCLASSEXW LPWNDCLASSEX;
942#else
943typedef WNDCLASSEXA WNDCLASSEX;
944typedef PWNDCLASSEXA PWNDCLASSEX;
945typedef NPWNDCLASSEXA NPWNDCLASSEX;
946typedef LPWNDCLASSEXA LPWNDCLASSEX;
947#endif // UNICODE
948#endif /* WINVER >= 0x0400 */</PRE>
949<PRE>typedef struct tagWNDCLASSA {
950 UINT style;
951 WNDPROC lpfnWndProc;
952 int cbClsExtra;
953 int cbWndExtra;
954 HINSTANCE hInstance;
955 HICON hIcon;
956 HCURSOR hCursor;
957 HBRUSH hbrBackground;
958 LPCSTR lpszMenuName;
959 LPCSTR lpszClassName;
960} WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA;
961typedef struct tagWNDCLASSW {
962 UINT style;
963 WNDPROC lpfnWndProc;
964 int cbClsExtra;
965 int cbWndExtra;
966 HINSTANCE hInstance;
967 HICON hIcon;
968 HCURSOR hCursor;
969 HBRUSH hbrBackground;
970 LPCWSTR lpszMenuName;
971 LPCWSTR lpszClassName;
972} WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;
973#ifdef UNICODE
974typedef WNDCLASSW WNDCLASS;
975typedef PWNDCLASSW PWNDCLASS;
976typedef NPWNDCLASSW NPWNDCLASS;
977typedef LPWNDCLASSW LPWNDCLASS;
978#else
979typedef WNDCLASSA WNDCLASS;
980typedef PWNDCLASSA PWNDCLASS;
981typedef NPWNDCLASSA NPWNDCLASS;
982typedef LPWNDCLASSA LPWNDCLASS;
983#endif // UNICODE
984
985</PRE>
986<PRE>#ifndef NOMSG</PRE>
987<PRE>/*
988 * Message structure
989 */
990typedef struct tagMSG {
991 HWND hwnd;
992 UINT message;
993 WPARAM wParam;
994 LPARAM lParam;
995 DWORD time;
996 POINT pt;
997} MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;</PRE>
998<PRE>#define POINTSTOPOINT(pt, pts) \
999 { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); \
1000 (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }</PRE>
1001<PRE>#define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y)))
1002#define MAKEWPARAM(l, h) (WPARAM)MAKELONG(l, h)
1003#define MAKELPARAM(l, h) (LPARAM)MAKELONG(l, h)
1004#define MAKELRESULT(l, h) (LRESULT)MAKELONG(l, h)
1005</PRE>
1006<PRE>#endif /* !NOMSG */</PRE>
1007<PRE>#ifndef NOWINOFFSETS</PRE>
1008<PRE>/*
1009 * Window field offsets for GetWindowLong()
1010 */
1011#define GWL_WNDPROC (-4)
1012#define GWL_HINSTANCE (-6)
1013#define GWL_HWNDPARENT (-8)
1014#define GWL_STYLE (-16)
1015#define GWL_EXSTYLE (-20)
1016#define GWL_USERDATA (-21)
1017#define GWL_ID (-12)</PRE>
1018<PRE>/*
1019 * Class field offsets for GetClassLong()
1020 */
1021#define GCL_MENUNAME (-8)
1022#define GCL_HBRBACKGROUND (-10)
1023#define GCL_HCURSOR (-12)
1024#define GCL_HICON (-14)
1025#define GCL_HMODULE (-16)
1026#define GCL_CBWNDEXTRA (-18)
1027#define GCL_CBCLSEXTRA (-20)
1028#define GCL_WNDPROC (-24)
1029#define GCL_STYLE (-26)
1030#define GCW_ATOM (-32)</PRE>
1031<PRE>#if(WINVER >= 0x0400)
1032#define GCL_HICONSM (-34)
1033#endif /* WINVER >= 0x0400 */</PRE>
1034<PRE>#endif /* !NOWINOFFSETS */</PRE>
1035<PRE>#ifndef NOWINMESSAGES</PRE>
1036<PRE>// begin_r_winuser</PRE>
1037<PRE>/*
1038 * Window Messages
1039 */</PRE>
1040<PRE>#define WM_NULL 0x0000
1041#define WM_CREATE 0x0001
1042#define WM_DESTROY 0x0002
1043#define WM_MOVE 0x0003
1044#define WM_SIZE 0x0005</PRE>
1045<PRE>#define WM_ACTIVATE 0x0006
1046/*
1047 * WM_ACTIVATE state values
1048 */
1049#define WA_INACTIVE 0
1050#define WA_ACTIVE 1
1051#define WA_CLICKACTIVE 2</PRE>
1052<PRE>#define WM_SETFOCUS 0x0007
1053#define WM_KILLFOCUS 0x0008
1054#define WM_ENABLE 0x000A
1055#define WM_SETREDRAW 0x000B
1056#define WM_SETTEXT 0x000C
1057#define WM_GETTEXT 0x000D
1058#define WM_GETTEXTLENGTH 0x000E
1059#define WM_PAINT 0x000F
1060#define WM_CLOSE 0x0010
1061#define WM_QUERYENDSESSION 0x0011
1062#define WM_QUIT 0x0012
1063#define WM_QUERYOPEN 0x0013
1064#define WM_ERASEBKGND 0x0014
1065#define WM_SYSCOLORCHANGE 0x0015
1066#define WM_ENDSESSION 0x0016
1067#define WM_SHOWWINDOW 0x0018
1068#define WM_WININICHANGE 0x001A
1069#if(WINVER >= 0x0400)
1070#define WM_SETTINGCHANGE WM_WININICHANGE
1071#endif /* WINVER >= 0x0400 */
1072</PRE>
1073<PRE>#define WM_DEVMODECHANGE 0x001B
1074#define WM_ACTIVATEAPP 0x001C
1075#define WM_FONTCHANGE 0x001D
1076#define WM_TIMECHANGE 0x001E
1077#define WM_CANCELMODE 0x001F
1078#define WM_SETCURSOR 0x0020
1079#define WM_MOUSEACTIVATE 0x0021
1080#define WM_CHILDACTIVATE 0x0022
1081#define WM_QUEUESYNC 0x0023</PRE>
1082<PRE>#define WM_GETMINMAXINFO 0x0024
1083// end_r_winuser
1084/*
1085 * Struct pointed to by WM_GETMINMAXINFO lParam
1086 */
1087typedef struct tagMINMAXINFO {
1088 POINT ptReserved;
1089 POINT ptMaxSize;
1090 POINT ptMaxPosition;
1091 POINT ptMinTrackSize;
1092 POINT ptMaxTrackSize;
1093} MINMAXINFO, *PMINMAXINFO, *LPMINMAXINFO;</PRE>
1094<PRE>// begin_r_winuser
1095#define WM_PAINTICON 0x0026
1096#define WM_ICONERASEBKGND 0x0027
1097#define WM_NEXTDLGCTL 0x0028
1098#define WM_SPOOLERSTATUS 0x002A
1099#define WM_DRAWITEM 0x002B
1100#define WM_MEASUREITEM 0x002C
1101#define WM_DELETEITEM 0x002D
1102#define WM_VKEYTOITEM 0x002E
1103#define WM_CHARTOITEM 0x002F
1104#define WM_SETFONT 0x0030
1105#define WM_GETFONT 0x0031
1106#define WM_SETHOTKEY 0x0032
1107#define WM_GETHOTKEY 0x0033
1108#define WM_QUERYDRAGICON 0x0037
1109#define WM_COMPAREITEM 0x0039</PRE>
1110<PRE>#define WM_COMPACTING 0x0041
1111#define WM_COMMNOTIFY 0x0044 /* no longer suported */
1112#define WM_WINDOWPOSCHANGING 0x0046
1113#define WM_WINDOWPOSCHANGED 0x0047</PRE>
1114<PRE>#define WM_POWER 0x0048
1115/*
1116 * wParam for WM_POWER window message and DRV_POWER driver notification
1117 */
1118#define PWR_OK 1
1119#define PWR_FAIL (-1)
1120#define PWR_SUSPENDREQUEST 1
1121#define PWR_SUSPENDRESUME 2
1122#define PWR_CRITICALRESUME 3</PRE>
1123<PRE>#define WM_COPYDATA 0x004A
1124#define WM_CANCELJOURNAL 0x004B</PRE>
1125<PRE>// end_r_winuser</PRE>
1126<PRE>/*
1127 * lParam of WM_COPYDATA message points to...
1128 */
1129typedef struct tagCOPYDATASTRUCT {
1130 DWORD dwData;
1131 DWORD cbData;
1132 PVOID lpData;
1133} COPYDATASTRUCT, *PCOPYDATASTRUCT;</PRE>
1134<PRE>// begin_r_winuser</PRE>
1135<PRE>#if(WINVER >= 0x0400)
1136#define WM_NOTIFY 0x004E
1137#define WM_INPUTLANGCHANGEREQUEST 0x0050
1138#define WM_INPUTLANGCHANGE 0x0051
1139#define WM_TCARD 0x0052
1140#define WM_HELP 0x0053
1141#define WM_USERCHANGED 0x0054
1142#define WM_NOTIFYFORMAT 0x0055</PRE>
1143<PRE>#define NFR_ANSI 1
1144#define NFR_UNICODE 2
1145#define NF_QUERY 3
1146#define NF_REQUERY 4</PRE>
1147<PRE>#define WM_CONTEXTMENU 0x007B
1148#define WM_STYLECHANGING 0x007C
1149#define WM_STYLECHANGED 0x007D
1150#define WM_DISPLAYCHANGE 0x007E
1151#define WM_GETICON 0x007F
1152#define WM_SETICON 0x0080
1153#endif /* WINVER >= 0x0400 */
1154</PRE>
1155<PRE>#define WM_NCCREATE 0x0081
1156#define WM_NCDESTROY 0x0082
1157#define WM_NCCALCSIZE 0x0083
1158#define WM_NCHITTEST 0x0084
1159#define WM_NCPAINT 0x0085
1160#define WM_NCACTIVATE 0x0086
1161#define WM_GETDLGCODE 0x0087</PRE>
1162<PRE>#define WM_NCMOUSEMOVE 0x00A0
1163#define WM_NCLBUTTONDOWN 0x00A1
1164#define WM_NCLBUTTONUP 0x00A2
1165#define WM_NCLBUTTONDBLCLK 0x00A3
1166#define WM_NCRBUTTONDOWN 0x00A4
1167#define WM_NCRBUTTONUP 0x00A5
1168#define WM_NCRBUTTONDBLCLK 0x00A6
1169#define WM_NCMBUTTONDOWN 0x00A7
1170#define WM_NCMBUTTONUP 0x00A8
1171#define WM_NCMBUTTONDBLCLK 0x00A9</PRE>
1172<PRE>#define WM_KEYFIRST 0x0100
1173#define WM_KEYDOWN 0x0100
1174#define WM_KEYUP 0x0101
1175#define WM_CHAR 0x0102
1176#define WM_DEADCHAR 0x0103
1177#define WM_SYSKEYDOWN 0x0104
1178#define WM_SYSKEYUP 0x0105
1179#define WM_SYSCHAR 0x0106
1180#define WM_SYSDEADCHAR 0x0107
1181#define WM_KEYLAST 0x0108</PRE>
1182<PRE>#if(WINVER >= 0x0400)
1183#define WM_IME_STARTCOMPOSITION 0x010D
1184#define WM_IME_ENDCOMPOSITION 0x010E
1185#define WM_IME_COMPOSITION 0x010F
1186#define WM_IME_KEYLAST 0x010F
1187#endif /* WINVER >= 0x0400 */</PRE>
1188<PRE>#define WM_INITDIALOG 0x0110
1189#define WM_COMMAND 0x0111
1190#define WM_SYSCOMMAND 0x0112
1191#define WM_TIMER 0x0113
1192#define WM_HSCROLL 0x0114
1193#define WM_VSCROLL 0x0115
1194#define WM_INITMENU 0x0116
1195#define WM_INITMENUPOPUP 0x0117
1196#define WM_MENUSELECT 0x011F
1197#define WM_MENUCHAR 0x0120
1198#define WM_ENTERIDLE 0x0121</PRE>
1199<PRE>#define WM_CTLCOLORMSGBOX 0x0132
1200#define WM_CTLCOLOREDIT 0x0133
1201#define WM_CTLCOLORLISTBOX 0x0134
1202#define WM_CTLCOLORBTN 0x0135
1203#define WM_CTLCOLORDLG 0x0136
1204#define WM_CTLCOLORSCROLLBAR 0x0137
1205#define WM_CTLCOLORSTATIC 0x0138
1206
1207</PRE>
1208<PRE>#define WM_MOUSEFIRST 0x0200
1209#define WM_MOUSEMOVE 0x0200
1210#define WM_LBUTTONDOWN 0x0201
1211#define WM_LBUTTONUP 0x0202
1212#define WM_LBUTTONDBLCLK 0x0203
1213#define WM_RBUTTONDOWN 0x0204
1214#define WM_RBUTTONUP 0x0205
1215#define WM_RBUTTONDBLCLK 0x0206
1216#define WM_MBUTTONDOWN 0x0207
1217#define WM_MBUTTONUP 0x0208
1218#define WM_MBUTTONDBLCLK 0x0209
1219#if(_WIN32_WINNT >= 0x0400)
1220#define WM_MOUSEWHEEL 0x020A
1221#endif /* _WIN32_WINNT >= 0x0400 */
1222#if (_WIN32_WINNT < 0x0400)
1223#define WM_MOUSELAST 0x0209
1224#else
1225#define WM_MOUSELAST 0x020A
1226#endif /* if (_WIN32_WINNT < 0x0400) */</PRE>
1227<PRE>#if(_WIN32_WINNT >= 0x0400)
1228#define WHEEL_DELTA 120 /* Value for rolling one detent */
1229#endif /* _WIN32_WINNT >= 0x0400 */
1230#if(_WIN32_WINNT >= 0x0400)
1231#define WHEEL_PAGESCROLL (UINT_MAX) /* Scroll one page */
1232#endif /* _WIN32_WINNT >= 0x0400 */</PRE>
1233<PRE>#define WM_PARENTNOTIFY 0x0210
1234#define MENULOOP_WINDOW 0
1235#define MENULOOP_POPUP 1
1236#define WM_ENTERMENULOOP 0x0211
1237#define WM_EXITMENULOOP 0x0212</PRE>
1238<PRE>#if(WINVER >= 0x0400)
1239#define WM_NEXTMENU 0x0213
1240// end_r_winuser</PRE>
1241<PRE>typedef struct tagMDINEXTMENU
1242{
1243 HMENU hmenuIn;
1244 HMENU hmenuNext;
1245 HWND hwndNext;
1246} MDINEXTMENU, * PMDINEXTMENU, FAR * LPMDINEXTMENU;</PRE>
1247<PRE>// begin_r_winuser
1248#define WM_SIZING 0x0214
1249#define WM_CAPTURECHANGED 0x0215
1250#define WM_MOVING 0x0216
1251#define WM_POWERBROADCAST 0x0218
1252#define WM_DEVICECHANGE 0x0219</PRE>
1253<PRE>#define WM_IME_SETCONTEXT 0x0281
1254#define WM_IME_NOTIFY 0x0282
1255#define WM_IME_CONTROL 0x0283
1256#define WM_IME_COMPOSITIONFULL 0x0284
1257#define WM_IME_SELECT 0x0285
1258#define WM_IME_CHAR 0x0286
1259#define WM_IME_KEYDOWN 0x0290
1260#define WM_IME_KEYUP 0x0291
1261#endif /* WINVER >= 0x0400 */</PRE>
1262<PRE>#define WM_MDICREATE 0x0220
1263#define WM_MDIDESTROY 0x0221
1264#define WM_MDIACTIVATE 0x0222
1265#define WM_MDIRESTORE 0x0223
1266#define WM_MDINEXT 0x0224
1267#define WM_MDIMAXIMIZE 0x0225
1268#define WM_MDITILE 0x0226
1269#define WM_MDICASCADE 0x0227
1270#define WM_MDIICONARRANGE 0x0228
1271#define WM_MDIGETACTIVE 0x0229
1272
1273</PRE>
1274<PRE>#define WM_MDISETMENU 0x0230
1275#define WM_ENTERSIZEMOVE 0x0231
1276#define WM_EXITSIZEMOVE 0x0232
1277#define WM_DROPFILES 0x0233
1278#define WM_MDIREFRESHMENU 0x0234
1279</PRE>
1280<PRE>#if(_WIN32_WINNT >= 0x0400)
1281#define WM_MOUSEHOVER 0x02A1
1282#define WM_MOUSELEAVE 0x02A3
1283#endif /* _WIN32_WINNT >= 0x0400 */</PRE>
1284<PRE>#define WM_CUT 0x0300
1285#define WM_COPY 0x0301
1286#define WM_PASTE 0x0302
1287#define WM_CLEAR 0x0303
1288#define WM_UNDO 0x0304
1289#define WM_RENDERFORMAT 0x0305
1290#define WM_RENDERALLFORMATS 0x0306
1291#define WM_DESTROYCLIPBOARD 0x0307
1292#define WM_DRAWCLIPBOARD 0x0308
1293#define WM_PAINTCLIPBOARD 0x0309
1294#define WM_VSCROLLCLIPBOARD 0x030A
1295#define WM_SIZECLIPBOARD 0x030B
1296#define WM_ASKCBFORMATNAME 0x030C
1297#define WM_CHANGECBCHAIN 0x030D
1298#define WM_HSCROLLCLIPBOARD 0x030E
1299#define WM_QUERYNEWPALETTE 0x030F
1300#define WM_PALETTEISCHANGING 0x0310
1301#define WM_PALETTECHANGED 0x0311
1302#define WM_HOTKEY 0x0312</PRE>
1303<PRE>#if(WINVER >= 0x0400)
1304#define WM_PRINT 0x0317
1305#define WM_PRINTCLIENT 0x0318</PRE>
1306<PRE>#define WM_HANDHELDFIRST 0x0358
1307#define WM_HANDHELDLAST 0x035F</PRE>
1308<PRE>#define WM_AFXFIRST 0x0360
1309#define WM_AFXLAST 0x037F
1310#endif /* WINVER >= 0x0400 */</PRE>
1311<PRE>#define WM_PENWINFIRST 0x0380
1312#define WM_PENWINLAST 0x038F
1313
1314
1315</PRE>
1316<PRE>#if(WINVER >= 0x0400)
1317#define WM_APP 0x8000
1318#endif /* WINVER >= 0x0400 */
1319
1320
1321
1322
1323</PRE>
1324<PRE>/*
1325 * NOTE: All Message Numbers below 0x0400 are RESERVED.
1326 *
1327 * Private Window Messages Start Here:
1328 */
1329#define WM_USER 0x0400</PRE>
1330<PRE>#if(WINVER >= 0x0400)</PRE>
1331<PRE>/* wParam for WM_SIZING message */
1332#define WMSZ_LEFT 1
1333#define WMSZ_RIGHT 2
1334#define WMSZ_TOP 3
1335#define WMSZ_TOPLEFT 4
1336#define WMSZ_TOPRIGHT 5
1337#define WMSZ_BOTTOM 6
1338#define WMSZ_BOTTOMLEFT 7
1339#define WMSZ_BOTTOMRIGHT 8
1340#endif /* WINVER >= 0x0400 */</PRE>
1341<PRE>#ifndef NONCMESSAGES</PRE>
1342<PRE>/*
1343 * WM_SYNCTASK Commands
1344 */
1345#define ST_BEGINSWP 0
1346#define ST_ENDSWP 1</PRE>
1347<PRE>/*
1348 * WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes
1349 */
1350#define HTERROR (-2)
1351#define HTTRANSPARENT (-1)
1352#define HTNOWHERE 0
1353#define HTCLIENT 1
1354#define HTCAPTION 2
1355#define HTSYSMENU 3
1356#define HTGROWBOX 4
1357#define HTSIZE HTGROWBOX
1358#define HTMENU 5
1359#define HTHSCROLL 6
1360#define HTVSCROLL 7
1361#define HTMINBUTTON 8
1362#define HTMAXBUTTON 9
1363#define HTLEFT 10
1364#define HTRIGHT 11
1365#define HTTOP 12
1366#define HTTOPLEFT 13
1367#define HTTOPRIGHT 14
1368#define HTBOTTOM 15
1369#define HTBOTTOMLEFT 16
1370#define HTBOTTOMRIGHT 17
1371#define HTBORDER 18
1372#define HTREDUCE HTMINBUTTON
1373#define HTZOOM HTMAXBUTTON
1374#define HTSIZEFIRST HTLEFT
1375#define HTSIZELAST HTBOTTOMRIGHT
1376#if(WINVER >= 0x0400)
1377#define HTOBJECT 19
1378#define HTCLOSE 20
1379#define HTHELP 21
1380#endif /* WINVER >= 0x0400 */</PRE>
1381<PRE>/*
1382 * SendMessageTimeout values
1383 */
1384#define SMTO_NORMAL 0x0000
1385#define SMTO_BLOCK 0x0001
1386#define SMTO_ABORTIFHUNG 0x0002</PRE>
1387<PRE>#endif /* !NONCMESSAGES */</PRE>
1388<PRE>/*
1389 * WM_MOUSEACTIVATE Return Codes
1390 */
1391#define MA_ACTIVATE 1
1392#define MA_ACTIVATEANDEAT 2
1393#define MA_NOACTIVATE 3
1394#define MA_NOACTIVATEANDEAT 4</PRE>
1395<PRE>/*
1396 * WM_SETICON / WM_GETICON Type Codes
1397 */
1398#define ICON_SMALL 0
1399#define ICON_BIG 1</PRE>
1400<PRE>// end_r_winuser</PRE>
1401<PRE>WINUSERAPI
1402UINT
1403WINAPI
1404RegisterWindowMessageA(
1405 LPCSTR lpString);
1406WINUSERAPI
1407UINT
1408WINAPI
1409RegisterWindowMessageW(
1410 LPCWSTR lpString);
1411#ifdef UNICODE
1412#define RegisterWindowMessage RegisterWindowMessageW
1413#else
1414#define RegisterWindowMessage RegisterWindowMessageA
1415#endif // !UNICODE</PRE>
1416<PRE>// begin_r_winuser</PRE>
1417<PRE>/*
1418 * WM_SIZE message wParam values
1419 */
1420#define SIZE_RESTORED 0
1421#define SIZE_MINIMIZED 1
1422#define SIZE_MAXIMIZED 2
1423#define SIZE_MAXSHOW 3
1424#define SIZE_MAXHIDE 4</PRE>
1425<PRE>/*
1426 * Obsolete constant names
1427 */
1428#define SIZENORMAL SIZE_RESTORED
1429#define SIZEICONIC SIZE_MINIMIZED
1430#define SIZEFULLSCREEN SIZE_MAXIMIZED
1431#define SIZEZOOMSHOW SIZE_MAXSHOW
1432#define SIZEZOOMHIDE SIZE_MAXHIDE</PRE>
1433<PRE>// end_r_winuser
1434/*
1435 * WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam
1436 */
1437typedef struct tagWINDOWPOS {
1438 HWND hwnd;
1439 HWND hwndInsertAfter;
1440 int x;
1441 int y;
1442 int cx;
1443 int cy;
1444 UINT flags;
1445} WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS;</PRE>
1446<PRE>/*
1447 * WM_NCCALCSIZE parameter structure
1448 */
1449typedef struct tagNCCALCSIZE_PARAMS {
1450 RECT rgrc[3];
1451 PWINDOWPOS lppos;
1452} NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;</PRE>
1453<PRE>// begin_r_winuser
1454/*
1455 * WM_NCCALCSIZE "window valid rect" return values
1456 */
1457#define WVR_ALIGNTOP 0x0010
1458#define WVR_ALIGNLEFT 0x0020
1459#define WVR_ALIGNBOTTOM 0x0040
1460#define WVR_ALIGNRIGHT 0x0080
1461#define WVR_HREDRAW 0x0100
1462#define WVR_VREDRAW 0x0200
1463#define WVR_REDRAW (WVR_HREDRAW | \
1464 WVR_VREDRAW)
1465#define WVR_VALIDRECTS 0x0400
1466</PRE>
1467<PRE>#ifndef NOKEYSTATES</PRE>
1468<PRE>/*
1469 * Key State Masks for Mouse Messages
1470 */
1471#define MK_LBUTTON 0x0001
1472#define MK_RBUTTON 0x0002
1473#define MK_SHIFT 0x0004
1474#define MK_CONTROL 0x0008
1475#define MK_MBUTTON 0x0010</PRE>
1476<PRE>#endif /* !NOKEYSTATES */</PRE>
1477<PRE>#if(_WIN32_WINNT >= 0x0400)
1478#ifndef NOTRACKMOUSEEVENT</PRE>
1479<PRE>#define TME_HOVER 0x00000001
1480#define TME_LEAVE 0x00000002
1481#define TME_QUERY 0x40000000
1482#define TME_CANCEL 0x80000000
1483</PRE>
1484<PRE>#define HOVER_DEFAULT 0xFFFFFFFF
1485// end_r_winuser</PRE>
1486<PRE>typedef struct tagTRACKMOUSEEVENT {
1487 DWORD cbSize;
1488 DWORD dwFlags;
1489 HWND hwndTrack;
1490 DWORD dwHoverTime;
1491} TRACKMOUSEEVENT, *LPTRACKMOUSEEVENT;</PRE>
1492<PRE>WINUSERAPI
1493BOOL
1494WINAPI
1495TrackMouseEvent(
1496 LPTRACKMOUSEEVENT lpEventTrack);</PRE>
1497<PRE>// begin_r_winuser</PRE>
1498<PRE>#endif /* !NOTRACKMOUSEEVENT */
1499#endif /* _WIN32_WINNT >= 0x0400 */</PRE>
1500<PRE>// end_r_winuser</PRE>
1501<PRE>#endif /* !NOWINMESSAGES */</PRE>
1502<PRE>#ifndef NOWINSTYLES</PRE>
1503<PRE>// begin_r_winuser</PRE>
1504<PRE>/*
1505 * Window Styles
1506 */
1507#define WS_OVERLAPPED 0x00000000L
1508#define WS_POPUP 0x80000000L
1509#define WS_CHILD 0x40000000L
1510#define WS_MINIMIZE 0x20000000L
1511#define WS_VISIBLE 0x10000000L
1512#define WS_DISABLED 0x08000000L
1513#define WS_CLIPSIBLINGS 0x04000000L
1514#define WS_CLIPCHILDREN 0x02000000L
1515#define WS_MAXIMIZE 0x01000000L
1516#define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */
1517#define WS_BORDER 0x00800000L
1518#define WS_DLGFRAME 0x00400000L
1519#define WS_VSCROLL 0x00200000L
1520#define WS_HSCROLL 0x00100000L
1521#define WS_SYSMENU 0x00080000L
1522#define WS_THICKFRAME 0x00040000L
1523#define WS_GROUP 0x00020000L
1524#define WS_TABSTOP 0x00010000L</PRE>
1525<PRE>#define WS_MINIMIZEBOX 0x00020000L
1526#define WS_MAXIMIZEBOX 0x00010000L</PRE>
1527<PRE>#define WS_TILED WS_OVERLAPPED
1528#define WS_ICONIC WS_MINIMIZE
1529#define WS_SIZEBOX WS_THICKFRAME
1530#define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW</PRE>
1531<PRE>/*
1532 * Common Window Styles
1533 */
1534#define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | \
1535 WS_CAPTION | \
1536 WS_SYSMENU | \
1537 WS_THICKFRAME | \
1538 WS_MINIMIZEBOX | \
1539 WS_MAXIMIZEBOX)</PRE>
1540<PRE>#define WS_POPUPWINDOW (WS_POPUP | \
1541 WS_BORDER | \
1542 WS_SYSMENU)</PRE>
1543<PRE>#define WS_CHILDWINDOW (WS_CHILD)</PRE>
1544<PRE>/*
1545 * Extended Window Styles
1546 */
1547#define WS_EX_DLGMODALFRAME 0x00000001L
1548#define WS_EX_NOPARENTNOTIFY 0x00000004L
1549#define WS_EX_TOPMOST 0x00000008L
1550#define WS_EX_ACCEPTFILES 0x00000010L
1551#define WS_EX_TRANSPARENT 0x00000020L
1552#if(WINVER >= 0x0400)
1553#define WS_EX_MDICHILD 0x00000040L
1554#define WS_EX_TOOLWINDOW 0x00000080L
1555#define WS_EX_WINDOWEDGE 0x00000100L
1556#define WS_EX_CLIENTEDGE 0x00000200L
1557#define WS_EX_CONTEXTHELP 0x00000400L</PRE>
1558<PRE>#define WS_EX_RIGHT 0x00001000L
1559#define WS_EX_LEFT 0x00000000L
1560#define WS_EX_RTLREADING 0x00002000L
1561#define WS_EX_LTRREADING 0x00000000L
1562#define WS_EX_LEFTSCROLLBAR 0x00004000L
1563#define WS_EX_RIGHTSCROLLBAR 0x00000000L</PRE>
1564<PRE>#define WS_EX_CONTROLPARENT 0x00010000L
1565#define WS_EX_STATICEDGE 0x00020000L
1566#define WS_EX_APPWINDOW 0x00040000L
1567</PRE>
1568<PRE>#define WS_EX_OVERLAPPEDWINDOW (WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE)
1569#define WS_EX_PALETTEWINDOW (WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST)</PRE>
1570<PRE>#endif /* WINVER >= 0x0400 */
1571
1572</PRE>
1573<PRE>/*
1574 * Class styles
1575 */
1576#define CS_VREDRAW 0x0001
1577#define CS_HREDRAW 0x0002
1578#define CS_KEYCVTWINDOW 0x0004
1579#define CS_DBLCLKS 0x0008
1580#define CS_OWNDC 0x0020
1581#define CS_CLASSDC 0x0040
1582#define CS_PARENTDC 0x0080
1583#define CS_NOKEYCVT 0x0100
1584#define CS_NOCLOSE 0x0200
1585#define CS_SAVEBITS 0x0800
1586#define CS_BYTEALIGNCLIENT 0x1000
1587#define CS_BYTEALIGNWINDOW 0x2000
1588#define CS_GLOBALCLASS 0x4000</PRE>
1589<PRE>#if(WINVER >= 0x0400)
1590#define CS_IME 0x00010000
1591#endif /* WINVER >= 0x0400 */
1592</PRE>
1593<PRE>// end_r_winuser</PRE>
1594<PRE>#endif /* !NOWINSTYLES */
1595#if(WINVER >= 0x0400)
1596/* WM_PRINT flags */
1597#define PRF_CHECKVISIBLE 0x00000001L
1598#define PRF_NONCLIENT 0x00000002L
1599#define PRF_CLIENT 0x00000004L
1600#define PRF_ERASEBKGND 0x00000008L
1601#define PRF_CHILDREN 0x00000010L
1602#define PRF_OWNED 0x00000020L</PRE>
1603<PRE>/* 3D border styles */
1604#define BDR_RAISEDOUTER 0x0001
1605#define BDR_SUNKENOUTER 0x0002
1606#define BDR_RAISEDINNER 0x0004
1607#define BDR_SUNKENINNER 0x0008</PRE>
1608<PRE>#define BDR_OUTER 0x0003
1609#define BDR_INNER 0x000c
1610#define BDR_RAISED 0x0005
1611#define BDR_SUNKEN 0x000a
1612</PRE>
1613<PRE>#define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER)
1614#define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER)
1615#define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER)
1616#define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER)</PRE>
1617<PRE>/* Border flags */
1618#define BF_LEFT 0x0001
1619#define BF_TOP 0x0002
1620#define BF_RIGHT 0x0004
1621#define BF_BOTTOM 0x0008</PRE>
1622<PRE>#define BF_TOPLEFT (BF_TOP | BF_LEFT)
1623#define BF_TOPRIGHT (BF_TOP | BF_RIGHT)
1624#define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT)
1625#define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT)
1626#define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM)</PRE>
1627<PRE>#define BF_DIAGONAL 0x0010</PRE>
1628<PRE>// For diagonal lines, the BF_RECT flags specify the end point of the
1629// vector bounded by the rectangle parameter.
1630#define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT)
1631#define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT)
1632#define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT)
1633#define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT)
1634</PRE>
1635<PRE>#define BF_MIDDLE 0x0800 /* Fill in the middle */
1636#define BF_SOFT 0x1000 /* For softer buttons */
1637#define BF_ADJUST 0x2000 /* Calculate the space left over */
1638#define BF_FLAT 0x4000 /* For flat rather than 3D borders */
1639#define BF_MONO 0x8000 /* For monochrome borders */
1640</PRE>
1641<PRE>WINUSERAPI BOOL WINAPI DrawEdge(HDC hdc, LPRECT qrc, UINT edge, UINT grfFlags);</PRE>
1642<PRE>/* flags for DrawFrameControl */</PRE>
1643<PRE>#define DFC_CAPTION 1
1644#define DFC_MENU 2
1645#define DFC_SCROLL 3
1646#define DFC_BUTTON 4</PRE>
1647<PRE>#define DFCS_CAPTIONCLOSE 0x0000
1648#define DFCS_CAPTIONMIN 0x0001
1649#define DFCS_CAPTIONMAX 0x0002
1650#define DFCS_CAPTIONRESTORE 0x0003
1651#define DFCS_CAPTIONHELP 0x0004</PRE>
1652<PRE>#define DFCS_MENUARROW 0x0000
1653#define DFCS_MENUCHECK 0x0001
1654#define DFCS_MENUBULLET 0x0002
1655#define DFCS_MENUARROWRIGHT 0x0004</PRE>
1656<PRE>#define DFCS_SCROLLUP 0x0000
1657#define DFCS_SCROLLDOWN 0x0001
1658#define DFCS_SCROLLLEFT 0x0002
1659#define DFCS_SCROLLRIGHT 0x0003
1660#define DFCS_SCROLLCOMBOBOX 0x0005
1661#define DFCS_SCROLLSIZEGRIP 0x0008
1662#define DFCS_SCROLLSIZEGRIPRIGHT 0x0010</PRE>
1663<PRE>#define DFCS_BUTTONCHECK 0x0000
1664#define DFCS_BUTTONRADIOIMAGE 0x0001
1665#define DFCS_BUTTONRADIOMASK 0x0002
1666#define DFCS_BUTTONRADIO 0x0004
1667#define DFCS_BUTTON3STATE 0x0008
1668#define DFCS_BUTTONPUSH 0x0010</PRE>
1669<PRE>#define DFCS_INACTIVE 0x0100
1670#define DFCS_PUSHED 0x0200
1671#define DFCS_CHECKED 0x0400
1672#define DFCS_ADJUSTRECT 0x2000
1673#define DFCS_FLAT 0x4000
1674#define DFCS_MONO 0x8000</PRE>
1675<PRE>WINUSERAPI BOOL WINAPI DrawFrameControl(HDC, LPRECT, UINT, UINT);
1676</PRE>
1677<PRE>/* flags for DrawCaption */
1678#define DC_ACTIVE 0x0001
1679#define DC_SMALLCAP 0x0002
1680#define DC_ICON 0x0004
1681#define DC_TEXT 0x0008
1682#define DC_INBUTTON 0x0010</PRE>
1683<PRE>WINUSERAPI BOOL WINAPI DrawCaption(HWND, HDC, CONST RECT *, UINT);</PRE>
1684<PRE>#define IDANI_OPEN 1
1685#define IDANI_CLOSE 2
1686#define IDANI_CAPTION 3
1687</PRE>
1688<PRE>WINUSERAPI BOOL WINAPI DrawAnimatedRects(HWND hwnd, int idAni, CONST RECT * lprcFrom, CONST RECT * lprcTo);</PRE>
1689<PRE>#endif /* WINVER >= 0x0400 */</PRE>
1690<PRE>#ifndef NOCLIPBOARD</PRE>
1691<PRE>// begin_r_winuser</PRE>
1692<PRE>/*
1693 * Predefined Clipboard Formats
1694 */
1695#define CF_TEXT 1
1696#define CF_BITMAP 2
1697#define CF_METAFILEPICT 3
1698#define CF_SYLK 4
1699#define CF_DIF 5
1700#define CF_TIFF 6
1701#define CF_OEMTEXT 7
1702#define CF_DIB 8
1703#define CF_PALETTE 9
1704#define CF_PENDATA 10
1705#define CF_RIFF 11
1706#define CF_WAVE 12
1707#define CF_UNICODETEXT 13
1708#define CF_ENHMETAFILE 14
1709#if(WINVER >= 0x0400)
1710#define CF_HDROP 15
1711#define CF_LOCALE 16
1712#define CF_MAX 17
1713#endif /* WINVER >= 0x0400 */</PRE>
1714<PRE>#define CF_OWNERDISPLAY 0x0080
1715#define CF_DSPTEXT 0x0081
1716#define CF_DSPBITMAP 0x0082
1717#define CF_DSPMETAFILEPICT 0x0083
1718#define CF_DSPENHMETAFILE 0x008E</PRE>
1719<PRE>/*
1720 * "Private" formats don't get GlobalFree()'d
1721 */
1722#define CF_PRIVATEFIRST 0x0200
1723#define CF_PRIVATELAST 0x02FF</PRE>
1724<PRE>/*
1725 * "GDIOBJ" formats do get DeleteObject()'d
1726 */
1727#define CF_GDIOBJFIRST 0x0300
1728#define CF_GDIOBJLAST 0x03FF</PRE>
1729<PRE>// end_r_winuser</PRE>
1730<PRE>#endif /* !NOCLIPBOARD */</PRE>
1731<PRE>/*
1732 * Defines for the fVirt field of the Accelerator table structure.
1733 */
1734#define FVIRTKEY TRUE /* Assumed to be == TRUE */
1735#define FNOINVERT 0x02
1736#define FSHIFT 0x04
1737#define FCONTROL 0x08
1738#define FALT 0x10</PRE>
1739<PRE>typedef struct tagACCEL {
1740 BYTE fVirt; /* Also called the flags field */
1741 WORD key;
1742 WORD cmd;
1743} ACCEL, *LPACCEL;</PRE>
1744<PRE>typedef struct tagPAINTSTRUCT {
1745 HDC hdc;
1746 BOOL fErase;
1747 RECT rcPaint;
1748 BOOL fRestore;
1749 BOOL fIncUpdate;
1750 BYTE rgbReserved[32];
1751} PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT;</PRE>
1752<PRE>typedef struct tagCREATESTRUCTA {
1753 LPVOID lpCreateParams;
1754 HINSTANCE hInstance;
1755 HMENU hMenu;
1756 HWND hwndParent;
1757 int cy;
1758 int cx;
1759 int y;
1760 int x;
1761 LONG style;
1762 LPCSTR lpszName;
1763 LPCSTR lpszClass;
1764 DWORD dwExStyle;
1765} CREATESTRUCTA, *LPCREATESTRUCTA;
1766typedef struct tagCREATESTRUCTW {
1767 LPVOID lpCreateParams;
1768 HINSTANCE hInstance;
1769 HMENU hMenu;
1770 HWND hwndParent;
1771 int cy;
1772 int cx;
1773 int y;
1774 int x;
1775 LONG style;
1776 LPCWSTR lpszName;
1777 LPCWSTR lpszClass;
1778 DWORD dwExStyle;
1779} CREATESTRUCTW, *LPCREATESTRUCTW;
1780#ifdef UNICODE
1781typedef CREATESTRUCTW CREATESTRUCT;
1782typedef LPCREATESTRUCTW LPCREATESTRUCT;
1783#else
1784typedef CREATESTRUCTA CREATESTRUCT;
1785typedef LPCREATESTRUCTA LPCREATESTRUCT;
1786#endif // UNICODE</PRE>
1787<PRE>typedef struct tagWINDOWPLACEMENT {
1788 UINT length;
1789 UINT flags;
1790 UINT showCmd;
1791 POINT ptMinPosition;
1792 POINT ptMaxPosition;
1793 RECT rcNormalPosition;
1794} WINDOWPLACEMENT;
1795typedef WINDOWPLACEMENT *PWINDOWPLACEMENT, *LPWINDOWPLACEMENT;</PRE>
1796<PRE>#define WPF_SETMINPOSITION 0x0001
1797#define WPF_RESTORETOMAXIMIZED 0x0002
1798#if(WINVER >= 0x0400)
1799typedef struct tagNMHDR
1800{
1801 HWND hwndFrom;
1802 UINT idFrom;
1803 UINT code; // NM_ code
1804} NMHDR;
1805typedef NMHDR FAR * LPNMHDR;</PRE>
1806<PRE>typedef struct tagSTYLESTRUCT
1807{
1808 DWORD styleOld;
1809 DWORD styleNew;
1810} STYLESTRUCT, * LPSTYLESTRUCT;
1811#endif /* WINVER >= 0x0400 */
1812</PRE>
1813<PRE>/*
1814 * Owner draw control types
1815 */
1816#define ODT_MENU 1
1817#define ODT_LISTBOX 2
1818#define ODT_COMBOBOX 3
1819#define ODT_BUTTON 4
1820#if(WINVER >= 0x0400)
1821#define ODT_STATIC 5
1822#endif /* WINVER >= 0x0400 */</PRE>
1823<PRE>/*
1824 * Owner draw actions
1825 */
1826#define ODA_DRAWENTIRE 0x0001
1827#define ODA_SELECT 0x0002
1828#define ODA_FOCUS 0x0004</PRE>
1829<PRE>/*
1830 * Owner draw state
1831 */
1832#define ODS_SELECTED 0x0001
1833#define ODS_GRAYED 0x0002
1834#define ODS_DISABLED 0x0004
1835#define ODS_CHECKED 0x0008
1836#define ODS_FOCUS 0x0010
1837#if(WINVER >= 0x0400)
1838#define ODS_DEFAULT 0x0020
1839#define ODS_COMBOBOXEDIT 0x1000
1840#endif /* WINVER >= 0x0400 */</PRE>
1841<PRE>/*
1842 * MEASUREITEMSTRUCT for ownerdraw
1843 */
1844typedef struct tagMEASUREITEMSTRUCT {
1845 UINT CtlType;
1846 UINT CtlID;
1847 UINT itemID;
1848 UINT itemWidth;
1849 UINT itemHeight;
1850 DWORD itemData;
1851} MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT;
1852
1853</PRE>
1854<PRE>/*
1855 * DRAWITEMSTRUCT for ownerdraw
1856 */
1857typedef struct tagDRAWITEMSTRUCT {
1858 UINT CtlType;
1859 UINT CtlID;
1860 UINT itemID;
1861 UINT itemAction;
1862 UINT itemState;
1863 HWND hwndItem;
1864 HDC hDC;
1865 RECT rcItem;
1866 DWORD itemData;
1867} DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT;</PRE>
1868<PRE>/*
1869 * DELETEITEMSTRUCT for ownerdraw
1870 */
1871typedef struct tagDELETEITEMSTRUCT {
1872 UINT CtlType;
1873 UINT CtlID;
1874 UINT itemID;
1875 HWND hwndItem;
1876 UINT itemData;
1877} DELETEITEMSTRUCT, NEAR *PDELETEITEMSTRUCT, FAR *LPDELETEITEMSTRUCT;</PRE>
1878<PRE>/*
1879 * COMPAREITEMSTUCT for ownerdraw sorting
1880 */
1881typedef struct tagCOMPAREITEMSTRUCT {
1882 UINT CtlType;
1883 UINT CtlID;
1884 HWND hwndItem;
1885 UINT itemID1;
1886 DWORD itemData1;
1887 UINT itemID2;
1888 DWORD itemData2;
1889 DWORD dwLocaleId;
1890} COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT;</PRE>
1891<PRE>#ifndef NOMSG</PRE>
1892<PRE>/*
1893 * Message Function Templates
1894 */</PRE>
1895<PRE>WINUSERAPI
1896BOOL
1897WINAPI
1898GetMessageA(
1899 LPMSG lpMsg,
1900 HWND hWnd ,
1901 UINT wMsgFilterMin,
1902 UINT wMsgFilterMax);
1903WINUSERAPI
1904BOOL
1905WINAPI
1906GetMessageW(
1907 LPMSG lpMsg,
1908 HWND hWnd ,
1909 UINT wMsgFilterMin,
1910 UINT wMsgFilterMax);
1911#ifdef UNICODE
1912#define GetMessage GetMessageW
1913#else
1914#define GetMessage GetMessageA
1915#endif // !UNICODE</PRE>
1916<PRE>WINUSERAPI
1917BOOL
1918WINAPI
1919TranslateMessage(
1920 CONST MSG *lpMsg);</PRE>
1921<PRE>WINUSERAPI
1922LONG
1923WINAPI
1924DispatchMessageA(
1925 CONST MSG *lpMsg);
1926WINUSERAPI
1927LONG
1928WINAPI
1929DispatchMessageW(
1930 CONST MSG *lpMsg);
1931#ifdef UNICODE
1932#define DispatchMessage DispatchMessageW
1933#else
1934#define DispatchMessage DispatchMessageA
1935#endif // !UNICODE
1936</PRE>
1937<PRE>WINUSERAPI
1938BOOL
1939WINAPI
1940SetMessageQueue(
1941 int cMessagesMax);</PRE>
1942<PRE>WINUSERAPI
1943BOOL
1944WINAPI
1945PeekMessageA(
1946 LPMSG lpMsg,
1947 HWND hWnd ,
1948 UINT wMsgFilterMin,
1949 UINT wMsgFilterMax,
1950 UINT wRemoveMsg);
1951WINUSERAPI
1952BOOL
1953WINAPI
1954PeekMessageW(
1955 LPMSG lpMsg,
1956 HWND hWnd ,
1957 UINT wMsgFilterMin,
1958 UINT wMsgFilterMax,
1959 UINT wRemoveMsg);
1960#ifdef UNICODE
1961#define PeekMessage PeekMessageW
1962#else
1963#define PeekMessage PeekMessageA
1964#endif // !UNICODE</PRE>
1965<PRE>/*
1966 * PeekMessage() Options
1967 */
1968#define PM_NOREMOVE 0x0000
1969#define PM_REMOVE 0x0001
1970#define PM_NOYIELD 0x0002</PRE>
1971<PRE>#endif /* !NOMSG */</PRE>
1972<PRE>WINUSERAPI
1973BOOL
1974WINAPI
1975RegisterHotKey(
1976 HWND hWnd ,
1977 int id,
1978 UINT fsModifiers,
1979 UINT vk);</PRE>
1980<PRE>WINUSERAPI
1981BOOL
1982WINAPI
1983UnregisterHotKey(
1984 HWND hWnd,
1985 int id);</PRE>
1986<PRE>#define MOD_ALT 0x0001
1987#define MOD_CONTROL 0x0002
1988#define MOD_SHIFT 0x0004
1989#define MOD_WIN 0x0008
1990</PRE>
1991<PRE>#define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */
1992#define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */</PRE>
1993<PRE>#ifdef WIN_INTERNAL
1994 #ifndef LSTRING
1995 #define NOLSTRING
1996 #endif /* LSTRING */
1997 #ifndef LFILEIO
1998 #define NOLFILEIO
1999 #endif /* LFILEIO */
2000#endif /* WIN_INTERNAL */</PRE>
2001<PRE>#if(WINVER >= 0x0400)
2002#define EW_RESTARTWINDOWS 0x0042L
2003#define EW_REBOOTSYSTEM 0x0043L
2004#define EW_EXITANDEXECAPP 0x0044L</PRE>
2005<PRE>#define ENDSESSION_LOGOFF 0x80000000
2006#endif /* WINVER >= 0x0400 */</PRE>
2007<PRE>#define EWX_LOGOFF 0
2008#define EWX_SHUTDOWN 1
2009#define EWX_REBOOT 2
2010#define EWX_FORCE 4
2011#define EWX_POWEROFF 8
2012</PRE>
2013<PRE>#define ExitWindows(dwReserved, Code) ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF)</PRE>
2014<PRE>WINUSERAPI
2015BOOL
2016WINAPI
2017ExitWindowsEx(
2018 UINT uFlags,
2019 DWORD dwReserved);</PRE>
2020<PRE>WINUSERAPI
2021BOOL
2022WINAPI
2023SwapMouseButton(
2024 BOOL fSwap);</PRE>
2025<PRE>WINUSERAPI
2026DWORD
2027WINAPI
2028GetMessagePos(
2029 VOID);</PRE>
2030<PRE>WINUSERAPI
2031LONG
2032WINAPI
2033GetMessageTime(
2034 VOID);</PRE>
2035<PRE>WINUSERAPI
2036LONG
2037WINAPI
2038GetMessageExtraInfo(
2039 VOID);</PRE>
2040<PRE>#if(WINVER >= 0x0400)
2041WINUSERAPI
2042LPARAM
2043WINAPI
2044SetMessageExtraInfo(
2045 LPARAM lParam);
2046#endif /* WINVER >= 0x0400 */</PRE>
2047<PRE>WINUSERAPI
2048LRESULT
2049WINAPI
2050SendMessageA(
2051 HWND hWnd,
2052 UINT Msg,
2053 WPARAM wParam,
2054 LPARAM lParam);
2055WINUSERAPI
2056LRESULT
2057WINAPI
2058SendMessageW(
2059 HWND hWnd,
2060 UINT Msg,
2061 WPARAM wParam,
2062 LPARAM lParam);
2063#ifdef UNICODE
2064#define SendMessage SendMessageW
2065#else
2066#define SendMessage SendMessageA
2067#endif // !UNICODE</PRE>
2068<PRE>WINUSERAPI
2069LRESULT
2070WINAPI
2071SendMessageTimeoutA(
2072 HWND hWnd,
2073 UINT Msg,
2074 WPARAM wParam,
2075 LPARAM lParam,
2076 UINT fuFlags,
2077 UINT uTimeout,
2078 LPDWORD lpdwResult);
2079WINUSERAPI
2080LRESULT
2081WINAPI
2082SendMessageTimeoutW(
2083 HWND hWnd,
2084 UINT Msg,
2085 WPARAM wParam,
2086 LPARAM lParam,
2087 UINT fuFlags,
2088 UINT uTimeout,
2089 LPDWORD lpdwResult);
2090#ifdef UNICODE
2091#define SendMessageTimeout SendMessageTimeoutW
2092#else
2093#define SendMessageTimeout SendMessageTimeoutA
2094#endif // !UNICODE</PRE>
2095<PRE>WINUSERAPI
2096BOOL
2097WINAPI
2098SendNotifyMessageA(
2099 HWND hWnd,
2100 UINT Msg,
2101 WPARAM wParam,
2102 LPARAM lParam);
2103WINUSERAPI
2104BOOL
2105WINAPI
2106SendNotifyMessageW(
2107 HWND hWnd,
2108 UINT Msg,
2109 WPARAM wParam,
2110 LPARAM lParam);
2111#ifdef UNICODE
2112#define SendNotifyMessage SendNotifyMessageW
2113#else
2114#define SendNotifyMessage SendNotifyMessageA
2115#endif // !UNICODE</PRE>
2116<PRE>WINUSERAPI
2117BOOL
2118WINAPI
2119SendMessageCallbackA(
2120 HWND hWnd,
2121 UINT Msg,
2122 WPARAM wParam,
2123 LPARAM lParam,
2124 SENDASYNCPROC lpResultCallBack,
2125 DWORD dwData);
2126WINUSERAPI
2127BOOL
2128WINAPI
2129SendMessageCallbackW(
2130 HWND hWnd,
2131 UINT Msg,
2132 WPARAM wParam,
2133 LPARAM lParam,
2134 SENDASYNCPROC lpResultCallBack,
2135 DWORD dwData);
2136#ifdef UNICODE
2137#define SendMessageCallback SendMessageCallbackW
2138#else
2139#define SendMessageCallback SendMessageCallbackA
2140#endif // !UNICODE</PRE>
2141<PRE>#if(WINVER >= 0x0400)
2142WINUSERAPI long WINAPI BroadcastSystemMessageA(DWORD, LPDWORD, UINT, WPARAM, LPARAM);
2143WINUSERAPI long WINAPI BroadcastSystemMessageW(DWORD, LPDWORD, UINT, WPARAM, LPARAM);
2144#ifdef UNICODE
2145#define BroadcastSystemMessage BroadcastSystemMessageW
2146#else
2147#define BroadcastSystemMessage BroadcastSystemMessageA
2148#endif // !UNICODE
2149//Broadcast Special Message Recipient list
2150#define BSM_ALLCOMPONENTS 0x00000000
2151#define BSM_VXDS 0x00000001
2152#define BSM_NETDRIVER 0x00000002
2153#define BSM_INSTALLABLEDRIVERS 0x00000004
2154#define BSM_APPLICATIONS 0x00000008
2155#define BSM_ALLDESKTOPS 0x00000010</PRE>
2156<PRE>//Broadcast Special Message Flags
2157#define BSF_QUERY 0x00000001
2158#define BSF_IGNORECURRENTTASK 0x00000002
2159#define BSF_FLUSHDISK 0x00000004
2160#define BSF_NOHANG 0x00000008
2161#define BSF_POSTMESSAGE 0x00000010
2162#define BSF_FORCEIFHUNG 0x00000020
2163#define BSF_NOTIMEOUTIFNOTHUNG 0x00000040</PRE>
2164<PRE>typedef struct tagBROADCASTSYSMSG
2165{
2166 UINT uiMessage;
2167 WPARAM wParam;
2168 LPARAM lParam;
2169} BROADCASTSYSMSG;
2170typedef BROADCASTSYSMSG FAR *LPBROADCASTSYSMSG;</PRE>
2171<PRE>#define BROADCAST_QUERY_DENY 0x424D5144 // Return this value to deny a query.
2172#endif /* WINVER >= 0x0400 */</PRE>
2173<PRE>WINUSERAPI
2174BOOL
2175WINAPI
2176PostMessageA(
2177 HWND hWnd,
2178 UINT Msg,
2179 WPARAM wParam,
2180 LPARAM lParam);
2181WINUSERAPI
2182BOOL
2183WINAPI
2184PostMessageW(
2185 HWND hWnd,
2186 UINT Msg,
2187 WPARAM wParam,
2188 LPARAM lParam);
2189#ifdef UNICODE
2190#define PostMessage PostMessageW
2191#else
2192#define PostMessage PostMessageA
2193#endif // !UNICODE</PRE>
2194<PRE>WINUSERAPI
2195BOOL
2196WINAPI
2197PostThreadMessageA(
2198 DWORD idThread,
2199 UINT Msg,
2200 WPARAM wParam,
2201 LPARAM lParam);
2202WINUSERAPI
2203BOOL
2204WINAPI
2205PostThreadMessageW(
2206 DWORD idThread,
2207 UINT Msg,
2208 WPARAM wParam,
2209 LPARAM lParam);
2210#ifdef UNICODE
2211#define PostThreadMessage PostThreadMessageW
2212#else
2213#define PostThreadMessage PostThreadMessageA
2214#endif // !UNICODE</PRE>
2215<PRE>#define PostAppMessageA(idThread, wMsg, wParam, lParam)\
2216 PostThreadMessageA((DWORD)idThread, wMsg, wParam, lParam)
2217#define PostAppMessageW(idThread, wMsg, wParam, lParam)\
2218 PostThreadMessageW((DWORD)idThread, wMsg, wParam, lParam)
2219#ifdef UNICODE
2220#define PostAppMessage PostAppMessageW
2221#else
2222#define PostAppMessage PostAppMessageA
2223#endif // !UNICODE</PRE>
2224<PRE>/*
2225 * Special HWND value for use with PostMessage() and SendMessage()
2226 */
2227#define HWND_BROADCAST ((HWND)0xffff)</PRE>
2228<PRE>WINUSERAPI
2229BOOL
2230WINAPI
2231AttachThreadInput(
2232 DWORD idAttach,
2233 DWORD idAttachTo,
2234 BOOL fAttach);
2235</PRE>
2236<PRE>WINUSERAPI
2237BOOL
2238WINAPI
2239ReplyMessage(
2240 LRESULT lResult);</PRE>
2241<PRE>WINUSERAPI
2242BOOL
2243WINAPI
2244WaitMessage(
2245 VOID);</PRE>
2246<PRE>WINUSERAPI
2247DWORD
2248WINAPI
2249WaitForInputIdle(
2250 HANDLE hProcess,
2251 DWORD dwMilliseconds);</PRE>
2252<PRE>WINUSERAPI
2253LRESULT
2254WINAPI
2255DefWindowProcA(
2256 HWND hWnd,
2257 UINT Msg,
2258 WPARAM wParam,
2259 LPARAM lParam);
2260WINUSERAPI
2261LRESULT
2262WINAPI
2263DefWindowProcW(
2264 HWND hWnd,
2265 UINT Msg,
2266 WPARAM wParam,
2267 LPARAM lParam);
2268#ifdef UNICODE
2269#define DefWindowProc DefWindowProcW
2270#else
2271#define DefWindowProc DefWindowProcA
2272#endif // !UNICODE</PRE>
2273<PRE>WINUSERAPI
2274VOID
2275WINAPI
2276PostQuitMessage(
2277 int nExitCode);</PRE>
2278<PRE>#ifdef STRICT</PRE>
2279<PRE>WINUSERAPI
2280LRESULT
2281WINAPI
2282CallWindowProcA(
2283 WNDPROC lpPrevWndFunc,
2284 HWND hWnd,
2285 UINT Msg,
2286 WPARAM wParam,
2287 LPARAM lParam);
2288WINUSERAPI
2289LRESULT
2290WINAPI
2291CallWindowProcW(
2292 WNDPROC lpPrevWndFunc,
2293 HWND hWnd,
2294 UINT Msg,
2295 WPARAM wParam,
2296 LPARAM lParam);
2297#ifdef UNICODE
2298#define CallWindowProc CallWindowProcW
2299#else
2300#define CallWindowProc CallWindowProcA
2301#endif // !UNICODE</PRE>
2302<PRE>#else /* !STRICT */</PRE>
2303<PRE>WINUSERAPI
2304LRESULT
2305WINAPI
2306CallWindowProcA(
2307 FARPROC lpPrevWndFunc,
2308 HWND hWnd,
2309 UINT Msg,
2310 WPARAM wParam,
2311 LPARAM lParam);
2312WINUSERAPI
2313LRESULT
2314WINAPI
2315CallWindowProcW(
2316 FARPROC lpPrevWndFunc,
2317 HWND hWnd,
2318 UINT Msg,
2319 WPARAM wParam,
2320 LPARAM lParam);
2321#ifdef UNICODE
2322#define CallWindowProc CallWindowProcW
2323#else
2324#define CallWindowProc CallWindowProcA
2325#endif // !UNICODE</PRE>
2326<PRE>#endif /* !STRICT */</PRE>
2327<PRE>WINUSERAPI
2328BOOL
2329WINAPI
2330InSendMessage(
2331 VOID);</PRE>
2332<PRE>WINUSERAPI
2333UINT
2334WINAPI
2335GetDoubleClickTime(
2336 VOID);</PRE>
2337<PRE>WINUSERAPI
2338BOOL
2339WINAPI
2340SetDoubleClickTime(
2341 UINT);</PRE>
2342<PRE>WINUSERAPI
2343ATOM
2344WINAPI
2345RegisterClassA(
2346 CONST WNDCLASSA *lpWndClass);
2347WINUSERAPI
2348ATOM
2349WINAPI
2350RegisterClassW(
2351 CONST WNDCLASSW *lpWndClass);
2352#ifdef UNICODE
2353#define RegisterClass RegisterClassW
2354#else
2355#define RegisterClass RegisterClassA
2356#endif // !UNICODE</PRE>
2357<PRE>WINUSERAPI
2358BOOL
2359WINAPI
2360UnregisterClassA(
2361 LPCSTR lpClassName,
2362 HINSTANCE hInstance);
2363WINUSERAPI
2364BOOL
2365WINAPI
2366UnregisterClassW(
2367 LPCWSTR lpClassName,
2368 HINSTANCE hInstance);
2369#ifdef UNICODE
2370#define UnregisterClass UnregisterClassW
2371#else
2372#define UnregisterClass UnregisterClassA
2373#endif // !UNICODE</PRE>
2374<PRE>WINUSERAPI
2375BOOL
2376WINAPI
2377GetClassInfoA(
2378 HINSTANCE hInstance ,
2379 LPCSTR lpClassName,
2380 LPWNDCLASSA lpWndClass);
2381WINUSERAPI
2382BOOL
2383WINAPI
2384GetClassInfoW(
2385 HINSTANCE hInstance ,
2386 LPCWSTR lpClassName,
2387 LPWNDCLASSW lpWndClass);
2388#ifdef UNICODE
2389#define GetClassInfo GetClassInfoW
2390#else
2391#define GetClassInfo GetClassInfoA
2392#endif // !UNICODE</PRE>
2393<PRE>#if(WINVER >= 0x0400)
2394WINUSERAPI
2395ATOM
2396WINAPI
2397RegisterClassExA(CONST WNDCLASSEXA *);
2398WINUSERAPI
2399ATOM
2400WINAPI
2401RegisterClassExW(CONST WNDCLASSEXW *);
2402#ifdef UNICODE
2403#define RegisterClassEx RegisterClassExW
2404#else
2405#define RegisterClassEx RegisterClassExA
2406#endif // !UNICODE</PRE>
2407<PRE>WINUSERAPI
2408BOOL
2409WINAPI
2410GetClassInfoExA(HINSTANCE, LPCSTR, LPWNDCLASSEXA);
2411WINUSERAPI
2412BOOL
2413WINAPI
2414GetClassInfoExW(HINSTANCE, LPCWSTR, LPWNDCLASSEXW);
2415#ifdef UNICODE
2416#define GetClassInfoEx GetClassInfoExW
2417#else
2418#define GetClassInfoEx GetClassInfoExA
2419#endif // !UNICODE</PRE>
2420<PRE>#endif /* WINVER >= 0x0400 */</PRE>
2421<PRE>#define CW_USEDEFAULT ((int)0x80000000)</PRE>
2422<PRE>/*
2423 * Special value for CreateWindow, et al.
2424 */
2425#define HWND_DESKTOP ((HWND)0)</PRE>
2426<PRE>WINUSERAPI
2427HWND
2428WINAPI
2429CreateWindowExA(
2430 DWORD dwExStyle,
2431 LPCSTR lpClassName,
2432 LPCSTR lpWindowName,
2433 DWORD dwStyle,
2434 int X,
2435 int Y,
2436 int nWidth,
2437 int nHeight,
2438 HWND hWndParent ,
2439 HMENU hMenu,
2440 HINSTANCE hInstance,
2441 LPVOID lpParam);
2442WINUSERAPI
2443HWND
2444WINAPI
2445CreateWindowExW(
2446 DWORD dwExStyle,
2447 LPCWSTR lpClassName,
2448 LPCWSTR lpWindowName,
2449 DWORD dwStyle,
2450 int X,
2451 int Y,
2452 int nWidth,
2453 int nHeight,
2454 HWND hWndParent ,
2455 HMENU hMenu,
2456 HINSTANCE hInstance,
2457 LPVOID lpParam);
2458#ifdef UNICODE
2459#define CreateWindowEx CreateWindowExW
2460#else
2461#define CreateWindowEx CreateWindowExA
2462#endif // !UNICODE</PRE>
2463<PRE>#define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\
2464nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
2465CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\
2466nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
2467#define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\
2468nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)\
2469CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\
2470nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam)
2471#ifdef UNICODE
2472#define CreateWindow CreateWindowW
2473#else
2474#define CreateWindow CreateWindowA
2475#endif // !UNICODE</PRE>
2476<PRE>WINUSERAPI
2477BOOL
2478WINAPI
2479IsWindow(
2480 HWND hWnd);</PRE>
2481<PRE>WINUSERAPI
2482BOOL
2483WINAPI
2484IsMenu(
2485 HMENU hMenu);</PRE>
2486<PRE>WINUSERAPI
2487BOOL
2488WINAPI
2489IsChild(
2490 HWND hWndParent,
2491 HWND hWnd);</PRE>
2492<PRE>WINUSERAPI
2493BOOL
2494WINAPI
2495DestroyWindow(
2496 HWND hWnd);</PRE>
2497<PRE>WINUSERAPI
2498BOOL
2499WINAPI
2500ShowWindow(
2501 HWND hWnd,
2502 int nCmdShow);</PRE>
2503<PRE>#if(WINVER >= 0x0400)
2504WINUSERAPI
2505BOOL
2506WINAPI
2507ShowWindowAsync(
2508 HWND hWnd,
2509 int nCmdShow);
2510#endif /* WINVER >= 0x0400 */</PRE>
2511<PRE>WINUSERAPI
2512BOOL
2513WINAPI
2514FlashWindow(
2515 HWND hWnd,
2516 BOOL bInvert);</PRE>
2517<PRE>WINUSERAPI
2518BOOL
2519WINAPI
2520ShowOwnedPopups(
2521 HWND hWnd,
2522 BOOL fShow);</PRE>
2523<PRE>WINUSERAPI
2524BOOL
2525WINAPI
2526OpenIcon(
2527 HWND hWnd);</PRE>
2528<PRE>WINUSERAPI
2529BOOL
2530WINAPI
2531CloseWindow(
2532 HWND hWnd);</PRE>
2533<PRE>WINUSERAPI
2534BOOL
2535WINAPI
2536MoveWindow(
2537 HWND hWnd,
2538 int X,
2539 int Y,
2540 int nWidth,
2541 int nHeight,
2542 BOOL bRepaint);</PRE>
2543<PRE>WINUSERAPI
2544BOOL
2545WINAPI
2546SetWindowPos(
2547 HWND hWnd,
2548 HWND hWndInsertAfter ,
2549 int X,
2550 int Y,
2551 int cx,
2552 int cy,
2553 UINT uFlags);</PRE>
2554<PRE>WINUSERAPI
2555BOOL
2556WINAPI
2557GetWindowPlacement(
2558 HWND hWnd,
2559 WINDOWPLACEMENT *lpwndpl);</PRE>
2560<PRE>WINUSERAPI
2561BOOL
2562WINAPI
2563SetWindowPlacement(
2564 HWND hWnd,
2565 CONST WINDOWPLACEMENT *lpwndpl);
2566</PRE>
2567<PRE>#ifndef NODEFERWINDOWPOS</PRE>
2568<PRE>WINUSERAPI
2569HDWP
2570WINAPI
2571BeginDeferWindowPos(
2572 int nNumWindows);</PRE>
2573<PRE>WINUSERAPI
2574HDWP
2575WINAPI
2576DeferWindowPos(
2577 HDWP hWinPosInfo,
2578 HWND hWnd,
2579 HWND hWndInsertAfter ,
2580 int x,
2581 int y,
2582 int cx,
2583 int cy,
2584 UINT uFlags);</PRE>
2585<PRE>WINUSERAPI
2586BOOL
2587WINAPI
2588EndDeferWindowPos(
2589 HDWP hWinPosInfo);</PRE>
2590<PRE>#endif /* !NODEFERWINDOWPOS */</PRE>
2591<PRE>WINUSERAPI
2592BOOL
2593WINAPI
2594IsWindowVisible(
2595 HWND hWnd);</PRE>
2596<PRE>WINUSERAPI
2597BOOL
2598WINAPI
2599IsIconic(
2600 HWND hWnd);</PRE>
2601<PRE>WINUSERAPI
2602BOOL
2603WINAPI
2604AnyPopup(
2605 VOID);</PRE>
2606<PRE>WINUSERAPI
2607BOOL
2608WINAPI
2609BringWindowToTop(
2610 HWND hWnd);</PRE>
2611<PRE>WINUSERAPI
2612BOOL
2613WINAPI
2614IsZoomed(
2615 HWND hWnd);</PRE>
2616<PRE>/*
2617 * SetWindowPos Flags
2618 */
2619#define SWP_NOSIZE 0x0001
2620#define SWP_NOMOVE 0x0002
2621#define SWP_NOZORDER 0x0004
2622#define SWP_NOREDRAW 0x0008
2623#define SWP_NOACTIVATE 0x0010
2624#define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */
2625#define SWP_SHOWWINDOW 0x0040
2626#define SWP_HIDEWINDOW 0x0080
2627#define SWP_NOCOPYBITS 0x0100
2628#define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */
2629#define SWP_NOSENDCHANGING 0x0400 /* Don't send WM_WINDOWPOSCHANGING */</PRE>
2630<PRE>#define SWP_DRAWFRAME SWP_FRAMECHANGED
2631#define SWP_NOREPOSITION SWP_NOOWNERZORDER</PRE>
2632<PRE>#if(WINVER >= 0x0400)
2633#define SWP_DEFERERASE 0x2000
2634#define SWP_ASYNCWINDOWPOS 0x4000
2635#endif /* WINVER >= 0x0400 */
2636</PRE>
2637<PRE>#define HWND_TOP ((HWND)0)
2638#define HWND_BOTTOM ((HWND)1)
2639#define HWND_TOPMOST ((HWND)-1)
2640#define HWND_NOTOPMOST ((HWND)-2)
2641</PRE>
2642<PRE>#ifndef NOCTLMGR</PRE>
2643<PRE>/*
2644 * WARNING:
2645 * The following structures must NOT be DWORD padded because they are
2646 * followed by strings, etc that do not have to be DWORD aligned.
2647 */
2648#include <pshpack2.h></PRE>
2649<PRE>/*
2650 * original NT 32 bit dialog template:
2651 */
2652typedef struct {
2653 DWORD style;
2654 DWORD dwExtendedStyle;
2655 WORD cdit;
2656 short x;
2657 short y;
2658 short cx;
2659 short cy;
2660} DLGTEMPLATE;
2661typedef DLGTEMPLATE *LPDLGTEMPLATEA;
2662typedef DLGTEMPLATE *LPDLGTEMPLATEW;
2663#ifdef UNICODE
2664typedef LPDLGTEMPLATEW LPDLGTEMPLATE;
2665#else
2666typedef LPDLGTEMPLATEA LPDLGTEMPLATE;
2667#endif // UNICODE
2668typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA;
2669typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW;
2670#ifdef UNICODE
2671typedef LPCDLGTEMPLATEW LPCDLGTEMPLATE;
2672#else
2673typedef LPCDLGTEMPLATEA LPCDLGTEMPLATE;
2674#endif // UNICODE</PRE>
2675<PRE>/*
2676 * 32 bit Dialog item template.
2677 */
2678typedef struct {
2679 DWORD style;
2680 DWORD dwExtendedStyle;
2681 short x;
2682 short y;
2683 short cx;
2684 short cy;
2685 WORD id;
2686} DLGITEMTEMPLATE;
2687typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
2688typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
2689#ifdef UNICODE
2690typedef PDLGITEMTEMPLATEW PDLGITEMTEMPLATE;
2691#else
2692typedef PDLGITEMTEMPLATEA PDLGITEMTEMPLATE;
2693#endif // UNICODE
2694typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
2695typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
2696#ifdef UNICODE
2697typedef LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE;
2698#else
2699typedef LPDLGITEMTEMPLATEA LPDLGITEMTEMPLATE;
2700#endif // UNICODE
2701</PRE>
2702<PRE>#include <poppack.h> /* Resume normal packing */</PRE>
2703<PRE>WINUSERAPI
2704HWND
2705WINAPI
2706CreateDialogParamA(
2707 HINSTANCE hInstance,
2708 LPCSTR lpTemplateName,
2709 HWND hWndParent ,
2710 DLGPROC lpDialogFunc,
2711 LPARAM dwInitParam);
2712WINUSERAPI
2713HWND
2714WINAPI
2715CreateDialogParamW(
2716 HINSTANCE hInstance,
2717 LPCWSTR lpTemplateName,
2718 HWND hWndParent ,
2719 DLGPROC lpDialogFunc,
2720 LPARAM dwInitParam);
2721#ifdef UNICODE
2722#define CreateDialogParam CreateDialogParamW
2723#else
2724#define CreateDialogParam CreateDialogParamA
2725#endif // !UNICODE</PRE>
2726<PRE>WINUSERAPI
2727HWND
2728WINAPI
2729CreateDialogIndirectParamA(
2730 HINSTANCE hInstance,
2731 LPCDLGTEMPLATEA lpTemplate,
2732 HWND hWndParent,
2733 DLGPROC lpDialogFunc,
2734 LPARAM dwInitParam);
2735WINUSERAPI
2736HWND
2737WINAPI
2738CreateDialogIndirectParamW(
2739 HINSTANCE hInstance,
2740 LPCDLGTEMPLATEW lpTemplate,
2741 HWND hWndParent,
2742 DLGPROC lpDialogFunc,
2743 LPARAM dwInitParam);
2744#ifdef UNICODE
2745#define CreateDialogIndirectParam CreateDialogIndirectParamW
2746#else
2747#define CreateDialogIndirectParam CreateDialogIndirectParamA
2748#endif // !UNICODE</PRE>
2749<PRE>#define CreateDialogA(hInstance, lpName, hWndParent, lpDialogFunc) \
2750CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L)
2751#define CreateDialogW(hInstance, lpName, hWndParent, lpDialogFunc) \
2752CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L)
2753#ifdef UNICODE
2754#define CreateDialog CreateDialogW
2755#else
2756#define CreateDialog CreateDialogA
2757#endif // !UNICODE</PRE>
2758<PRE>#define CreateDialogIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
2759CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
2760#define CreateDialogIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
2761CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
2762#ifdef UNICODE
2763#define CreateDialogIndirect CreateDialogIndirectW
2764#else
2765#define CreateDialogIndirect CreateDialogIndirectA
2766#endif // !UNICODE</PRE>
2767<PRE>WINUSERAPI
2768int
2769WINAPI
2770DialogBoxParamA(
2771 HINSTANCE hInstance,
2772 LPCSTR lpTemplateName,
2773 HWND hWndParent ,
2774 DLGPROC lpDialogFunc,
2775 LPARAM dwInitParam);
2776WINUSERAPI
2777int
2778WINAPI
2779DialogBoxParamW(
2780 HINSTANCE hInstance,
2781 LPCWSTR lpTemplateName,
2782 HWND hWndParent ,
2783 DLGPROC lpDialogFunc,
2784 LPARAM dwInitParam);
2785#ifdef UNICODE
2786#define DialogBoxParam DialogBoxParamW
2787#else
2788#define DialogBoxParam DialogBoxParamA
2789#endif // !UNICODE</PRE>
2790<PRE>WINUSERAPI
2791int
2792WINAPI
2793DialogBoxIndirectParamA(
2794 HINSTANCE hInstance,
2795 LPCDLGTEMPLATEA hDialogTemplate,
2796 HWND hWndParent ,
2797 DLGPROC lpDialogFunc,
2798 LPARAM dwInitParam);
2799WINUSERAPI
2800int
2801WINAPI
2802DialogBoxIndirectParamW(
2803 HINSTANCE hInstance,
2804 LPCDLGTEMPLATEW hDialogTemplate,
2805 HWND hWndParent ,
2806 DLGPROC lpDialogFunc,
2807 LPARAM dwInitParam);
2808#ifdef UNICODE
2809#define DialogBoxIndirectParam DialogBoxIndirectParamW
2810#else
2811#define DialogBoxIndirectParam DialogBoxIndirectParamA
2812#endif // !UNICODE</PRE>
2813<PRE>#define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
2814DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
2815#define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
2816DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
2817#ifdef UNICODE
2818#define DialogBox DialogBoxW
2819#else
2820#define DialogBox DialogBoxA
2821#endif // !UNICODE</PRE>
2822<PRE>#define DialogBoxIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
2823DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
2824#define DialogBoxIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) \
2825DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
2826#ifdef UNICODE
2827#define DialogBoxIndirect DialogBoxIndirectW
2828#else
2829#define DialogBoxIndirect DialogBoxIndirectA
2830#endif // !UNICODE</PRE>
2831<PRE>WINUSERAPI
2832BOOL
2833WINAPI
2834EndDialog(
2835 HWND hDlg,
2836 int nResult);</PRE>
2837<PRE>WINUSERAPI
2838HWND
2839WINAPI
2840GetDlgItem(
2841 HWND hDlg,
2842 int nIDDlgItem);</PRE>
2843<PRE>WINUSERAPI
2844BOOL
2845WINAPI
2846SetDlgItemInt(
2847 HWND hDlg,
2848 int nIDDlgItem,
2849 UINT uValue,
2850 BOOL bSigned);</PRE>
2851<PRE>WINUSERAPI
2852UINT
2853WINAPI
2854GetDlgItemInt(
2855 HWND hDlg,
2856 int nIDDlgItem,
2857 BOOL *lpTranslated,
2858 BOOL bSigned);</PRE>
2859<PRE>WINUSERAPI
2860BOOL
2861WINAPI
2862SetDlgItemTextA(
2863 HWND hDlg,
2864 int nIDDlgItem,
2865 LPCSTR lpString);
2866WINUSERAPI
2867BOOL
2868WINAPI
2869SetDlgItemTextW(
2870 HWND hDlg,
2871 int nIDDlgItem,
2872 LPCWSTR lpString);
2873#ifdef UNICODE
2874#define SetDlgItemText SetDlgItemTextW
2875#else
2876#define SetDlgItemText SetDlgItemTextA
2877#endif // !UNICODE</PRE>
2878<PRE>WINUSERAPI
2879UINT
2880WINAPI
2881GetDlgItemTextA(
2882 HWND hDlg,
2883 int nIDDlgItem,
2884 LPSTR lpString,
2885 int nMaxCount);
2886WINUSERAPI
2887UINT
2888WINAPI
2889GetDlgItemTextW(
2890 HWND hDlg,
2891 int nIDDlgItem,
2892 LPWSTR lpString,
2893 int nMaxCount);
2894#ifdef UNICODE
2895#define GetDlgItemText GetDlgItemTextW
2896#else
2897#define GetDlgItemText GetDlgItemTextA
2898#endif // !UNICODE</PRE>
2899<PRE>WINUSERAPI
2900BOOL
2901WINAPI
2902CheckDlgButton(
2903 HWND hDlg,
2904 int nIDButton,
2905 UINT uCheck);</PRE>
2906<PRE>WINUSERAPI
2907BOOL
2908WINAPI
2909CheckRadioButton(
2910 HWND hDlg,
2911 int nIDFirstButton,
2912 int nIDLastButton,
2913 int nIDCheckButton);</PRE>
2914<PRE>WINUSERAPI
2915UINT
2916WINAPI
2917IsDlgButtonChecked(
2918 HWND hDlg,
2919 int nIDButton);</PRE>
2920<PRE>WINUSERAPI
2921LONG
2922WINAPI
2923SendDlgItemMessageA(
2924 HWND hDlg,
2925 int nIDDlgItem,
2926 UINT Msg,
2927 WPARAM wParam,
2928 LPARAM lParam);
2929WINUSERAPI
2930LONG
2931WINAPI
2932SendDlgItemMessageW(
2933 HWND hDlg,
2934 int nIDDlgItem,
2935 UINT Msg,
2936 WPARAM wParam,
2937 LPARAM lParam);
2938#ifdef UNICODE
2939#define SendDlgItemMessage SendDlgItemMessageW
2940#else
2941#define SendDlgItemMessage SendDlgItemMessageA
2942#endif // !UNICODE</PRE>
2943<PRE>WINUSERAPI
2944HWND
2945WINAPI
2946GetNextDlgGroupItem(
2947 HWND hDlg,
2948 HWND hCtl,
2949 BOOL bPrevious);</PRE>
2950<PRE>WINUSERAPI
2951HWND
2952WINAPI
2953GetNextDlgTabItem(
2954 HWND hDlg,
2955 HWND hCtl,
2956 BOOL bPrevious);</PRE>
2957<PRE>WINUSERAPI
2958int
2959WINAPI
2960GetDlgCtrlID(
2961 HWND hWnd);</PRE>
2962<PRE>WINUSERAPI
2963long
2964WINAPI
2965GetDialogBaseUnits(VOID);</PRE>
2966<PRE>WINUSERAPI
2967LRESULT
2968WINAPI
2969DefDlgProcA(
2970 HWND hDlg,
2971 UINT Msg,
2972 WPARAM wParam,
2973 LPARAM lParam);
2974WINUSERAPI
2975LRESULT
2976WINAPI
2977DefDlgProcW(
2978 HWND hDlg,
2979 UINT Msg,
2980 WPARAM wParam,
2981 LPARAM lParam);
2982#ifdef UNICODE
2983#define DefDlgProc DefDlgProcW
2984#else
2985#define DefDlgProc DefDlgProcA
2986#endif // !UNICODE</PRE>
2987<PRE>/*
2988 * Window extra byted needed for private dialog classes.
2989 */
2990#define DLGWINDOWEXTRA 30</PRE>
2991<PRE>#endif /* !NOCTLMGR */</PRE>
2992<PRE>#ifndef NOMSG</PRE>
2993<PRE>WINUSERAPI
2994BOOL
2995WINAPI
2996CallMsgFilterA(
2997 LPMSG lpMsg,
2998 int nCode);
2999WINUSERAPI
3000BOOL
3001WINAPI
3002CallMsgFilterW(
3003 LPMSG lpMsg,
3004 int nCode);
3005#ifdef UNICODE
3006#define CallMsgFilter CallMsgFilterW
3007#else
3008#define CallMsgFilter CallMsgFilterA
3009#endif // !UNICODE</PRE>
3010<PRE>#endif /* !NOMSG */</PRE>
3011<PRE>#ifndef NOCLIPBOARD</PRE>
3012<PRE>/*
3013 * Clipboard Manager Functions
3014 */</PRE>
3015<PRE>WINUSERAPI
3016BOOL
3017WINAPI
3018OpenClipboard(
3019 HWND hWndNewOwner);</PRE>
3020<PRE>WINUSERAPI
3021BOOL
3022WINAPI
3023CloseClipboard(
3024 VOID);</PRE>
3025<PRE>WINUSERAPI
3026HWND
3027WINAPI
3028GetClipboardOwner(
3029 VOID);</PRE>
3030<PRE>WINUSERAPI
3031HWND
3032WINAPI
3033SetClipboardViewer(
3034 HWND hWndNewViewer);</PRE>
3035<PRE>WINUSERAPI
3036HWND
3037WINAPI
3038GetClipboardViewer(
3039 VOID);</PRE>
3040<PRE>WINUSERAPI
3041BOOL
3042WINAPI
3043ChangeClipboardChain(
3044 HWND hWndRemove,
3045 HWND hWndNewNext);</PRE>
3046<PRE>WINUSERAPI
3047HANDLE
3048WINAPI
3049SetClipboardData(
3050 UINT uFormat,
3051 HANDLE hMem);</PRE>
3052<PRE>WINUSERAPI
3053HANDLE
3054WINAPI
3055 GetClipboardData(
3056 UINT uFormat);</PRE>
3057<PRE>WINUSERAPI
3058UINT
3059WINAPI
3060RegisterClipboardFormatA(
3061 LPCSTR lpszFormat);
3062WINUSERAPI
3063UINT
3064WINAPI
3065RegisterClipboardFormatW(
3066 LPCWSTR lpszFormat);
3067#ifdef UNICODE
3068#define RegisterClipboardFormat RegisterClipboardFormatW
3069#else
3070#define RegisterClipboardFormat RegisterClipboardFormatA
3071#endif // !UNICODE</PRE>
3072<PRE>WINUSERAPI
3073int
3074WINAPI
3075CountClipboardFormats(
3076 VOID);</PRE>
3077<PRE>WINUSERAPI
3078UINT
3079WINAPI
3080EnumClipboardFormats(
3081 UINT format);</PRE>
3082<PRE>WINUSERAPI
3083int
3084WINAPI
3085GetClipboardFormatNameA(
3086 UINT format,
3087 LPSTR lpszFormatName,
3088 int cchMaxCount);
3089WINUSERAPI
3090int
3091WINAPI
3092GetClipboardFormatNameW(
3093 UINT format,
3094 LPWSTR lpszFormatName,
3095 int cchMaxCount);
3096#ifdef UNICODE
3097#define GetClipboardFormatName GetClipboardFormatNameW
3098#else
3099#define GetClipboardFormatName GetClipboardFormatNameA
3100#endif // !UNICODE</PRE>
3101<PRE>WINUSERAPI
3102BOOL
3103WINAPI
3104EmptyClipboard(
3105 VOID);</PRE>
3106<PRE>WINUSERAPI
3107BOOL
3108WINAPI
3109IsClipboardFormatAvailable(
3110 UINT format);</PRE>
3111<PRE>WINUSERAPI
3112int
3113WINAPI
3114GetPriorityClipboardFormat(
3115 UINT *paFormatPriorityList,
3116 int cFormats);</PRE>
3117<PRE>WINUSERAPI
3118HWND
3119WINAPI
3120GetOpenClipboardWindow(
3121 VOID);</PRE>
3122<PRE>#endif /* !NOCLIPBOARD */</PRE>
3123<PRE>/*
3124 * Character Translation Routines
3125 */</PRE>
3126<PRE>WINUSERAPI
3127BOOL
3128WINAPI
3129CharToOemA(
3130 LPCSTR lpszSrc,
3131 LPSTR lpszDst);
3132WINUSERAPI
3133BOOL
3134WINAPI
3135CharToOemW(
3136 LPCWSTR lpszSrc,
3137 LPSTR lpszDst);
3138#ifdef UNICODE
3139#define CharToOem CharToOemW
3140#else
3141#define CharToOem CharToOemA
3142#endif // !UNICODE</PRE>
3143<PRE>WINUSERAPI
3144BOOL
3145WINAPI
3146OemToCharA(
3147 LPCSTR lpszSrc,
3148 LPSTR lpszDst);
3149WINUSERAPI
3150BOOL
3151WINAPI
3152OemToCharW(
3153 LPCSTR lpszSrc,
3154 LPWSTR lpszDst);
3155#ifdef UNICODE
3156#define OemToChar OemToCharW
3157#else
3158#define OemToChar OemToCharA
3159#endif // !UNICODE</PRE>
3160<PRE>WINUSERAPI
3161BOOL
3162WINAPI
3163CharToOemBuffA(
3164 LPCSTR lpszSrc,
3165 LPSTR lpszDst,
3166 DWORD cchDstLength);
3167WINUSERAPI
3168BOOL
3169WINAPI
3170CharToOemBuffW(
3171 LPCWSTR lpszSrc,
3172 LPSTR lpszDst,
3173 DWORD cchDstLength);
3174#ifdef UNICODE
3175#define CharToOemBuff CharToOemBuffW
3176#else
3177#define CharToOemBuff CharToOemBuffA
3178#endif // !UNICODE</PRE>
3179<PRE>WINUSERAPI
3180BOOL
3181WINAPI
3182OemToCharBuffA(
3183 LPCSTR lpszSrc,
3184 LPSTR lpszDst,
3185 DWORD cchDstLength);
3186WINUSERAPI
3187BOOL
3188WINAPI
3189OemToCharBuffW(
3190 LPCSTR lpszSrc,
3191 LPWSTR lpszDst,
3192 DWORD cchDstLength);
3193#ifdef UNICODE
3194#define OemToCharBuff OemToCharBuffW
3195#else
3196#define OemToCharBuff OemToCharBuffA
3197#endif // !UNICODE</PRE>
3198<PRE>WINUSERAPI
3199LPSTR
3200WINAPI
3201CharUpperA(
3202 LPSTR lpsz);
3203WINUSERAPI
3204LPWSTR
3205WINAPI
3206CharUpperW(
3207 LPWSTR lpsz);
3208#ifdef UNICODE
3209#define CharUpper CharUpperW
3210#else
3211#define CharUpper CharUpperA
3212#endif // !UNICODE</PRE>
3213<PRE>WINUSERAPI
3214DWORD
3215WINAPI
3216CharUpperBuffA(
3217 LPSTR lpsz,
3218 DWORD cchLength);
3219WINUSERAPI
3220DWORD
3221WINAPI
3222CharUpperBuffW(
3223 LPWSTR lpsz,
3224 DWORD cchLength);
3225#ifdef UNICODE
3226#define CharUpperBuff CharUpperBuffW
3227#else
3228#define CharUpperBuff CharUpperBuffA
3229#endif // !UNICODE</PRE>
3230<PRE>WINUSERAPI
3231LPSTR
3232WINAPI
3233CharLowerA(
3234 LPSTR lpsz);
3235WINUSERAPI
3236LPWSTR
3237WINAPI
3238CharLowerW(
3239 LPWSTR lpsz);
3240#ifdef UNICODE
3241#define CharLower CharLowerW
3242#else
3243#define CharLower CharLowerA
3244#endif // !UNICODE</PRE>
3245<PRE>WINUSERAPI
3246DWORD
3247WINAPI
3248CharLowerBuffA(
3249 LPSTR lpsz,
3250 DWORD cchLength);
3251WINUSERAPI
3252DWORD
3253WINAPI
3254CharLowerBuffW(
3255 LPWSTR lpsz,
3256 DWORD cchLength);
3257#ifdef UNICODE
3258#define CharLowerBuff CharLowerBuffW
3259#else
3260#define CharLowerBuff CharLowerBuffA
3261#endif // !UNICODE</PRE>
3262<PRE>WINUSERAPI
3263LPSTR
3264WINAPI
3265CharNextA(
3266 LPCSTR lpsz);
3267WINUSERAPI
3268LPWSTR
3269WINAPI
3270CharNextW(
3271 LPCWSTR lpsz);
3272#ifdef UNICODE
3273#define CharNext CharNextW
3274#else
3275#define CharNext CharNextA
3276#endif // !UNICODE</PRE>
3277<PRE>WINUSERAPI
3278LPSTR
3279WINAPI
3280CharPrevA(
3281 LPCSTR lpszStart,
3282 LPCSTR lpszCurrent);
3283WINUSERAPI
3284LPWSTR
3285WINAPI
3286CharPrevW(
3287 LPCWSTR lpszStart,
3288 LPCWSTR lpszCurrent);
3289#ifdef UNICODE
3290#define CharPrev CharPrevW
3291#else
3292#define CharPrev CharPrevA
3293#endif // !UNICODE</PRE>
3294<PRE>#if(WINVER >= 0x0400)
3295WINUSERAPI
3296LPSTR
3297WINAPI
3298CharNextExA(
3299 WORD CodePage,
3300 LPCSTR lpCurrentChar,
3301 DWORD dwFlags);</PRE>
3302<PRE>WINUSERAPI
3303LPSTR
3304WINAPI
3305CharPrevExA(
3306 WORD CodePage,
3307 LPCSTR lpStart,
3308 LPCSTR lpCurrentChar,
3309 DWORD dwFlags);
3310#endif /* WINVER >= 0x0400 */</PRE>
3311<PRE>/*
3312 * Compatibility defines for character translation routines
3313 */
3314#define AnsiToOem CharToOemA
3315#define OemToAnsi OemToCharA
3316#define AnsiToOemBuff CharToOemBuffA
3317#define OemToAnsiBuff OemToCharBuffA
3318#define AnsiUpper CharUpperA
3319#define AnsiUpperBuff CharUpperBuffA
3320#define AnsiLower CharLowerA
3321#define AnsiLowerBuff CharLowerBuffA
3322#define AnsiNext CharNextA
3323#define AnsiPrev CharPrevA</PRE>
3324<PRE>#ifndef NOLANGUAGE
3325/*
3326 * Language dependent Routines
3327 */</PRE>
3328<PRE>WINUSERAPI
3329BOOL
3330WINAPI
3331IsCharAlphaA(
3332 CHAR ch);
3333WINUSERAPI
3334BOOL
3335WINAPI
3336IsCharAlphaW(
3337 WCHAR ch);
3338#ifdef UNICODE
3339#define IsCharAlpha IsCharAlphaW
3340#else
3341#define IsCharAlpha IsCharAlphaA
3342#endif // !UNICODE</PRE>
3343<PRE>WINUSERAPI
3344BOOL
3345WINAPI
3346IsCharAlphaNumericA(
3347 CHAR ch);
3348WINUSERAPI
3349BOOL
3350WINAPI
3351IsCharAlphaNumericW(
3352 WCHAR ch);
3353#ifdef UNICODE
3354#define IsCharAlphaNumeric IsCharAlphaNumericW
3355#else
3356#define IsCharAlphaNumeric IsCharAlphaNumericA
3357#endif // !UNICODE</PRE>
3358<PRE>WINUSERAPI
3359BOOL
3360WINAPI
3361IsCharUpperA(
3362 CHAR ch);
3363WINUSERAPI
3364BOOL
3365WINAPI
3366IsCharUpperW(
3367 WCHAR ch);
3368#ifdef UNICODE
3369#define IsCharUpper IsCharUpperW
3370#else
3371#define IsCharUpper IsCharUpperA
3372#endif // !UNICODE</PRE>
3373<PRE>WINUSERAPI
3374BOOL
3375WINAPI
3376IsCharLowerA(
3377 CHAR ch);
3378WINUSERAPI
3379BOOL
3380WINAPI
3381IsCharLowerW(
3382 WCHAR ch);
3383#ifdef UNICODE
3384#define IsCharLower IsCharLowerW
3385#else
3386#define IsCharLower IsCharLowerA
3387#endif // !UNICODE</PRE>
3388<PRE>#endif /* !NOLANGUAGE */</PRE>
3389<PRE>WINUSERAPI
3390HWND
3391WINAPI
3392SetFocus(
3393 HWND hWnd);</PRE>
3394<PRE>WINUSERAPI
3395HWND
3396WINAPI
3397GetActiveWindow(
3398 VOID);</PRE>
3399<PRE>WINUSERAPI
3400HWND
3401WINAPI
3402GetFocus(
3403 VOID);</PRE>
3404<PRE>WINUSERAPI
3405UINT
3406WINAPI
3407GetKBCodePage(
3408 VOID);</PRE>
3409<PRE>WINUSERAPI
3410SHORT
3411WINAPI
3412GetKeyState(
3413 int nVirtKey);</PRE>
3414<PRE>WINUSERAPI
3415SHORT
3416WINAPI
3417GetAsyncKeyState(
3418 int vKey);</PRE>
3419<PRE>WINUSERAPI
3420BOOL
3421WINAPI
3422GetKeyboardState(
3423 PBYTE lpKeyState);</PRE>
3424<PRE>WINUSERAPI
3425BOOL
3426WINAPI
3427SetKeyboardState(
3428 LPBYTE lpKeyState);</PRE>
3429<PRE>WINUSERAPI
3430int
3431WINAPI
3432GetKeyNameTextA(
3433 LONG lParam,
3434 LPSTR lpString,
3435 int nSize
3436 );
3437WINUSERAPI
3438int
3439WINAPI
3440GetKeyNameTextW(
3441 LONG lParam,
3442 LPWSTR lpString,
3443 int nSize
3444 );
3445#ifdef UNICODE
3446#define GetKeyNameText GetKeyNameTextW
3447#else
3448#define GetKeyNameText GetKeyNameTextA
3449#endif // !UNICODE</PRE>
3450<PRE>WINUSERAPI
3451int
3452WINAPI
3453GetKeyboardType(
3454 int nTypeFlag);</PRE>
3455<PRE>WINUSERAPI
3456int
3457WINAPI
3458ToAscii(
3459 UINT uVirtKey,
3460 UINT uScanCode,
3461 PBYTE lpKeyState,
3462 LPWORD lpChar,
3463 UINT uFlags);</PRE>
3464<PRE>#if(WINVER >= 0x0400)
3465WINUSERAPI
3466int
3467WINAPI
3468ToAsciiEx(
3469 UINT uVirtKey,
3470 UINT uScanCode,
3471 PBYTE lpKeyState,
3472 LPWORD lpChar,
3473 UINT uFlags,
3474 HKL dwhkl);
3475#endif /* WINVER >= 0x0400 */</PRE>
3476<PRE>WINUSERAPI
3477int
3478WINAPI
3479ToUnicode(
3480 UINT wVirtKey,
3481 UINT wScanCode,
3482 PBYTE lpKeyState,
3483 LPWSTR pwszBuff,
3484 int cchBuff,
3485 UINT wFlags);</PRE>
3486<PRE>WINUSERAPI
3487DWORD
3488WINAPI
3489OemKeyScan(
3490 WORD wOemChar);</PRE>
3491<PRE>WINUSERAPI
3492SHORT
3493WINAPI
3494VkKeyScanA(
3495 CHAR ch);
3496WINUSERAPI
3497SHORT
3498WINAPI
3499VkKeyScanW(
3500 WCHAR ch);
3501#ifdef UNICODE
3502#define VkKeyScan VkKeyScanW
3503#else
3504#define VkKeyScan VkKeyScanA
3505#endif // !UNICODE</PRE>
3506<PRE>#if(WINVER >= 0x0400)
3507WINUSERAPI
3508SHORT
3509WINAPI VkKeyScanExA(
3510 CHAR ch,
3511 HKL dwhkl);
3512WINUSERAPI
3513SHORT
3514WINAPI VkKeyScanExW(
3515 WCHAR ch,
3516 HKL dwhkl);
3517#ifdef UNICODE
3518#define VkKeyScanEx VkKeyScanExW
3519#else
3520#define VkKeyScanEx VkKeyScanExA
3521#endif // !UNICODE
3522#endif /* WINVER >= 0x0400 */
3523#define KEYEVENTF_EXTENDEDKEY 0x0001
3524#define KEYEVENTF_KEYUP 0x0002</PRE>
3525<PRE>WINUSERAPI
3526VOID
3527WINAPI
3528keybd_event(
3529 BYTE bVk,
3530 BYTE bScan,
3531 DWORD dwFlags,
3532 DWORD dwExtraInfo);</PRE>
3533<PRE>#define MOUSEEVENTF_MOVE 0x0001 /* mouse move */
3534#define MOUSEEVENTF_LEFTDOWN 0x0002 /* left button down */
3535#define MOUSEEVENTF_LEFTUP 0x0004 /* left button up */
3536#define MOUSEEVENTF_RIGHTDOWN 0x0008 /* right button down */
3537#define MOUSEEVENTF_RIGHTUP 0x0010 /* right button up */
3538#define MOUSEEVENTF_MIDDLEDOWN 0x0020 /* middle button down */
3539#define MOUSEEVENTF_MIDDLEUP 0x0040 /* middle button up */
3540#define MOUSEEVENTF_WHEEL 0x0800 /* wheel button rolled */
3541#define MOUSEEVENTF_ABSOLUTE 0x8000 /* absolute move */</PRE>
3542<PRE>WINUSERAPI
3543VOID
3544WINAPI
3545mouse_event(
3546 DWORD dwFlags,
3547 DWORD dx,
3548 DWORD dy,
3549 DWORD dwData,
3550 DWORD dwExtraInfo);</PRE>
3551<PRE>WINUSERAPI
3552UINT
3553WINAPI
3554MapVirtualKeyA(
3555 UINT uCode,
3556 UINT uMapType);
3557WINUSERAPI
3558UINT
3559WINAPI
3560MapVirtualKeyW(
3561 UINT uCode,
3562 UINT uMapType);
3563#ifdef UNICODE
3564#define MapVirtualKey MapVirtualKeyW
3565#else
3566#define MapVirtualKey MapVirtualKeyA
3567#endif // !UNICODE</PRE>
3568<PRE>#if(WINVER >= 0x0400)
3569WINUSERAPI
3570UINT
3571WINAPI
3572MapVirtualKeyExA(
3573 UINT uCode,
3574 UINT uMapType,
3575 HKL dwhkl);
3576WINUSERAPI
3577UINT
3578WINAPI
3579MapVirtualKeyExW(
3580 UINT uCode,
3581 UINT uMapType,
3582 HKL dwhkl);
3583#ifdef UNICODE
3584#define MapVirtualKeyEx MapVirtualKeyExW
3585#else
3586#define MapVirtualKeyEx MapVirtualKeyExA
3587#endif // !UNICODE
3588#endif /* WINVER >= 0x0400 */</PRE>
3589<PRE>WINUSERAPI
3590BOOL
3591WINAPI
3592GetInputState(
3593 VOID);</PRE>
3594<PRE>WINUSERAPI
3595DWORD
3596WINAPI
3597GetQueueStatus(
3598 UINT flags);</PRE>
3599<PRE>WINUSERAPI
3600HWND
3601WINAPI
3602GetCapture(
3603 VOID);</PRE>
3604<PRE>WINUSERAPI
3605HWND
3606WINAPI
3607SetCapture(
3608 HWND hWnd);</PRE>
3609<PRE>WINUSERAPI
3610BOOL
3611WINAPI
3612ReleaseCapture(
3613 VOID);</PRE>
3614<PRE>WINUSERAPI
3615DWORD
3616WINAPI
3617MsgWaitForMultipleObjects(
3618 DWORD nCount,
3619 LPHANDLE pHandles,
3620 BOOL fWaitAll,
3621 DWORD dwMilliseconds,
3622 DWORD dwWakeMask);</PRE>
3623<PRE>WINUSERAPI
3624DWORD
3625WINAPI
3626MsgWaitForMultipleObjectsEx(
3627 DWORD nCount,
3628 LPHANDLE pHandles,
3629 DWORD dwMilliseconds,
3630 DWORD dwWakeMask,
3631 DWORD dwFlags);</PRE>
3632<PRE>#define MWMO_WAITALL 0x0001
3633#define MWMO_ALERTABLE 0x0002</PRE>
3634<PRE>/*
3635 * Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects()
3636 */
3637#define QS_KEY 0x0001
3638#define QS_MOUSEMOVE 0x0002
3639#define QS_MOUSEBUTTON 0x0004
3640#define QS_POSTMESSAGE 0x0008
3641#define QS_TIMER 0x0010
3642#define QS_PAINT 0x0020
3643#define QS_SENDMESSAGE 0x0040
3644#define QS_HOTKEY 0x0080
3645#define QS_ALLPOSTMESSAGE 0x0100
3646
3647</PRE>
3648<PRE>#define QS_MOUSE (QS_MOUSEMOVE | \
3649 QS_MOUSEBUTTON)</PRE>
3650<PRE>#define QS_INPUT (QS_MOUSE | \
3651 QS_KEY)</PRE>
3652<PRE>#define QS_ALLEVENTS (QS_INPUT | \
3653 QS_POSTMESSAGE | \
3654 QS_TIMER | \
3655 QS_PAINT | \
3656 QS_HOTKEY)</PRE>
3657<PRE>#define QS_ALLINPUT (QS_INPUT | \
3658 QS_POSTMESSAGE | \
3659 QS_TIMER | \
3660 QS_PAINT | \
3661 QS_HOTKEY | \
3662 QS_SENDMESSAGE)
3663</PRE>
3664<PRE>/*
3665 * Windows Functions
3666 */</PRE>
3667<PRE>WINUSERAPI
3668UINT
3669WINAPI
3670SetTimer(
3671 HWND hWnd ,
3672 UINT nIDEvent,
3673 UINT uElapse,
3674 TIMERPROC lpTimerFunc);</PRE>
3675<PRE>WINUSERAPI
3676BOOL
3677WINAPI
3678KillTimer(
3679 HWND hWnd,
3680 UINT uIDEvent);</PRE>
3681<PRE>WINUSERAPI
3682BOOL
3683WINAPI
3684IsWindowUnicode(
3685 HWND hWnd);</PRE>
3686<PRE>WINUSERAPI
3687BOOL
3688WINAPI
3689EnableWindow(
3690 HWND hWnd,
3691 BOOL bEnable);</PRE>
3692<PRE>WINUSERAPI
3693BOOL
3694WINAPI
3695IsWindowEnabled(
3696 HWND hWnd);</PRE>
3697<PRE>WINUSERAPI
3698HACCEL
3699WINAPI
3700LoadAcceleratorsA(
3701 HINSTANCE hInstance,
3702 LPCSTR lpTableName);
3703WINUSERAPI
3704HACCEL
3705WINAPI
3706LoadAcceleratorsW(
3707 HINSTANCE hInstance,
3708 LPCWSTR lpTableName);
3709#ifdef UNICODE
3710#define LoadAccelerators LoadAcceleratorsW
3711#else
3712#define LoadAccelerators LoadAcceleratorsA
3713#endif // !UNICODE</PRE>
3714<PRE>WINUSERAPI
3715HACCEL
3716WINAPI
3717CreateAcceleratorTableA(
3718 LPACCEL, int);
3719WINUSERAPI
3720HACCEL
3721WINAPI
3722CreateAcceleratorTableW(
3723 LPACCEL, int);
3724#ifdef UNICODE
3725#define CreateAcceleratorTable CreateAcceleratorTableW
3726#else
3727#define CreateAcceleratorTable CreateAcceleratorTableA
3728#endif // !UNICODE</PRE>
3729<PRE>WINUSERAPI
3730BOOL
3731WINAPI
3732DestroyAcceleratorTable(
3733 HACCEL hAccel);</PRE>
3734<PRE>WINUSERAPI
3735int
3736WINAPI
3737CopyAcceleratorTableA(
3738 HACCEL hAccelSrc,
3739 LPACCEL lpAccelDst,
3740 int cAccelEntries);
3741WINUSERAPI
3742int
3743WINAPI
3744CopyAcceleratorTableW(
3745 HACCEL hAccelSrc,
3746 LPACCEL lpAccelDst,
3747 int cAccelEntries);
3748#ifdef UNICODE
3749#define CopyAcceleratorTable CopyAcceleratorTableW
3750#else
3751#define CopyAcceleratorTable CopyAcceleratorTableA
3752#endif // !UNICODE</PRE>
3753<PRE>#ifndef NOMSG</PRE>
3754<PRE>WINUSERAPI
3755int
3756WINAPI
3757TranslateAcceleratorA(
3758 HWND hWnd,
3759 HACCEL hAccTable,
3760 LPMSG lpMsg);
3761WINUSERAPI
3762int
3763WINAPI
3764TranslateAcceleratorW(
3765 HWND hWnd,
3766 HACCEL hAccTable,
3767 LPMSG lpMsg);
3768#ifdef UNICODE
3769#define TranslateAccelerator TranslateAcceleratorW
3770#else
3771#define TranslateAccelerator TranslateAcceleratorA
3772#endif // !UNICODE</PRE>
3773<PRE>#endif /* !NOMSG */</PRE>
3774<PRE>#ifndef NOSYSMETRICS</PRE>
3775<PRE>/*
3776 * GetSystemMetrics() codes
3777 */
3778#define SM_CXSCREEN 0
3779#define SM_CYSCREEN 1
3780#define SM_CXVSCROLL 2
3781#define SM_CYHSCROLL 3
3782#define SM_CYCAPTION 4
3783#define SM_CXBORDER 5
3784#define SM_CYBORDER 6
3785#define SM_CXDLGFRAME 7
3786#define SM_CYDLGFRAME 8
3787#define SM_CYVTHUMB 9
3788#define SM_CXHTHUMB 10
3789#define SM_CXICON 11
3790#define SM_CYICON 12
3791#define SM_CXCURSOR 13
3792#define SM_CYCURSOR 14
3793#define SM_CYMENU 15
3794#define SM_CXFULLSCREEN 16
3795#define SM_CYFULLSCREEN 17
3796#define SM_CYKANJIWINDOW 18
3797#define SM_MOUSEPRESENT 19
3798#define SM_CYVSCROLL 20
3799#define SM_CXHSCROLL 21
3800#define SM_DEBUG 22
3801#define SM_SWAPBUTTON 23
3802#define SM_RESERVED1 24
3803#define SM_RESERVED2 25
3804#define SM_RESERVED3 26
3805#define SM_RESERVED4 27
3806#define SM_CXMIN 28
3807#define SM_CYMIN 29
3808#define SM_CXSIZE 30
3809#define SM_CYSIZE 31
3810#define SM_CXFRAME 32
3811#define SM_CYFRAME 33
3812#define SM_CXMINTRACK 34
3813#define SM_CYMINTRACK 35
3814#define SM_CXDOUBLECLK 36
3815#define SM_CYDOUBLECLK 37
3816#define SM_CXICONSPACING 38
3817#define SM_CYICONSPACING 39
3818#define SM_MENUDROPALIGNMENT 40
3819#define SM_PENWINDOWS 41
3820#define SM_DBCSENABLED 42
3821#define SM_CMOUSEBUTTONS 43</PRE>
3822<PRE>#if(WINVER >= 0x0400)
3823#define SM_CXFIXEDFRAME SM_CXDLGFRAME /* ;win40 name change */
3824#define SM_CYFIXEDFRAME SM_CYDLGFRAME /* ;win40 name change */
3825#define SM_CXSIZEFRAME SM_CXFRAME /* ;win40 name change */
3826#define SM_CYSIZEFRAME SM_CYFRAME /* ;win40 name change */</PRE>
3827<PRE>#define SM_SECURE 44
3828#define SM_CXEDGE 45
3829#define SM_CYEDGE 46
3830#define SM_CXMINSPACING 47
3831#define SM_CYMINSPACING 48
3832#define SM_CXSMICON 49
3833#define SM_CYSMICON 50
3834#define SM_CYSMCAPTION 51
3835#define SM_CXSMSIZE 52
3836#define SM_CYSMSIZE 53
3837#define SM_CXMENUSIZE 54
3838#define SM_CYMENUSIZE 55
3839#define SM_ARRANGE 56
3840#define SM_CXMINIMIZED 57
3841#define SM_CYMINIMIZED 58
3842#define SM_CXMAXTRACK 59
3843#define SM_CYMAXTRACK 60
3844#define SM_CXMAXIMIZED 61
3845#define SM_CYMAXIMIZED 62
3846#define SM_NETWORK 63
3847#define SM_CLEANBOOT 67
3848#define SM_CXDRAG 68
3849#define SM_CYDRAG 69
3850#endif /* WINVER >= 0x0400 */
3851#define SM_SHOWSOUNDS 70
3852#if(WINVER >= 0x0400)
3853#define SM_CXMENUCHECK 71 /* Use instead of GetMenuCheckMarkDimensions()! */
3854#define SM_CYMENUCHECK 72
3855#define SM_SLOWMACHINE 73
3856#define SM_MIDEASTENABLED 74
3857#endif /* WINVER >= 0x0400 */
3858#if(_WIN32_WINNT >= 0x0400)
3859#define SM_MOUSEWHEELPRESENT 75
3860#endif /* _WIN32_WINNT >= 0x0400 */
3861#if (_WIN32_WINNT < 0x0400)
3862#define SM_CMETRICS 75
3863#else
3864#define SM_CMETRICS 76
3865#endif
3866
3867</PRE>
3868<PRE>WINUSERAPI
3869int
3870WINAPI
3871GetSystemMetrics(
3872 int nIndex);</PRE>
3873<PRE>#endif /* !NOSYSMETRICS */</PRE>
3874<PRE>#ifndef NOMENUS</PRE>
3875<PRE>WINUSERAPI
3876HMENU
3877WINAPI
3878LoadMenuA(
3879 HINSTANCE hInstance,
3880 LPCSTR lpMenuName);
3881WINUSERAPI
3882HMENU
3883WINAPI
3884LoadMenuW(
3885 HINSTANCE hInstance,
3886 LPCWSTR lpMenuName);
3887#ifdef UNICODE
3888#define LoadMenu LoadMenuW
3889#else
3890#define LoadMenu LoadMenuA
3891#endif // !UNICODE</PRE>
3892<PRE>WINUSERAPI
3893HMENU
3894WINAPI
3895LoadMenuIndirectA(
3896 CONST MENUTEMPLATEA *lpMenuTemplate);
3897WINUSERAPI
3898HMENU
3899WINAPI
3900LoadMenuIndirectW(
3901 CONST MENUTEMPLATEW *lpMenuTemplate);
3902#ifdef UNICODE
3903#define LoadMenuIndirect LoadMenuIndirectW
3904#else
3905#define LoadMenuIndirect LoadMenuIndirectA
3906#endif // !UNICODE</PRE>
3907<PRE>WINUSERAPI
3908HMENU
3909WINAPI
3910GetMenu(
3911 HWND hWnd);</PRE>
3912<PRE>WINUSERAPI
3913BOOL
3914WINAPI
3915SetMenu(
3916 HWND hWnd,
3917 HMENU hMenu);</PRE>
3918<PRE>WINUSERAPI
3919BOOL
3920WINAPI
3921ChangeMenuA(
3922 HMENU hMenu,
3923 UINT cmd,
3924 LPCSTR lpszNewItem,
3925 UINT cmdInsert,
3926 UINT flags);
3927WINUSERAPI
3928BOOL
3929WINAPI
3930ChangeMenuW(
3931 HMENU hMenu,
3932 UINT cmd,
3933 LPCWSTR lpszNewItem,
3934 UINT cmdInsert,
3935 UINT flags);
3936#ifdef UNICODE
3937#define ChangeMenu ChangeMenuW
3938#else
3939#define ChangeMenu ChangeMenuA
3940#endif // !UNICODE</PRE>
3941<PRE>WINUSERAPI
3942BOOL
3943WINAPI
3944HiliteMenuItem(
3945 HWND hWnd,
3946 HMENU hMenu,
3947 UINT uIDHiliteItem,
3948 UINT uHilite);</PRE>
3949<PRE>WINUSERAPI
3950int
3951WINAPI
3952GetMenuStringA(
3953 HMENU hMenu,
3954 UINT uIDItem,
3955 LPSTR lpString,
3956 int nMaxCount,
3957 UINT uFlag);
3958WINUSERAPI
3959int
3960WINAPI
3961GetMenuStringW(
3962 HMENU hMenu,
3963 UINT uIDItem,
3964 LPWSTR lpString,
3965 int nMaxCount,
3966 UINT uFlag);
3967#ifdef UNICODE
3968#define GetMenuString GetMenuStringW
3969#else
3970#define GetMenuString GetMenuStringA
3971#endif // !UNICODE</PRE>
3972<PRE>WINUSERAPI
3973UINT
3974WINAPI
3975GetMenuState(
3976 HMENU hMenu,
3977 UINT uId,
3978 UINT uFlags);</PRE>
3979<PRE>WINUSERAPI
3980BOOL
3981WINAPI
3982DrawMenuBar(
3983 HWND hWnd);
3984</PRE>
3985<PRE>WINUSERAPI
3986HMENU
3987WINAPI
3988GetSystemMenu(
3989 HWND hWnd,
3990 BOOL bRevert);
3991
3992</PRE>
3993<PRE>WINUSERAPI
3994HMENU
3995WINAPI
3996CreateMenu(
3997 VOID);</PRE>
3998<PRE>WINUSERAPI
3999HMENU
4000WINAPI
4001CreatePopupMenu(
4002 VOID);</PRE>
4003<PRE>WINUSERAPI
4004BOOL
4005WINAPI
4006DestroyMenu(
4007 HMENU hMenu);</PRE>
4008<PRE>WINUSERAPI
4009DWORD
4010WINAPI
4011CheckMenuItem(
4012 HMENU hMenu,
4013 UINT uIDCheckItem,
4014 UINT uCheck);</PRE>
4015<PRE>WINUSERAPI
4016BOOL
4017WINAPI
4018EnableMenuItem(
4019 HMENU hMenu,
4020 UINT uIDEnableItem,
4021 UINT uEnable);</PRE>
4022<PRE>WINUSERAPI
4023HMENU
4024WINAPI
4025GetSubMenu(
4026 HMENU hMenu,
4027 int nPos);</PRE>
4028<PRE>WINUSERAPI
4029UINT
4030WINAPI
4031GetMenuItemID(
4032 HMENU hMenu,
4033 int nPos);</PRE>
4034<PRE>WINUSERAPI
4035int
4036WINAPI
4037GetMenuItemCount(
4038 HMENU hMenu);</PRE>
4039<PRE>WINUSERAPI
4040BOOL
4041WINAPI
4042InsertMenuA(
4043 HMENU hMenu,
4044 UINT uPosition,
4045 UINT uFlags,
4046 UINT uIDNewItem,
4047 LPCSTR lpNewItem
4048 );
4049WINUSERAPI
4050BOOL
4051WINAPI
4052InsertMenuW(
4053 HMENU hMenu,
4054 UINT uPosition,
4055 UINT uFlags,
4056 UINT uIDNewItem,
4057 LPCWSTR lpNewItem
4058 );
4059#ifdef UNICODE
4060#define InsertMenu InsertMenuW
4061#else
4062#define InsertMenu InsertMenuA
4063#endif // !UNICODE</PRE>
4064<PRE>WINUSERAPI
4065BOOL
4066WINAPI
4067AppendMenuA(
4068 HMENU hMenu,
4069 UINT uFlags,
4070 UINT uIDNewItem,
4071 LPCSTR lpNewItem
4072 );
4073WINUSERAPI
4074BOOL
4075WINAPI
4076AppendMenuW(
4077 HMENU hMenu,
4078 UINT uFlags,
4079 UINT uIDNewItem,
4080 LPCWSTR lpNewItem
4081 );
4082#ifdef UNICODE
4083#define AppendMenu AppendMenuW
4084#else
4085#define AppendMenu AppendMenuA
4086#endif // !UNICODE</PRE>
4087<PRE>WINUSERAPI
4088BOOL
4089WINAPI
4090ModifyMenuA(
4091 HMENU hMnu,
4092 UINT uPosition,
4093 UINT uFlags,
4094 UINT uIDNewItem,
4095 LPCSTR lpNewItem
4096 );
4097WINUSERAPI
4098BOOL
4099WINAPI
4100ModifyMenuW(
4101 HMENU hMnu,
4102 UINT uPosition,
4103 UINT uFlags,
4104 UINT uIDNewItem,
4105 LPCWSTR lpNewItem
4106 );
4107#ifdef UNICODE
4108#define ModifyMenu ModifyMenuW
4109#else
4110#define ModifyMenu ModifyMenuA
4111#endif // !UNICODE</PRE>
4112<PRE>WINUSERAPI
4113BOOL
4114WINAPI RemoveMenu(
4115 HMENU hMenu,
4116 UINT uPosition,
4117 UINT uFlags);</PRE>
4118<PRE>WINUSERAPI
4119BOOL
4120WINAPI
4121DeleteMenu(
4122 HMENU hMenu,
4123 UINT uPosition,
4124 UINT uFlags);</PRE>
4125<PRE>WINUSERAPI
4126BOOL
4127WINAPI
4128SetMenuItemBitmaps(
4129 HMENU hMenu,
4130 UINT uPosition,
4131 UINT uFlags,
4132 HBITMAP hBitmapUnchecked,
4133 HBITMAP hBitmapChecked);</PRE>
4134<PRE>WINUSERAPI
4135LONG
4136WINAPI
4137GetMenuCheckMarkDimensions(
4138 VOID);</PRE>
4139<PRE>WINUSERAPI
4140BOOL
4141WINAPI
4142TrackPopupMenu(
4143 HMENU hMenu,
4144 UINT uFlags,
4145 int x,
4146 int y,
4147 int nReserved,
4148 HWND hWnd,
4149 CONST RECT *prcRect);</PRE>
4150<PRE>#if(WINVER >= 0x0400)
4151/* return codes for WM_MENUCHAR */
4152#define MNC_IGNORE 0
4153#define MNC_CLOSE 1
4154#define MNC_EXECUTE 2
4155#define MNC_SELECT 3</PRE>
4156<PRE>typedef struct tagTPMPARAMS
4157{
4158 UINT cbSize; /* Size of structure */
4159 RECT rcExclude; /* Screen coordinates of rectangle to exclude when positioning */
4160} TPMPARAMS;
4161typedef TPMPARAMS FAR *LPTPMPARAMS;</PRE>
4162<PRE>WINUSERAPI BOOL WINAPI TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS);
4163#endif /* WINVER >= 0x0400 */
4164</PRE>
4165<PRE>#if(WINVER >= 0x0400)
4166#define MIIM_STATE 0x00000001
4167#define MIIM_ID 0x00000002
4168#define MIIM_SUBMENU 0x00000004
4169#define MIIM_CHECKMARKS 0x00000008
4170#define MIIM_TYPE 0x00000010
4171#define MIIM_DATA 0x00000020
4172#endif /* WINVER >= 0x0400 */
4173</PRE>
4174<PRE>#if(WINVER >= 0x0400)
4175typedef struct tagMENUITEMINFOA
4176{
4177 UINT cbSize;
4178 UINT fMask;
4179 UINT fType; // used if MIIM_TYPE
4180 UINT fState; // used if MIIM_STATE
4181 UINT wID; // used if MIIM_ID
4182 HMENU hSubMenu; // used if MIIM_SUBMENU
4183 HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS
4184 HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS
4185 DWORD dwItemData; // used if MIIM_DATA
4186 LPSTR dwTypeData; // used if MIIM_TYPE
4187 UINT cch; // used if MIIM_TYPE
4188} MENUITEMINFOA, FAR *LPMENUITEMINFOA;
4189typedef struct tagMENUITEMINFOW
4190{
4191 UINT cbSize;
4192 UINT fMask;
4193 UINT fType; // used if MIIM_TYPE
4194 UINT fState; // used if MIIM_STATE
4195 UINT wID; // used if MIIM_ID
4196 HMENU hSubMenu; // used if MIIM_SUBMENU
4197 HBITMAP hbmpChecked; // used if MIIM_CHECKMARKS
4198 HBITMAP hbmpUnchecked; // used if MIIM_CHECKMARKS
4199 DWORD dwItemData; // used if MIIM_DATA
4200 LPWSTR dwTypeData; // used if MIIM_TYPE
4201 UINT cch; // used if MIIM_TYPE
4202} MENUITEMINFOW, FAR *LPMENUITEMINFOW;
4203#ifdef UNICODE
4204typedef MENUITEMINFOW MENUITEMINFO;
4205typedef LPMENUITEMINFOW LPMENUITEMINFO;
4206#else
4207typedef MENUITEMINFOA MENUITEMINFO;
4208typedef LPMENUITEMINFOA LPMENUITEMINFO;
4209#endif // UNICODE
4210typedef MENUITEMINFOA CONST FAR *LPCMENUITEMINFOA;
4211typedef MENUITEMINFOW CONST FAR *LPCMENUITEMINFOW;
4212#ifdef UNICODE
4213typedef LPCMENUITEMINFOW LPCMENUITEMINFO;
4214#else
4215typedef LPCMENUITEMINFOA LPCMENUITEMINFO;
4216#endif // UNICODE</PRE>
4217<PRE>WINUSERAPI
4218BOOL
4219WINAPI
4220InsertMenuItemA(
4221 HMENU,
4222 UINT,
4223 BOOL,
4224 LPCMENUITEMINFOA
4225 );
4226WINUSERAPI
4227BOOL
4228WINAPI
4229InsertMenuItemW(
4230 HMENU,
4231 UINT,
4232 BOOL,
4233 LPCMENUITEMINFOW
4234 );
4235#ifdef UNICODE
4236#define InsertMenuItem InsertMenuItemW
4237#else
4238#define InsertMenuItem InsertMenuItemA
4239#endif // !UNICODE</PRE>
4240<PRE>WINUSERAPI
4241BOOL
4242WINAPI
4243GetMenuItemInfoA(
4244 HMENU,
4245 UINT,
4246 BOOL,
4247 LPMENUITEMINFOA
4248 );
4249WINUSERAPI
4250BOOL
4251WINAPI
4252GetMenuItemInfoW(
4253 HMENU,
4254 UINT,
4255 BOOL,
4256 LPMENUITEMINFOW
4257 );
4258#ifdef UNICODE
4259#define GetMenuItemInfo GetMenuItemInfoW
4260#else
4261#define GetMenuItemInfo GetMenuItemInfoA
4262#endif // !UNICODE</PRE>
4263<PRE>WINUSERAPI
4264BOOL
4265WINAPI
4266SetMenuItemInfoA(
4267 HMENU,
4268 UINT,
4269 BOOL,
4270 LPCMENUITEMINFOA
4271 );
4272WINUSERAPI
4273BOOL
4274WINAPI
4275SetMenuItemInfoW(
4276 HMENU,
4277 UINT,
4278 BOOL,
4279 LPCMENUITEMINFOW
4280 );
4281#ifdef UNICODE
4282#define SetMenuItemInfo SetMenuItemInfoW
4283#else
4284#define SetMenuItemInfo SetMenuItemInfoA
4285#endif // !UNICODE
4286</PRE>
4287<PRE>#define GMDI_USEDISABLED 0x0001L
4288#define GMDI_GOINTOPOPUPS 0x0002L</PRE>
4289<PRE>WINUSERAPI UINT WINAPI GetMenuDefaultItem(HMENU hMenu, UINT fByPos, UINT gmdiFlags);
4290WINUSERAPI BOOL WINAPI SetMenuDefaultItem(HMENU hMenu, UINT uItem, UINT fByPos);</PRE>
4291<PRE>WINUSERAPI BOOL WINAPI GetMenuItemRect(HWND hWnd, HMENU hMenu, UINT uItem, LPRECT lprcItem);
4292WINUSERAPI int WINAPI MenuItemFromPoint(HWND hWnd, HMENU hMenu, POINT ptScreen);
4293#endif /* WINVER >= 0x0400 */</PRE>
4294<PRE>/*
4295 * Flags for TrackPopupMenu
4296 */
4297#define TPM_LEFTBUTTON 0x0000L
4298#define TPM_RIGHTBUTTON 0x0002L
4299#define TPM_LEFTALIGN 0x0000L
4300#define TPM_CENTERALIGN 0x0004L
4301#define TPM_RIGHTALIGN 0x0008L
4302#if(WINVER >= 0x0400)
4303#define TPM_TOPALIGN 0x0000L
4304#define TPM_VCENTERALIGN 0x0010L
4305#define TPM_BOTTOMALIGN 0x0020L</PRE>
4306<PRE>#define TPM_HORIZONTAL 0x0000L /* Horz alignment matters more */
4307#define TPM_VERTICAL 0x0040L /* Vert alignment matters more */
4308#define TPM_NONOTIFY 0x0080L /* Don't send any notification msgs */
4309#define TPM_RETURNCMD 0x0100L
4310#endif /* WINVER >= 0x0400 */
4311</PRE>
4312<PRE>#endif /* !NOMENUS */
4313</PRE>
4314<PRE>#if(WINVER >= 0x0400)
4315//
4316// Drag-and-drop support
4317//</PRE>
4318<PRE>typedef struct tagDROPSTRUCT
4319{
4320 HWND hwndSource;
4321 HWND hwndSink;
4322 DWORD wFmt;
4323 DWORD dwData;
4324 POINT ptDrop;
4325 DWORD dwControlData;
4326} DROPSTRUCT, *PDROPSTRUCT, *LPDROPSTRUCT;</PRE>
4327<PRE>#define DOF_EXECUTABLE 0x8001
4328#define DOF_DOCUMENT 0x8002
4329#define DOF_DIRECTORY 0x8003
4330#define DOF_MULTIPLE 0x8004
4331#define DOF_PROGMAN 0x0001
4332#define DOF_SHELLDATA 0x0002</PRE>
4333<PRE>#define DO_DROPFILE 0x454C4946L
4334#define DO_PRINTFILE 0x544E5250L</PRE>
4335<PRE>WINUSERAPI
4336DWORD
4337WINAPI
4338DragObject(HWND, HWND, UINT, DWORD, HCURSOR);</PRE>
4339<PRE>WINUSERAPI
4340BOOL
4341WINAPI
4342DragDetect(HWND, POINT);
4343#endif /* WINVER >= 0x0400 */</PRE>
4344<PRE>WINUSERAPI
4345BOOL
4346WINAPI
4347DrawIcon(
4348 HDC hDC,
4349 int X,
4350 int Y,
4351 HICON hIcon);</PRE>
4352<PRE>#ifndef NODRAWTEXT</PRE>
4353<PRE>/*
4354 * DrawText() Format Flags
4355 */
4356#define DT_TOP 0x00000000
4357#define DT_LEFT 0x00000000
4358#define DT_CENTER 0x00000001
4359#define DT_RIGHT 0x00000002
4360#define DT_VCENTER 0x00000004
4361#define DT_BOTTOM 0x00000008
4362#define DT_WORDBREAK 0x00000010
4363#define DT_SINGLELINE 0x00000020
4364#define DT_EXPANDTABS 0x00000040
4365#define DT_TABSTOP 0x00000080
4366#define DT_NOCLIP 0x00000100
4367#define DT_EXTERNALLEADING 0x00000200
4368#define DT_CALCRECT 0x00000400
4369#define DT_NOPREFIX 0x00000800
4370#define DT_INTERNAL 0x00001000</PRE>
4371<PRE>#if(WINVER >= 0x0400)
4372#define DT_EDITCONTROL 0x00002000
4373#define DT_PATH_ELLIPSIS 0x00004000
4374#define DT_END_ELLIPSIS 0x00008000
4375#define DT_MODIFYSTRING 0x00010000
4376#define DT_RTLREADING 0x00020000
4377#define DT_WORD_ELLIPSIS 0x00040000
4378
4379</PRE>
4380<PRE>typedef struct tagDRAWTEXTPARAMS
4381{
4382 UINT cbSize;
4383 int iTabLength;
4384 int iLeftMargin;
4385 int iRightMargin;
4386 UINT uiLengthDrawn;
4387} DRAWTEXTPARAMS, FAR *LPDRAWTEXTPARAMS;
4388#endif /* WINVER >= 0x0400 */
4389
4390
4391
4392</PRE>
4393<PRE>WINUSERAPI
4394int
4395WINAPI
4396DrawTextA(
4397 HDC hDC,
4398 LPCSTR lpString,
4399 int nCount,
4400 LPRECT lpRect,
4401 UINT uFormat);
4402WINUSERAPI
4403int
4404WINAPI
4405DrawTextW(
4406 HDC hDC,
4407 LPCWSTR lpString,
4408 int nCount,
4409 LPRECT lpRect,
4410 UINT uFormat);
4411#ifdef UNICODE
4412#define DrawText DrawTextW
4413#else
4414#define DrawText DrawTextA
4415#endif // !UNICODE
4416</PRE>
4417<PRE>#if(WINVER >= 0x0400)
4418WINUSERAPI
4419int
4420WINAPI
4421DrawTextExA(HDC, LPSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
4422WINUSERAPI
4423int
4424WINAPI
4425DrawTextExW(HDC, LPWSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
4426#ifdef UNICODE
4427#define DrawTextEx DrawTextExW
4428#else
4429#define DrawTextEx DrawTextExA
4430#endif // !UNICODE
4431#endif /* WINVER >= 0x0400 */</PRE>
4432<PRE>#endif /* !NODRAWTEXT */</PRE>
4433<PRE>WINUSERAPI
4434BOOL
4435WINAPI
4436GrayStringA(
4437 HDC hDC,
4438 HBRUSH hBrush,
4439 GRAYSTRINGPROC lpOutputFunc,
4440 LPARAM lpData,
4441 int nCount,
4442 int X,
4443 int Y,
4444 int nWidth,
4445 int nHeight);
4446WINUSERAPI
4447BOOL
4448WINAPI
4449GrayStringW(
4450 HDC hDC,
4451 HBRUSH hBrush,
4452 GRAYSTRINGPROC lpOutputFunc,
4453 LPARAM lpData,
4454 int nCount,
4455 int X,
4456 int Y,
4457 int nWidth,
4458 int nHeight);
4459#ifdef UNICODE
4460#define GrayString GrayStringW
4461#else
4462#define GrayString GrayStringA
4463#endif // !UNICODE</PRE>
4464<PRE>#if(WINVER >= 0x0400)
4465/* Monolithic state-drawing routine */
4466/* Image type */
4467#define DST_COMPLEX 0x0000
4468#define DST_TEXT 0x0001
4469#define DST_PREFIXTEXT 0x0002
4470#define DST_ICON 0x0003
4471#define DST_BITMAP 0x0004</PRE>
4472<PRE>/* State type */
4473#define DSS_NORMAL 0x0000
4474#define DSS_UNION 0x0010 /* Gray string appearance */
4475#define DSS_DISABLED 0x0020
4476#define DSS_MONO 0x0080
4477#define DSS_RIGHT 0x8000</PRE>
4478<PRE>WINUSERAPI BOOL WINAPI DrawStateA(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
4479WINUSERAPI BOOL WINAPI DrawStateW(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
4480#ifdef UNICODE
4481#define DrawState DrawStateW
4482#else
4483#define DrawState DrawStateA
4484#endif // !UNICODE
4485#endif /* WINVER >= 0x0400 */
4486</PRE>
4487<PRE>WINUSERAPI
4488LONG
4489WINAPI
4490TabbedTextOutA(
4491 HDC hDC,
4492 int X,
4493 int Y,
4494 LPCSTR lpString,
4495 int nCount,
4496 int nTabPositions,
4497 LPINT lpnTabStopPositions,
4498 int nTabOrigin);
4499WINUSERAPI
4500LONG
4501WINAPI
4502TabbedTextOutW(
4503 HDC hDC,
4504 int X,
4505 int Y,
4506 LPCWSTR lpString,
4507 int nCount,
4508 int nTabPositions,
4509 LPINT lpnTabStopPositions,
4510 int nTabOrigin);
4511#ifdef UNICODE
4512#define TabbedTextOut TabbedTextOutW
4513#else
4514#define TabbedTextOut TabbedTextOutA
4515#endif // !UNICODE</PRE>
4516<PRE>WINUSERAPI
4517DWORD
4518WINAPI
4519GetTabbedTextExtentA(
4520 HDC hDC,
4521 LPCSTR lpString,
4522 int nCount,
4523 int nTabPositions,
4524 LPINT lpnTabStopPositions);
4525WINUSERAPI
4526DWORD
4527WINAPI
4528GetTabbedTextExtentW(
4529 HDC hDC,
4530 LPCWSTR lpString,
4531 int nCount,
4532 int nTabPositions,
4533 LPINT lpnTabStopPositions);
4534#ifdef UNICODE
4535#define GetTabbedTextExtent GetTabbedTextExtentW
4536#else
4537#define GetTabbedTextExtent GetTabbedTextExtentA
4538#endif // !UNICODE</PRE>
4539<PRE>WINUSERAPI
4540BOOL
4541WINAPI
4542UpdateWindow(
4543 HWND hWnd);</PRE>
4544<PRE>WINUSERAPI
4545HWND
4546WINAPI
4547SetActiveWindow(
4548 HWND hWnd);</PRE>
4549<PRE>WINUSERAPI
4550HWND
4551WINAPI
4552GetForegroundWindow(
4553 VOID);</PRE>
4554<PRE>#if(WINVER >= 0x0400)
4555WINUSERAPI BOOL WINAPI PaintDesktop(HDC hdc);</PRE>
4556<PRE>#endif /* WINVER >= 0x0400 */</PRE>
4557<PRE>WINUSERAPI
4558BOOL
4559WINAPI
4560SetForegroundWindow(
4561 HWND hWnd);</PRE>
4562<PRE>WINUSERAPI
4563HWND
4564WINAPI
4565WindowFromDC(
4566 HDC hDC);</PRE>
4567<PRE>WINUSERAPI
4568HDC
4569WINAPI
4570GetDC(
4571 HWND hWnd);</PRE>
4572<PRE>WINUSERAPI
4573HDC
4574WINAPI
4575GetDCEx(
4576 HWND hWnd ,
4577 HRGN hrgnClip,
4578 DWORD flags);</PRE>
4579<PRE>/*
4580 * GetDCEx() flags
4581 */
4582#define DCX_WINDOW 0x00000001L
4583#define DCX_CACHE 0x00000002L
4584#define DCX_NORESETATTRS 0x00000004L
4585#define DCX_CLIPCHILDREN 0x00000008L
4586#define DCX_CLIPSIBLINGS 0x00000010L
4587#define DCX_PARENTCLIP 0x00000020L</PRE>
4588<PRE>#define DCX_EXCLUDERGN 0x00000040L
4589#define DCX_INTERSECTRGN 0x00000080L</PRE>
4590<PRE>#define DCX_EXCLUDEUPDATE 0x00000100L
4591#define DCX_INTERSECTUPDATE 0x00000200L</PRE>
4592<PRE>#define DCX_LOCKWINDOWUPDATE 0x00000400L</PRE>
4593<PRE>#define DCX_VALIDATE 0x00200000L
4594
4595
4596</PRE>
4597<PRE>WINUSERAPI
4598HDC
4599WINAPI
4600GetWindowDC(
4601 HWND hWnd);</PRE>
4602<PRE>WINUSERAPI
4603int
4604WINAPI
4605ReleaseDC(
4606 HWND hWnd,
4607 HDC hDC);</PRE>
4608<PRE>WINUSERAPI
4609HDC
4610WINAPI
4611BeginPaint(
4612 HWND hWnd,
4613 LPPAINTSTRUCT lpPaint);</PRE>
4614<PRE>WINUSERAPI
4615BOOL
4616WINAPI
4617EndPaint(
4618 HWND hWnd,
4619 CONST PAINTSTRUCT *lpPaint);</PRE>
4620<PRE>WINUSERAPI
4621BOOL
4622WINAPI
4623GetUpdateRect(
4624 HWND hWnd,
4625 LPRECT lpRect,
4626 BOOL bErase);</PRE>
4627<PRE>WINUSERAPI
4628int
4629WINAPI
4630GetUpdateRgn(
4631 HWND hWnd,
4632 HRGN hRgn,
4633 BOOL bErase);</PRE>
4634<PRE>WINUSERAPI
4635int
4636WINAPI
4637SetWindowRgn(
4638 HWND hWnd,
4639 HRGN hRgn,
4640 BOOL bRedraw);</PRE>
4641<PRE>WINUSERAPI
4642int
4643WINAPI
4644GetWindowRgn(
4645 HWND hWnd,
4646 HRGN hRgn);</PRE>
4647<PRE>WINUSERAPI
4648int
4649WINAPI
4650ExcludeUpdateRgn(
4651 HDC hDC,
4652 HWND hWnd);</PRE>
4653<PRE>WINUSERAPI
4654BOOL
4655WINAPI
4656InvalidateRect(
4657 HWND hWnd ,
4658 CONST RECT *lpRect,
4659 BOOL bErase);</PRE>
4660<PRE>WINUSERAPI
4661BOOL
4662WINAPI
4663ValidateRect(
4664 HWND hWnd ,
4665 CONST RECT *lpRect);</PRE>
4666<PRE>WINUSERAPI
4667BOOL
4668WINAPI
4669InvalidateRgn(
4670 HWND hWnd,
4671 HRGN hRgn,
4672 BOOL bErase);</PRE>
4673<PRE>WINUSERAPI
4674BOOL
4675WINAPI
4676ValidateRgn(
4677 HWND hWnd,
4678 HRGN hRgn);
4679</PRE>
4680<PRE>WINUSERAPI
4681BOOL
4682WINAPI
4683RedrawWindow(
4684 HWND hWnd,
4685 CONST RECT *lprcUpdate,
4686 HRGN hrgnUpdate,
4687 UINT flags);</PRE>
4688<PRE>/*
4689 * RedrawWindow() flags
4690 */
4691#define RDW_INVALIDATE 0x0001
4692#define RDW_INTERNALPAINT 0x0002
4693#define RDW_ERASE 0x0004</PRE>
4694<PRE>#define RDW_VALIDATE 0x0008
4695#define RDW_NOINTERNALPAINT 0x0010
4696#define RDW_NOERASE 0x0020</PRE>
4697<PRE>#define RDW_NOCHILDREN 0x0040
4698#define RDW_ALLCHILDREN 0x0080</PRE>
4699<PRE>#define RDW_UPDATENOW 0x0100
4700#define RDW_ERASENOW 0x0200</PRE>
4701<PRE>#define RDW_FRAME 0x0400
4702#define RDW_NOFRAME 0x0800
4703
4704</PRE>
4705<PRE>/*
4706 * LockWindowUpdate API
4707 */</PRE>
4708<PRE>WINUSERAPI
4709BOOL
4710WINAPI
4711LockWindowUpdate(
4712 HWND hWndLock);</PRE>
4713<PRE>WINUSERAPI
4714BOOL
4715WINAPI
4716ScrollWindow(
4717 HWND hWnd,
4718 int XAmount,
4719 int YAmount,
4720 CONST RECT *lpRect,
4721 CONST RECT *lpClipRect);</PRE>
4722<PRE>WINUSERAPI
4723BOOL
4724WINAPI
4725ScrollDC(
4726 HDC hDC,
4727 int dx,
4728 int dy,
4729 CONST RECT *lprcScroll,
4730 CONST RECT *lprcClip ,
4731 HRGN hrgnUpdate,
4732 LPRECT lprcUpdate);</PRE>
4733<PRE>WINUSERAPI
4734int
4735WINAPI
4736ScrollWindowEx(
4737 HWND hWnd,
4738 int dx,
4739 int dy,
4740 CONST RECT *prcScroll,
4741 CONST RECT *prcClip ,
4742 HRGN hrgnUpdate,
4743 LPRECT prcUpdate,
4744 UINT flags);</PRE>
4745<PRE>#define SW_SCROLLCHILDREN 0x0001 /* Scroll children within *lprcScroll. */
4746#define SW_INVALIDATE 0x0002 /* Invalidate after scrolling */
4747#define SW_ERASE 0x0004 /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */
4748
4749</PRE>
4750<PRE>#ifndef NOSCROLL</PRE>
4751<PRE>WINUSERAPI
4752int
4753WINAPI
4754SetScrollPos(
4755 HWND hWnd,
4756 int nBar,
4757 int nPos,
4758 BOOL bRedraw);</PRE>
4759<PRE>WINUSERAPI
4760int
4761WINAPI
4762GetScrollPos(
4763 HWND hWnd,
4764 int nBar);</PRE>
4765<PRE>WINUSERAPI
4766BOOL
4767WINAPI
4768SetScrollRange(
4769 HWND hWnd,
4770 int nBar,
4771 int nMinPos,
4772 int nMaxPos,
4773 BOOL bRedraw);</PRE>
4774<PRE>WINUSERAPI
4775BOOL
4776WINAPI
4777GetScrollRange(
4778 HWND hWnd,
4779 int nBar,
4780 LPINT lpMinPos,
4781 LPINT lpMaxPos);</PRE>
4782<PRE>WINUSERAPI
4783BOOL
4784WINAPI
4785ShowScrollBar(
4786 HWND hWnd,
4787 int wBar,
4788 BOOL bShow);</PRE>
4789<PRE>WINUSERAPI
4790BOOL
4791WINAPI
4792EnableScrollBar(
4793 HWND hWnd,
4794 UINT wSBflags,
4795 UINT wArrows);
4796</PRE>
4797<PRE>/*
4798 * EnableScrollBar() flags
4799 */
4800#define ESB_ENABLE_BOTH 0x0000
4801#define ESB_DISABLE_BOTH 0x0003</PRE>
4802<PRE>#define ESB_DISABLE_LEFT 0x0001
4803#define ESB_DISABLE_RIGHT 0x0002</PRE>
4804<PRE>#define ESB_DISABLE_UP 0x0001
4805#define ESB_DISABLE_DOWN 0x0002</PRE>
4806<PRE>#define ESB_DISABLE_LTUP ESB_DISABLE_LEFT
4807#define ESB_DISABLE_RTDN ESB_DISABLE_RIGHT
4808</PRE>
4809<PRE>#endif /* !NOSCROLL */</PRE>
4810<PRE>WINUSERAPI
4811BOOL
4812WINAPI
4813SetPropA(
4814 HWND hWnd,
4815 LPCSTR lpString,
4816 HANDLE hData);
4817WINUSERAPI
4818BOOL
4819WINAPI
4820SetPropW(
4821 HWND hWnd,
4822 LPCWSTR lpString,
4823 HANDLE hData);
4824#ifdef UNICODE
4825#define SetProp SetPropW
4826#else
4827#define SetProp SetPropA
4828#endif // !UNICODE</PRE>
4829<PRE>WINUSERAPI
4830HANDLE
4831WINAPI
4832GetPropA(
4833 HWND hWnd,
4834 LPCSTR lpString);
4835WINUSERAPI
4836HANDLE
4837WINAPI
4838GetPropW(
4839 HWND hWnd,
4840 LPCWSTR lpString);
4841#ifdef UNICODE
4842#define GetProp GetPropW
4843#else
4844#define GetProp GetPropA
4845#endif // !UNICODE</PRE>
4846<PRE>WINUSERAPI
4847HANDLE
4848WINAPI
4849RemovePropA(
4850 HWND hWnd,
4851 LPCSTR lpString);
4852WINUSERAPI
4853HANDLE
4854WINAPI
4855RemovePropW(
4856 HWND hWnd,
4857 LPCWSTR lpString);
4858#ifdef UNICODE
4859#define RemoveProp RemovePropW
4860#else
4861#define RemoveProp RemovePropA
4862#endif // !UNICODE</PRE>
4863<PRE>WINUSERAPI
4864int
4865WINAPI
4866EnumPropsExA(
4867 HWND hWnd,
4868 PROPENUMPROCEXA lpEnumFunc,
4869 LPARAM lParam);
4870WINUSERAPI
4871int
4872WINAPI
4873EnumPropsExW(
4874 HWND hWnd,
4875 PROPENUMPROCEXW lpEnumFunc,
4876 LPARAM lParam);
4877#ifdef UNICODE
4878#define EnumPropsEx EnumPropsExW
4879#else
4880#define EnumPropsEx EnumPropsExA
4881#endif // !UNICODE</PRE>
4882<PRE>WINUSERAPI
4883int
4884WINAPI
4885EnumPropsA(
4886 HWND hWnd,
4887 PROPENUMPROCA lpEnumFunc);
4888WINUSERAPI
4889int
4890WINAPI
4891EnumPropsW(
4892 HWND hWnd,
4893 PROPENUMPROCW lpEnumFunc);
4894#ifdef UNICODE
4895#define EnumProps EnumPropsW
4896#else
4897#define EnumProps EnumPropsA
4898#endif // !UNICODE</PRE>
4899<PRE>WINUSERAPI
4900BOOL
4901WINAPI
4902SetWindowTextA(
4903 HWND hWnd,
4904 LPCSTR lpString);
4905WINUSERAPI
4906BOOL
4907WINAPI
4908SetWindowTextW(
4909 HWND hWnd,
4910 LPCWSTR lpString);
4911#ifdef UNICODE
4912#define SetWindowText SetWindowTextW
4913#else
4914#define SetWindowText SetWindowTextA
4915#endif // !UNICODE</PRE>
4916<PRE>WINUSERAPI
4917int
4918WINAPI
4919GetWindowTextA(
4920 HWND hWnd,
4921 LPSTR lpString,
4922 int nMaxCount);
4923WINUSERAPI
4924int
4925WINAPI
4926GetWindowTextW(
4927 HWND hWnd,
4928 LPWSTR lpString,
4929 int nMaxCount);
4930#ifdef UNICODE
4931#define GetWindowText GetWindowTextW
4932#else
4933#define GetWindowText GetWindowTextA
4934#endif // !UNICODE</PRE>
4935<PRE>WINUSERAPI
4936int
4937WINAPI
4938GetWindowTextLengthA(
4939 HWND hWnd);
4940WINUSERAPI
4941int
4942WINAPI
4943GetWindowTextLengthW(
4944 HWND hWnd);
4945#ifdef UNICODE
4946#define GetWindowTextLength GetWindowTextLengthW
4947#else
4948#define GetWindowTextLength GetWindowTextLengthA
4949#endif // !UNICODE</PRE>
4950<PRE>WINUSERAPI
4951BOOL
4952WINAPI
4953GetClientRect(
4954 HWND hWnd,
4955 LPRECT lpRect);</PRE>
4956<PRE>WINUSERAPI
4957BOOL
4958WINAPI
4959GetWindowRect(
4960 HWND hWnd,
4961 LPRECT lpRect);</PRE>
4962<PRE>WINUSERAPI
4963BOOL
4964WINAPI
4965AdjustWindowRect(
4966 LPRECT lpRect,
4967 DWORD dwStyle,
4968 BOOL bMenu);</PRE>
4969<PRE>WINUSERAPI
4970BOOL
4971WINAPI
4972AdjustWindowRectEx(
4973 LPRECT lpRect,
4974 DWORD dwStyle,
4975 BOOL bMenu,
4976 DWORD dwExStyle);</PRE>
4977<PRE>#if(WINVER >= 0x0400)
4978#define HELPINFO_WINDOW 0x0001
4979#define HELPINFO_MENUITEM 0x0002
4980typedef struct tagHELPINFO /* Structure pointed to by lParam of WM_HELP */
4981{
4982 UINT cbSize; /* Size in bytes of this struct */
4983 int iContextType; /* Either HELPINFO_WINDOW or HELPINFO_MENUITEM */
4984 int iCtrlId; /* Control Id or a Menu item Id. */
4985 HANDLE hItemHandle; /* hWnd of control or hMenu. */
4986 DWORD dwContextId; /* Context Id associated with this item */
4987 POINT MousePos; /* Mouse Position in screen co-ordinates */
4988} HELPINFO, FAR *LPHELPINFO;</PRE>
4989<PRE>WINUSERAPI BOOL WINAPI SetWindowContextHelpId(HWND, DWORD);
4990WINUSERAPI DWORD WINAPI GetWindowContextHelpId(HWND);
4991WINUSERAPI BOOL WINAPI SetMenuContextHelpId(HMENU, DWORD);
4992WINUSERAPI DWORD WINAPI GetMenuContextHelpId(HMENU);</PRE>
4993<PRE>#endif /* WINVER >= 0x0400 */
4994
4995</PRE>
4996<PRE>#ifndef NOMB</PRE>
4997<PRE>/*
4998 * MessageBox() Flags
4999 */
5000#define MB_OK 0x00000000L
5001#define MB_OKCANCEL 0x00000001L
5002#define MB_ABORTRETRYIGNORE 0x00000002L
5003#define MB_YESNOCANCEL 0x00000003L
5004#define MB_YESNO 0x00000004L
5005#define MB_RETRYCANCEL 0x00000005L
5006</PRE>
5007<PRE>#define MB_ICONHAND 0x00000010L
5008#define MB_ICONQUESTION 0x00000020L
5009#define MB_ICONEXCLAMATION 0x00000030L
5010#define MB_ICONASTERISK 0x00000040L</PRE>
5011<PRE>#if(WINVER >= 0x0400)
5012#define MB_USERICON 0x00000080L
5013#define MB_ICONWARNING MB_ICONEXCLAMATION
5014#define MB_ICONERROR MB_ICONHAND
5015#endif /* WINVER >= 0x0400 */</PRE>
5016<PRE>#define MB_ICONINFORMATION MB_ICONASTERISK
5017#define MB_ICONSTOP MB_ICONHAND</PRE>
5018<PRE>#define MB_DEFBUTTON1 0x00000000L
5019#define MB_DEFBUTTON2 0x00000100L
5020#define MB_DEFBUTTON3 0x00000200L
5021#if(WINVER >= 0x0400)
5022#define MB_DEFBUTTON4 0x00000300L
5023#endif /* WINVER >= 0x0400 */</PRE>
5024<PRE>#define MB_APPLMODAL 0x00000000L
5025#define MB_SYSTEMMODAL 0x00001000L
5026#define MB_TASKMODAL 0x00002000L
5027#if(WINVER >= 0x0400)
5028#define MB_HELP 0x00004000L // Help Button
5029#endif /* WINVER >= 0x0400 */</PRE>
5030<PRE>#define MB_NOFOCUS 0x00008000L
5031#define MB_SETFOREGROUND 0x00010000L
5032#define MB_DEFAULT_DESKTOP_ONLY 0x00020000L</PRE>
5033<PRE>#if(WINVER >= 0x0400)
5034#define MB_TOPMOST 0x00040000L
5035#define MB_RIGHT 0x00080000L
5036#define MB_RTLREADING 0x00100000L
5037</PRE>
5038<PRE>#endif /* WINVER >= 0x0400 */
5039</PRE>
5040<PRE>#ifdef _WIN32_WINNT
5041#if (_WIN32_WINNT >= 0x0400)
5042#define MB_SERVICE_NOTIFICATION 0x00200000L
5043#else
5044#define MB_SERVICE_NOTIFICATION 0x00040000L
5045#endif
5046#define MB_SERVICE_NOTIFICATION_NT3X 0x00040000L
5047#endif</PRE>
5048<PRE>#define MB_TYPEMASK 0x0000000FL
5049#define MB_ICONMASK 0x000000F0L
5050#define MB_DEFMASK 0x00000F00L
5051#define MB_MODEMASK 0x00003000L
5052#define MB_MISCMASK 0x0000C000L</PRE>
5053<PRE>WINUSERAPI
5054int
5055WINAPI
5056MessageBoxA(
5057 HWND hWnd ,
5058 LPCSTR lpText,
5059 LPCSTR lpCaption,
5060 UINT uType);
5061WINUSERAPI
5062int
5063WINAPI
5064MessageBoxW(
5065 HWND hWnd ,
5066 LPCWSTR lpText,
5067 LPCWSTR lpCaption,
5068 UINT uType);
5069#ifdef UNICODE
5070#define MessageBox MessageBoxW
5071#else
5072#define MessageBox MessageBoxA
5073#endif // !UNICODE</PRE>
5074<PRE>WINUSERAPI
5075int
5076WINAPI
5077MessageBoxExA(
5078 HWND hWnd ,
5079 LPCSTR lpText,
5080 LPCSTR lpCaption,
5081 UINT uType,
5082 WORD wLanguageId);
5083WINUSERAPI
5084int
5085WINAPI
5086MessageBoxExW(
5087 HWND hWnd ,
5088 LPCWSTR lpText,
5089 LPCWSTR lpCaption,
5090 UINT uType,
5091 WORD wLanguageId);
5092#ifdef UNICODE
5093#define MessageBoxEx MessageBoxExW
5094#else
5095#define MessageBoxEx MessageBoxExA
5096#endif // !UNICODE</PRE>
5097<PRE>#if(WINVER >= 0x0400)</PRE>
5098<PRE>typedef void (CALLBACK *MSGBOXCALLBACK)(LPHELPINFO lpHelpInfo);</PRE>
5099<PRE>typedef struct tagMSGBOXPARAMSA
5100{
5101 UINT cbSize;
5102 HWND hwndOwner;
5103 HINSTANCE hInstance;
5104 LPCSTR lpszText;
5105 LPCSTR lpszCaption;
5106 DWORD dwStyle;
5107 LPCSTR lpszIcon;
5108 DWORD dwContextHelpId;
5109 MSGBOXCALLBACK lpfnMsgBoxCallback;
5110 DWORD dwLanguageId;
5111} MSGBOXPARAMSA, *PMSGBOXPARAMSA, *LPMSGBOXPARAMSA;
5112typedef struct tagMSGBOXPARAMSW
5113{
5114 UINT cbSize;
5115 HWND hwndOwner;
5116 HINSTANCE hInstance;
5117 LPCWSTR lpszText;
5118 LPCWSTR lpszCaption;
5119 DWORD dwStyle;
5120 LPCWSTR lpszIcon;
5121 DWORD dwContextHelpId;
5122 MSGBOXCALLBACK lpfnMsgBoxCallback;
5123 DWORD dwLanguageId;
5124} MSGBOXPARAMSW, *PMSGBOXPARAMSW, *LPMSGBOXPARAMSW;
5125#ifdef UNICODE
5126typedef MSGBOXPARAMSW MSGBOXPARAMS;
5127typedef PMSGBOXPARAMSW PMSGBOXPARAMS;
5128typedef LPMSGBOXPARAMSW LPMSGBOXPARAMS;
5129#else
5130typedef MSGBOXPARAMSA MSGBOXPARAMS;
5131typedef PMSGBOXPARAMSA PMSGBOXPARAMS;
5132typedef LPMSGBOXPARAMSA LPMSGBOXPARAMS;
5133#endif // UNICODE
5134</PRE>
5135<PRE>WINUSERAPI int WINAPI MessageBoxIndirectA(LPMSGBOXPARAMSA);
5136WINUSERAPI int WINAPI MessageBoxIndirectW(LPMSGBOXPARAMSW);
5137#ifdef UNICODE
5138#define MessageBoxIndirect MessageBoxIndirectW
5139#else
5140#define MessageBoxIndirect MessageBoxIndirectA
5141#endif // !UNICODE
5142#endif /* WINVER >= 0x0400 */
5143
5144</PRE>
5145<PRE>WINUSERAPI
5146BOOL
5147WINAPI
5148MessageBeep(
5149 UINT uType);</PRE>
5150<PRE>#endif /* !NOMB */</PRE>
5151<PRE>WINUSERAPI
5152int
5153WINAPI
5154ShowCursor(
5155 BOOL bShow);</PRE>
5156<PRE>WINUSERAPI
5157BOOL
5158WINAPI
5159SetCursorPos(
5160 int X,
5161 int Y);</PRE>
5162<PRE>WINUSERAPI
5163HCURSOR
5164WINAPI
5165SetCursor(
5166 HCURSOR hCursor);</PRE>
5167<PRE>WINUSERAPI
5168BOOL
5169WINAPI
5170GetCursorPos(
5171 LPPOINT lpPoint);</PRE>
5172<PRE>WINUSERAPI
5173BOOL
5174WINAPI
5175ClipCursor(
5176 CONST RECT *lpRect);</PRE>
5177<PRE>WINUSERAPI
5178BOOL
5179WINAPI
5180GetClipCursor(
5181 LPRECT lpRect);</PRE>
5182<PRE>WINUSERAPI
5183HCURSOR
5184WINAPI
5185GetCursor(
5186 VOID);</PRE>
5187<PRE>WINUSERAPI
5188BOOL
5189WINAPI
5190CreateCaret(
5191 HWND hWnd,
5192 HBITMAP hBitmap ,
5193 int nWidth,
5194 int nHeight);</PRE>
5195<PRE>WINUSERAPI
5196UINT
5197WINAPI
5198GetCaretBlinkTime(
5199 VOID);</PRE>
5200<PRE>WINUSERAPI
5201BOOL
5202WINAPI
5203SetCaretBlinkTime(
5204 UINT uMSeconds);</PRE>
5205<PRE>WINUSERAPI
5206BOOL
5207WINAPI
5208DestroyCaret(
5209 VOID);</PRE>
5210<PRE>WINUSERAPI
5211BOOL
5212WINAPI
5213HideCaret(
5214 HWND hWnd);</PRE>
5215<PRE>WINUSERAPI
5216BOOL
5217WINAPI
5218ShowCaret(
5219 HWND hWnd);</PRE>
5220<PRE>WINUSERAPI
5221BOOL
5222WINAPI
5223SetCaretPos(
5224 int X,
5225 int Y);</PRE>
5226<PRE>WINUSERAPI
5227BOOL
5228WINAPI
5229GetCaretPos(
5230 LPPOINT lpPoint);</PRE>
5231<PRE>WINUSERAPI
5232BOOL
5233WINAPI
5234ClientToScreen(
5235 HWND hWnd,
5236 LPPOINT lpPoint);</PRE>
5237<PRE>WINUSERAPI
5238BOOL
5239WINAPI
5240ScreenToClient(
5241 HWND hWnd,
5242 LPPOINT lpPoint);</PRE>
5243<PRE>WINUSERAPI
5244int
5245WINAPI
5246MapWindowPoints(
5247 HWND hWndFrom,
5248 HWND hWndTo,
5249 LPPOINT lpPoints,
5250 UINT cPoints);</PRE>
5251<PRE>WINUSERAPI
5252HWND
5253WINAPI
5254WindowFromPoint(
5255 POINT Point);</PRE>
5256<PRE>WINUSERAPI
5257HWND
5258WINAPI
5259ChildWindowFromPoint(
5260 HWND hWndParent,
5261 POINT Point);</PRE>
5262<PRE>#if(WINVER >= 0x0400)
5263#define CWP_ALL 0x0000
5264#define CWP_SKIPINVISIBLE 0x0001
5265#define CWP_SKIPDISABLED 0x0002
5266#define CWP_SKIPTRANSPARENT 0x0004</PRE>
5267<PRE>WINUSERAPI HWND WINAPI ChildWindowFromPointEx(HWND, POINT, UINT);
5268#endif /* WINVER >= 0x0400 */</PRE>
5269<PRE>#ifndef NOCOLOR</PRE>
5270<PRE>/*
5271 * Color Types
5272 */
5273#define CTLCOLOR_MSGBOX 0
5274#define CTLCOLOR_EDIT 1
5275#define CTLCOLOR_LISTBOX 2
5276#define CTLCOLOR_BTN 3
5277#define CTLCOLOR_DLG 4
5278#define CTLCOLOR_SCROLLBAR 5
5279#define CTLCOLOR_STATIC 6
5280#define CTLCOLOR_MAX 7</PRE>
5281<PRE>#define COLOR_SCROLLBAR 0
5282#define COLOR_BACKGROUND 1
5283#define COLOR_ACTIVECAPTION 2
5284#define COLOR_INACTIVECAPTION 3
5285#define COLOR_MENU 4
5286#define COLOR_WINDOW 5
5287#define COLOR_WINDOWFRAME 6
5288#define COLOR_MENUTEXT 7
5289#define COLOR_WINDOWTEXT 8
5290#define COLOR_CAPTIONTEXT 9
5291#define COLOR_ACTIVEBORDER 10
5292#define COLOR_INACTIVEBORDER 11
5293#define COLOR_APPWORKSPACE 12
5294#define COLOR_HIGHLIGHT 13
5295#define COLOR_HIGHLIGHTTEXT 14
5296#define COLOR_BTNFACE 15
5297#define COLOR_BTNSHADOW 16
5298#define COLOR_GRAYTEXT 17
5299#define COLOR_BTNTEXT 18
5300#define COLOR_INACTIVECAPTIONTEXT 19
5301#define COLOR_BTNHIGHLIGHT 20</PRE>
5302<PRE>#if(WINVER >= 0x0400)
5303#define COLOR_3DDKSHADOW 21
5304#define COLOR_3DLIGHT 22
5305#define COLOR_INFOTEXT 23
5306#define COLOR_INFOBK 24</PRE>
5307<PRE>#define COLOR_DESKTOP COLOR_BACKGROUND
5308#define COLOR_3DFACE COLOR_BTNFACE
5309#define COLOR_3DSHADOW COLOR_BTNSHADOW
5310#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
5311#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
5312#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
5313#endif /* WINVER >= 0x0400 */
5314</PRE>
5315<PRE>WINUSERAPI
5316DWORD
5317WINAPI
5318GetSysColor(
5319 int nIndex);</PRE>
5320<PRE>#if(WINVER >= 0x0400)
5321WINUSERAPI
5322HBRUSH
5323WINAPI
5324GetSysColorBrush(
5325 int nIndex);
5326</PRE>
5327<PRE>#endif /* WINVER >= 0x0400 */</PRE>
5328<PRE>WINUSERAPI
5329BOOL
5330WINAPI
5331SetSysColors(
5332 int cElements,
5333 CONST INT * lpaElements,
5334 CONST COLORREF * lpaRgbValues);</PRE>
5335<PRE>#endif /* !NOCOLOR */</PRE>
5336<PRE>WINUSERAPI
5337BOOL
5338WINAPI
5339DrawFocusRect(
5340 HDC hDC,
5341 CONST RECT * lprc);</PRE>
5342<PRE>WINUSERAPI
5343int
5344WINAPI
5345FillRect(
5346 HDC hDC,
5347 CONST RECT *lprc,
5348 HBRUSH hbr);</PRE>
5349<PRE>WINUSERAPI
5350int
5351WINAPI
5352FrameRect(
5353 HDC hDC,
5354 CONST RECT *lprc,
5355 HBRUSH hbr);</PRE>
5356<PRE>WINUSERAPI
5357BOOL
5358WINAPI
5359InvertRect(
5360 HDC hDC,
5361 CONST RECT *lprc);</PRE>
5362<PRE>WINUSERAPI
5363BOOL
5364WINAPI
5365SetRect(
5366 LPRECT lprc,
5367 int xLeft,
5368 int yTop,
5369 int xRight,
5370 int yBottom);</PRE>
5371<PRE>WINUSERAPI
5372BOOL
5373WINAPI
5374 SetRectEmpty(
5375 LPRECT lprc);</PRE>
5376<PRE>WINUSERAPI
5377BOOL
5378WINAPI
5379CopyRect(
5380 LPRECT lprcDst,
5381 CONST RECT *lprcSrc);</PRE>
5382<PRE>WINUSERAPI
5383BOOL
5384WINAPI
5385InflateRect(
5386 LPRECT lprc,
5387 int dx,
5388 int dy);</PRE>
5389<PRE>WINUSERAPI
5390BOOL
5391WINAPI
5392IntersectRect(
5393 LPRECT lprcDst,
5394 CONST RECT *lprcSrc1,
5395 CONST RECT *lprcSrc2);</PRE>
5396<PRE>WINUSERAPI
5397BOOL
5398WINAPI
5399UnionRect(
5400 LPRECT lprcDst,
5401 CONST RECT *lprcSrc1,
5402 CONST RECT *lprcSrc2);</PRE>
5403<PRE>WINUSERAPI
5404BOOL
5405WINAPI
5406SubtractRect(
5407 LPRECT lprcDst,
5408 CONST RECT *lprcSrc1,
5409 CONST RECT *lprcSrc2);</PRE>
5410<PRE>WINUSERAPI
5411BOOL
5412WINAPI
5413OffsetRect(
5414 LPRECT lprc,
5415 int dx,
5416 int dy);</PRE>
5417<PRE>WINUSERAPI
5418BOOL
5419WINAPI
5420IsRectEmpty(
5421 CONST RECT *lprc);</PRE>
5422<PRE>WINUSERAPI
5423BOOL
5424WINAPI
5425EqualRect(
5426 CONST RECT *lprc1,
5427 CONST RECT *lprc2);</PRE>
5428<PRE>WINUSERAPI
5429BOOL
5430WINAPI
5431PtInRect(
5432 CONST RECT *lprc,
5433 POINT pt);</PRE>
5434<PRE>#ifndef NOWINOFFSETS</PRE>
5435<PRE>WINUSERAPI
5436WORD
5437WINAPI
5438GetWindowWord(
5439 HWND hWnd,
5440 int nIndex);</PRE>
5441<PRE>WINUSERAPI
5442WORD
5443WINAPI
5444SetWindowWord(
5445 HWND hWnd,
5446 int nIndex,
5447 WORD wNewWord);</PRE>
5448<PRE>WINUSERAPI
5449LONG
5450WINAPI
5451GetWindowLongA(
5452 HWND hWnd,
5453 int nIndex);
5454WINUSERAPI
5455LONG
5456WINAPI
5457GetWindowLongW(
5458 HWND hWnd,
5459 int nIndex);
5460#ifdef UNICODE
5461#define GetWindowLong GetWindowLongW
5462#else
5463#define GetWindowLong GetWindowLongA
5464#endif // !UNICODE</PRE>
5465<PRE>WINUSERAPI
5466LONG
5467WINAPI
5468SetWindowLongA(
5469 HWND hWnd,
5470 int nIndex,
5471 LONG dwNewLong);
5472WINUSERAPI
5473LONG
5474WINAPI
5475SetWindowLongW(
5476 HWND hWnd,
5477 int nIndex,
5478 LONG dwNewLong);
5479#ifdef UNICODE
5480#define SetWindowLong SetWindowLongW
5481#else
5482#define SetWindowLong SetWindowLongA
5483#endif // !UNICODE</PRE>
5484<PRE>WINUSERAPI
5485WORD
5486WINAPI
5487GetClassWord(
5488 HWND hWnd,
5489 int nIndex);</PRE>
5490<PRE>WINUSERAPI
5491WORD
5492WINAPI
5493SetClassWord(
5494 HWND hWnd,
5495 int nIndex,
5496 WORD wNewWord);</PRE>
5497<PRE>WINUSERAPI
5498DWORD
5499WINAPI
5500GetClassLongA(
5501 HWND hWnd,
5502 int nIndex);
5503WINUSERAPI
5504DWORD
5505WINAPI
5506GetClassLongW(
5507 HWND hWnd,
5508 int nIndex);
5509#ifdef UNICODE
5510#define GetClassLong GetClassLongW
5511#else
5512#define GetClassLong GetClassLongA
5513#endif // !UNICODE</PRE>
5514<PRE>WINUSERAPI
5515DWORD
5516WINAPI
5517SetClassLongA(
5518 HWND hWnd,
5519 int nIndex,
5520 LONG dwNewLong);
5521WINUSERAPI
5522DWORD
5523WINAPI
5524SetClassLongW(
5525 HWND hWnd,
5526 int nIndex,
5527 LONG dwNewLong);
5528#ifdef UNICODE
5529#define SetClassLong SetClassLongW
5530#else
5531#define SetClassLong SetClassLongA
5532#endif // !UNICODE</PRE>
5533<PRE>#endif /* !NOWINOFFSETS */</PRE>
5534<PRE>WINUSERAPI
5535HWND
5536WINAPI
5537GetDesktopWindow(
5538 VOID);
5539</PRE>
5540<PRE>WINUSERAPI
5541HWND
5542WINAPI
5543GetParent(
5544 HWND hWnd);</PRE>
5545<PRE>WINUSERAPI
5546HWND
5547WINAPI
5548SetParent(
5549 HWND hWndChild,
5550 HWND hWndNewParent);</PRE>
5551<PRE>WINUSERAPI
5552BOOL
5553WINAPI
5554EnumChildWindows(
5555 HWND hWndParent,
5556 WNDENUMPROC lpEnumFunc,
5557 LPARAM lParam);</PRE>
5558<PRE>WINUSERAPI
5559HWND
5560WINAPI
5561FindWindowA(
5562 LPCSTR lpClassName ,
5563 LPCSTR lpWindowName);
5564WINUSERAPI
5565HWND
5566WINAPI
5567FindWindowW(
5568 LPCWSTR lpClassName ,
5569 LPCWSTR lpWindowName);
5570#ifdef UNICODE
5571#define FindWindow FindWindowW
5572#else
5573#define FindWindow FindWindowA
5574#endif // !UNICODE</PRE>
5575<PRE>#if(WINVER >= 0x0400)
5576WINUSERAPI HWND WINAPI FindWindowExA(HWND, HWND, LPCSTR, LPCSTR);
5577WINUSERAPI HWND WINAPI FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR);
5578#ifdef UNICODE
5579#define FindWindowEx FindWindowExW
5580#else
5581#define FindWindowEx FindWindowExA
5582#endif // !UNICODE</PRE>
5583<PRE>#endif /* WINVER >= 0x0400 */
5584</PRE>
5585<PRE>WINUSERAPI
5586BOOL
5587WINAPI
5588EnumWindows(
5589 WNDENUMPROC lpEnumFunc,
5590 LPARAM lParam);</PRE>
5591<PRE>WINUSERAPI
5592BOOL
5593WINAPI
5594EnumThreadWindows(
5595 DWORD dwThreadId,
5596 WNDENUMPROC lpfn,
5597 LPARAM lParam);</PRE>
5598<PRE>#define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows((DWORD)hTask, lpfn, lParam)</PRE>
5599<PRE>WINUSERAPI
5600int
5601WINAPI
5602GetClassNameA(
5603 HWND hWnd,
5604 LPSTR lpClassName,
5605 int nMaxCount);
5606WINUSERAPI
5607int
5608WINAPI
5609GetClassNameW(
5610 HWND hWnd,
5611 LPWSTR lpClassName,
5612 int nMaxCount);
5613#ifdef UNICODE
5614#define GetClassName GetClassNameW
5615#else
5616#define GetClassName GetClassNameA
5617#endif // !UNICODE</PRE>
5618<PRE>WINUSERAPI
5619HWND
5620WINAPI
5621GetTopWindow(
5622 HWND hWnd);</PRE>
5623<PRE>#define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd)
5624#define GetSysModalWindow() (NULL)
5625#define SetSysModalWindow(hWnd) (NULL)</PRE>
5626<PRE>WINUSERAPI
5627DWORD
5628WINAPI
5629GetWindowThreadProcessId(
5630 HWND hWnd,
5631 LPDWORD lpdwProcessId);</PRE>
5632<PRE>#define GetWindowTask(hWnd) \
5633 ((HANDLE)GetWindowThreadProcessId(hWnd, NULL))</PRE>
5634<PRE>WINUSERAPI
5635HWND
5636WINAPI
5637GetLastActivePopup(
5638 HWND hWnd);</PRE>
5639<PRE>/*
5640 * GetWindow() Constants
5641 */
5642#define GW_HWNDFIRST 0
5643#define GW_HWNDLAST 1
5644#define GW_HWNDNEXT 2
5645#define GW_HWNDPREV 3
5646#define GW_OWNER 4
5647#define GW_CHILD 5
5648#define GW_MAX 5</PRE>
5649<PRE>WINUSERAPI
5650HWND
5651WINAPI
5652GetWindow(
5653 HWND hWnd,
5654 UINT uCmd);
5655
5656</PRE>
5657<PRE>#ifndef NOWH</PRE>
5658<PRE>#ifdef STRICT</PRE>
5659<PRE>WINUSERAPI
5660HHOOK
5661WINAPI
5662SetWindowsHookA(
5663 int nFilterType,
5664 HOOKPROC pfnFilterProc);
5665WINUSERAPI
5666HHOOK
5667WINAPI
5668SetWindowsHookW(
5669 int nFilterType,
5670 HOOKPROC pfnFilterProc);
5671#ifdef UNICODE
5672#define SetWindowsHook SetWindowsHookW
5673#else
5674#define SetWindowsHook SetWindowsHookA
5675#endif // !UNICODE</PRE>
5676<PRE>#else /* !STRICT */</PRE>
5677<PRE>WINUSERAPI
5678HOOKPROC
5679WINAPI
5680SetWindowsHookA(
5681 int nFilterType,
5682 HOOKPROC pfnFilterProc);
5683WINUSERAPI
5684HOOKPROC
5685WINAPI
5686SetWindowsHookW(
5687 int nFilterType,
5688 HOOKPROC pfnFilterProc);
5689#ifdef UNICODE
5690#define SetWindowsHook SetWindowsHookW
5691#else
5692#define SetWindowsHook SetWindowsHookA
5693#endif // !UNICODE</PRE>
5694<PRE>#endif /* !STRICT */</PRE>
5695<PRE>WINUSERAPI
5696BOOL
5697WINAPI
5698UnhookWindowsHook(
5699 int nCode,
5700 HOOKPROC pfnFilterProc);</PRE>
5701<PRE>WINUSERAPI
5702HHOOK
5703WINAPI
5704SetWindowsHookExA(
5705 int idHook,
5706 HOOKPROC lpfn,
5707 HINSTANCE hmod,
5708 DWORD dwThreadId);
5709WINUSERAPI
5710HHOOK
5711WINAPI
5712SetWindowsHookExW(
5713 int idHook,
5714 HOOKPROC lpfn,
5715 HINSTANCE hmod,
5716 DWORD dwThreadId);
5717#ifdef UNICODE
5718#define SetWindowsHookEx SetWindowsHookExW
5719#else
5720#define SetWindowsHookEx SetWindowsHookExA
5721#endif // !UNICODE</PRE>
5722<PRE>WINUSERAPI
5723BOOL
5724WINAPI
5725UnhookWindowsHookEx(
5726 HHOOK hhk);</PRE>
5727<PRE>WINUSERAPI
5728LRESULT
5729WINAPI
5730CallNextHookEx(
5731 HHOOK hhk,
5732 int nCode,
5733 WPARAM wParam,
5734 LPARAM lParam);</PRE>
5735<PRE>/*
5736 * Macros for source-level compatibility with old functions.
5737 */
5738#ifdef STRICT
5739#define DefHookProc(nCode, wParam, lParam, phhk)\
5740 CallNextHookEx(*phhk, nCode, wParam, lParam)
5741#else
5742#define DefHookProc(nCode, wParam, lParam, phhk)\
5743 CallNextHookEx((HHOOK)*phhk, nCode, wParam, lParam)
5744#endif /* STRICT */</PRE>
5745<PRE>#endif /* !NOWH */</PRE>
5746<PRE>#ifndef NOMENUS</PRE>
5747<PRE>// begin_r_winuser</PRE>
5748<PRE>/* ;win40 -- A lot of MF_* flags have been renamed as MFT_* and MFS_* flags */
5749/*
5750 * Menu flags for Add/Check/EnableMenuItem()
5751 */
5752#define MF_INSERT 0x00000000L
5753#define MF_CHANGE 0x00000080L
5754#define MF_APPEND 0x00000100L
5755#define MF_DELETE 0x00000200L
5756#define MF_REMOVE 0x00001000L</PRE>
5757<PRE>#define MF_BYCOMMAND 0x00000000L
5758#define MF_BYPOSITION 0x00000400L</PRE>
5759<PRE>#define MF_SEPARATOR 0x00000800L</PRE>
5760<PRE>#define MF_ENABLED 0x00000000L
5761#define MF_GRAYED 0x00000001L
5762#define MF_DISABLED 0x00000002L</PRE>
5763<PRE>#define MF_UNCHECKED 0x00000000L
5764#define MF_CHECKED 0x00000008L
5765#define MF_USECHECKBITMAPS 0x00000200L</PRE>
5766<PRE>#define MF_STRING 0x00000000L
5767#define MF_BITMAP 0x00000004L
5768#define MF_OWNERDRAW 0x00000100L</PRE>
5769<PRE>#define MF_POPUP 0x00000010L
5770#define MF_MENUBARBREAK 0x00000020L
5771#define MF_MENUBREAK 0x00000040L</PRE>
5772<PRE>#define MF_UNHILITE 0x00000000L
5773#define MF_HILITE 0x00000080L</PRE>
5774<PRE>#if(WINVER >= 0x0400)
5775#define MF_DEFAULT 0x00001000L
5776#endif /* WINVER >= 0x0400 */
5777#define MF_SYSMENU 0x00002000L
5778#define MF_HELP 0x00004000L
5779#if(WINVER >= 0x0400)
5780#define MF_RIGHTJUSTIFY 0x00004000L
5781#endif /* WINVER >= 0x0400 */</PRE>
5782<PRE>#define MF_MOUSESELECT 0x00008000L
5783#if(WINVER >= 0x0400)
5784#define MF_END 0x00000080L /* Obsolete -- only used by old RES files */
5785#endif /* WINVER >= 0x0400 */
5786</PRE>
5787<PRE>#if(WINVER >= 0x0400)
5788#define MFT_STRING MF_STRING
5789#define MFT_BITMAP MF_BITMAP
5790#define MFT_MENUBARBREAK MF_MENUBARBREAK
5791#define MFT_MENUBREAK MF_MENUBREAK
5792#define MFT_OWNERDRAW MF_OWNERDRAW
5793#define MFT_RADIOCHECK 0x00000200L
5794#define MFT_SEPARATOR MF_SEPARATOR
5795#define MFT_RIGHTORDER 0x00002000L
5796#define MFT_RIGHTJUSTIFY MF_RIGHTJUSTIFY</PRE>
5797<PRE>/* Menu flags for Add/Check/EnableMenuItem() */
5798#define MFS_GRAYED 0x00000003L
5799#define MFS_DISABLED MFS_GRAYED
5800#define MFS_CHECKED MF_CHECKED
5801#define MFS_HILITE MF_HILITE
5802#define MFS_ENABLED MF_ENABLED
5803#define MFS_UNCHECKED MF_UNCHECKED
5804#define MFS_UNHILITE MF_UNHILITE
5805#define MFS_DEFAULT MF_DEFAULT
5806
5807</PRE>
5808<PRE>#endif /* WINVER >= 0x0400 */</PRE>
5809<PRE>// end_r_winuser</PRE>
5810<PRE>#if(WINVER >= 0x0400)</PRE>
5811<PRE>WINUSERAPI
5812BOOL
5813WINAPI
5814CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT);
5815#endif /* WINVER >= 0x0400 */
5816
5817</PRE>
5818<PRE>/*
5819 * Menu item resource format
5820 */
5821typedef struct {
5822 WORD versionNumber;
5823 WORD offset;
5824} MENUITEMTEMPLATEHEADER, *PMENUITEMTEMPLATEHEADER;</PRE>
5825<PRE>typedef struct { // version 0
5826 WORD mtOption;
5827 WORD mtID;
5828 WCHAR mtString[1];
5829} MENUITEMTEMPLATE, *PMENUITEMTEMPLATE;
5830#define MF_END 0x00000080L // r_winuser</PRE>
5831<PRE>#endif /* !NOMENUS */</PRE>
5832<PRE>#ifndef NOSYSCOMMANDS</PRE>
5833<PRE>// begin_r_winuser
5834/*
5835 * System Menu Command Values
5836 */
5837#define SC_SIZE 0xF000
5838#define SC_MOVE 0xF010
5839#define SC_MINIMIZE 0xF020
5840#define SC_MAXIMIZE 0xF030
5841#define SC_NEXTWINDOW 0xF040
5842#define SC_PREVWINDOW 0xF050
5843#define SC_CLOSE 0xF060
5844#define SC_VSCROLL 0xF070
5845#define SC_HSCROLL 0xF080
5846#define SC_MOUSEMENU 0xF090
5847#define SC_KEYMENU 0xF100
5848#define SC_ARRANGE 0xF110
5849#define SC_RESTORE 0xF120
5850#define SC_TASKLIST 0xF130
5851#define SC_SCREENSAVE 0xF140
5852#define SC_HOTKEY 0xF150
5853#if(WINVER >= 0x0400)
5854#define SC_DEFAULT 0xF160
5855#define SC_MONITORPOWER 0xF170
5856#define SC_CONTEXTHELP 0xF180
5857#define SC_SEPARATOR 0xF00F
5858#endif /* WINVER >= 0x0400 */
5859/*
5860 * Obsolete names
5861 */
5862#define SC_ICON SC_MINIMIZE
5863#define SC_ZOOM SC_MAXIMIZE</PRE>
5864<PRE>// end_r_winuser
5865#endif /* !NOSYSCOMMANDS */</PRE>
5866<PRE>/*
5867 * Resource Loading Routines
5868 */</PRE>
5869<PRE>WINUSERAPI
5870HBITMAP
5871WINAPI
5872LoadBitmapA(
5873 HINSTANCE hInstance,
5874 LPCSTR lpBitmapName);
5875WINUSERAPI
5876HBITMAP
5877WINAPI
5878LoadBitmapW(
5879 HINSTANCE hInstance,
5880 LPCWSTR lpBitmapName);
5881#ifdef UNICODE
5882#define LoadBitmap LoadBitmapW
5883#else
5884#define LoadBitmap LoadBitmapA
5885#endif // !UNICODE</PRE>
5886<PRE>WINUSERAPI
5887HCURSOR
5888WINAPI
5889LoadCursorA(
5890 HINSTANCE hInstance,
5891 LPCSTR lpCursorName);
5892WINUSERAPI
5893HCURSOR
5894WINAPI
5895LoadCursorW(
5896 HINSTANCE hInstance,
5897 LPCWSTR lpCursorName);
5898#ifdef UNICODE
5899#define LoadCursor LoadCursorW
5900#else
5901#define LoadCursor LoadCursorA
5902#endif // !UNICODE</PRE>
5903<PRE>WINUSERAPI
5904HCURSOR
5905WINAPI
5906LoadCursorFromFileA(
5907 LPCSTR lpFileName);
5908WINUSERAPI
5909HCURSOR
5910WINAPI
5911LoadCursorFromFileW(
5912 LPCWSTR lpFileName);
5913#ifdef UNICODE
5914#define LoadCursorFromFile LoadCursorFromFileW
5915#else
5916#define LoadCursorFromFile LoadCursorFromFileA
5917#endif // !UNICODE</PRE>
5918<PRE>WINUSERAPI
5919HCURSOR
5920WINAPI
5921CreateCursor(
5922 HINSTANCE hInst,
5923 int xHotSpot,
5924 int yHotSpot,
5925 int nWidth,
5926 int nHeight,
5927 CONST VOID *pvANDPlane,
5928 CONST VOID *pvXORPlane);</PRE>
5929<PRE>WINUSERAPI
5930BOOL
5931WINAPI
5932DestroyCursor(
5933 HCURSOR hCursor);</PRE>
5934<PRE>#define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur)))</PRE>
5935<PRE>/*
5936 * Standard Cursor IDs
5937 */
5938#define IDC_ARROW MAKEINTRESOURCE(32512)
5939#define IDC_IBEAM MAKEINTRESOURCE(32513)
5940#define IDC_WAIT MAKEINTRESOURCE(32514)
5941#define IDC_CROSS MAKEINTRESOURCE(32515)
5942#define IDC_UPARROW MAKEINTRESOURCE(32516)
5943#define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */
5944#define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW */
5945#define IDC_SIZENWSE MAKEINTRESOURCE(32642)
5946#define IDC_SIZENESW MAKEINTRESOURCE(32643)
5947#define IDC_SIZEWE MAKEINTRESOURCE(32644)
5948#define IDC_SIZENS MAKEINTRESOURCE(32645)
5949#define IDC_SIZEALL MAKEINTRESOURCE(32646)
5950#define IDC_NO MAKEINTRESOURCE(32648) /*not in win3.1 */
5951#define IDC_APPSTARTING MAKEINTRESOURCE(32650) /*not in win3.1 */
5952#if(WINVER >= 0x0400)
5953#define IDC_HELP MAKEINTRESOURCE(32651)
5954#endif /* WINVER >= 0x0400 */</PRE>
5955<PRE>WINUSERAPI
5956BOOL
5957WINAPI
5958SetSystemCursor(
5959 HCURSOR hcur,
5960 DWORD id);</PRE>
5961<PRE>typedef struct _ICONINFO {
5962 BOOL fIcon;
5963 DWORD xHotspot;
5964 DWORD yHotspot;
5965 HBITMAP hbmMask;
5966 HBITMAP hbmColor;
5967} ICONINFO;
5968typedef ICONINFO *PICONINFO;</PRE>
5969<PRE>WINUSERAPI
5970HICON
5971WINAPI
5972LoadIconA(
5973 HINSTANCE hInstance,
5974 LPCSTR lpIconName);
5975WINUSERAPI
5976HICON
5977WINAPI
5978LoadIconW(
5979 HINSTANCE hInstance,
5980 LPCWSTR lpIconName);
5981#ifdef UNICODE
5982#define LoadIcon LoadIconW
5983#else
5984#define LoadIcon LoadIconA
5985#endif // !UNICODE
5986</PRE>
5987<PRE>WINUSERAPI
5988HICON
5989WINAPI
5990CreateIcon(
5991 HINSTANCE hInstance,
5992 int nWidth,
5993 int nHeight,
5994 BYTE cPlanes,
5995 BYTE cBitsPixel,
5996 CONST BYTE *lpbANDbits,
5997 CONST BYTE *lpbXORbits);</PRE>
5998<PRE>WINUSERAPI
5999BOOL
6000WINAPI
6001DestroyIcon(
6002 HICON hIcon);</PRE>
6003<PRE>WINUSERAPI
6004int
6005WINAPI
6006LookupIconIdFromDirectory(
6007 PBYTE presbits,
6008 BOOL fIcon);</PRE>
6009<PRE>#if(WINVER >= 0x0400)
6010WINUSERAPI
6011int
6012WINAPI
6013LookupIconIdFromDirectoryEx(
6014 PBYTE presbits,
6015 BOOL fIcon,
6016 int cxDesired,
6017 int cyDesired,
6018 UINT Flags);
6019#endif /* WINVER >= 0x0400 */</PRE>
6020<PRE>WINUSERAPI
6021HICON
6022WINAPI
6023CreateIconFromResource(
6024 PBYTE presbits,
6025 DWORD dwResSize,
6026 BOOL fIcon,
6027 DWORD dwVer);</PRE>
6028<PRE>#if(WINVER >= 0x0400)
6029WINUSERAPI
6030HICON
6031WINAPI
6032CreateIconFromResourceEx(
6033 PBYTE presbits,
6034 DWORD dwResSize,
6035 BOOL fIcon,
6036 DWORD dwVer,
6037 int cxDesired,
6038 int cyDesired,
6039 UINT Flags);</PRE>
6040<PRE>/* Icon/Cursor header */
6041typedef struct tagCURSORSHAPE
6042{
6043 int xHotSpot;
6044 int yHotSpot;
6045 int cx;
6046 int cy;
6047 int cbWidth;
6048 BYTE Planes;
6049 BYTE BitsPixel;
6050} CURSORSHAPE, FAR *LPCURSORSHAPE;
6051#endif /* WINVER >= 0x0400 */</PRE>
6052<PRE>#define IMAGE_BITMAP 0
6053#define IMAGE_ICON 1
6054#define IMAGE_CURSOR 2
6055#if(WINVER >= 0x0400)
6056#define IMAGE_ENHMETAFILE 3</PRE>
6057<PRE>#define LR_DEFAULTCOLOR 0x0000
6058#define LR_MONOCHROME 0x0001
6059#define LR_COLOR 0x0002
6060#define LR_COPYRETURNORG 0x0004
6061#define LR_COPYDELETEORG 0x0008
6062#define LR_LOADFROMFILE 0x0010
6063#define LR_LOADTRANSPARENT 0x0020
6064#define LR_DEFAULTSIZE 0x0040
6065#define LR_VGACOLOR 0x0080
6066#define LR_LOADMAP3DCOLORS 0x1000
6067#define LR_CREATEDIBSECTION 0x2000
6068#define LR_COPYFROMRESOURCE 0x4000
6069#define LR_SHARED 0x8000</PRE>
6070<PRE>WINUSERAPI
6071HANDLE
6072WINAPI
6073LoadImageA(
6074 HINSTANCE,
6075 LPCSTR,
6076 UINT,
6077 int,
6078 int,
6079 UINT);
6080WINUSERAPI
6081HANDLE
6082WINAPI
6083LoadImageW(
6084 HINSTANCE,
6085 LPCWSTR,
6086 UINT,
6087 int,
6088 int,
6089 UINT);
6090#ifdef UNICODE
6091#define LoadImage LoadImageW
6092#else
6093#define LoadImage LoadImageA
6094#endif // !UNICODE</PRE>
6095<PRE>WINUSERAPI
6096HANDLE
6097WINAPI
6098CopyImage(
6099 HANDLE,
6100 UINT,
6101 int,
6102 int,
6103 UINT);</PRE>
6104<PRE>#define DI_MASK 0x0001
6105#define DI_IMAGE 0x0002
6106#define DI_NORMAL 0x0003
6107#define DI_COMPAT 0x0004
6108#define DI_DEFAULTSIZE 0x0008
6109</PRE>
6110<PRE>WINUSERAPI BOOL WINAPI DrawIconEx(HDC hdc, int xLeft, int yTop,
6111 HICON hIcon, int cxWidth, int cyWidth,
6112 UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags);
6113#endif /* WINVER >= 0x0400 */</PRE>
6114<PRE>WINUSERAPI
6115HICON
6116WINAPI
6117CreateIconIndirect(
6118 PICONINFO piconinfo);</PRE>
6119<PRE>WINUSERAPI
6120HICON
6121WINAPI
6122CopyIcon(
6123 HICON hIcon);</PRE>
6124<PRE>WINUSERAPI
6125BOOL
6126WINAPI
6127GetIconInfo(
6128 HICON hIcon,
6129 PICONINFO piconinfo);</PRE>
6130<PRE>#if(WINVER >= 0x0400)
6131#define RES_ICON 1
6132#define RES_CURSOR 2
6133#endif /* WINVER >= 0x0400 */</PRE>
6134<PRE>#ifdef OEMRESOURCE</PRE>
6135<PRE>// begin_r_winuser</PRE>
6136<PRE>/*
6137 * OEM Resource Ordinal Numbers
6138 */
6139#define OBM_CLOSE 32754
6140#define OBM_UPARROW 32753
6141#define OBM_DNARROW 32752
6142#define OBM_RGARROW 32751
6143#define OBM_LFARROW 32750
6144#define OBM_REDUCE 32749
6145#define OBM_ZOOM 32748
6146#define OBM_RESTORE 32747
6147#define OBM_REDUCED 32746
6148#define OBM_ZOOMD 32745
6149#define OBM_RESTORED 32744
6150#define OBM_UPARROWD 32743
6151#define OBM_DNARROWD 32742
6152#define OBM_RGARROWD 32741
6153#define OBM_LFARROWD 32740
6154#define OBM_MNARROW 32739
6155#define OBM_COMBO 32738
6156#define OBM_UPARROWI 32737
6157#define OBM_DNARROWI 32736
6158#define OBM_RGARROWI 32735
6159#define OBM_LFARROWI 32734</PRE>
6160<PRE>#define OBM_OLD_CLOSE 32767
6161#define OBM_SIZE 32766
6162#define OBM_OLD_UPARROW 32765
6163#define OBM_OLD_DNARROW 32764
6164#define OBM_OLD_RGARROW 32763
6165#define OBM_OLD_LFARROW 32762
6166#define OBM_BTSIZE 32761
6167#define OBM_CHECK 32760
6168#define OBM_CHECKBOXES 32759
6169#define OBM_BTNCORNERS 32758
6170#define OBM_OLD_REDUCE 32757
6171#define OBM_OLD_ZOOM 32756
6172#define OBM_OLD_RESTORE 32755</PRE>
6173<PRE>#define OCR_NORMAL 32512
6174#define OCR_IBEAM 32513
6175#define OCR_WAIT 32514
6176#define OCR_CROSS 32515
6177#define OCR_UP 32516
6178#define OCR_SIZE 32640 /* OBSOLETE: use OCR_SIZEALL */
6179#define OCR_ICON 32641 /* OBSOLETE: use OCR_NORMAL */
6180#define OCR_SIZENWSE 32642
6181#define OCR_SIZENESW 32643
6182#define OCR_SIZEWE 32644
6183#define OCR_SIZENS 32645
6184#define OCR_SIZEALL 32646
6185#define OCR_ICOCUR 32647 /* OBSOLETE: use OIC_WINLOGO */
6186#define OCR_NO 32648
6187#if(WINVER >= 0x0400)
6188#define OCR_APPSTARTING 32650
6189#endif /* WINVER >= 0x0400 */
6190
6191</PRE>
6192<PRE>#define OIC_SAMPLE 32512
6193#define OIC_HAND 32513
6194#define OIC_QUES 32514
6195#define OIC_BANG 32515
6196#define OIC_NOTE 32516
6197#if(WINVER >= 0x0400)
6198#define OIC_WINLOGO 32517
6199#define OIC_WARNING OIC_BANG
6200#define OIC_ERROR OIC_HAND
6201#define OIC_INFORMATION OIC_NOTE
6202#endif /* WINVER >= 0x0400 */
6203</PRE>
6204<PRE>// end_r_winuser</PRE>
6205<PRE>#endif /* OEMRESOURCE */</PRE>
6206<PRE>#define ORD_LANGDRIVER 1 /* The ordinal number for the entry point of
6207 ** language drivers.
6208 */</PRE>
6209<PRE>#ifndef NOICONS</PRE>
6210<PRE>// begin_r_winuser
6211/*
6212 * Standard Icon IDs
6213 */
6214#ifdef RC_INVOKED
6215#define IDI_APPLICATION 32512
6216#define IDI_HAND 32513
6217#define IDI_QUESTION 32514
6218#define IDI_EXCLAMATION 32515
6219#define IDI_ASTERISK 32516
6220#if(WINVER >= 0x0400)
6221#define IDI_WINLOGO 32517
6222#endif /* WINVER >= 0x0400 */
6223#else
6224#define IDI_APPLICATION MAKEINTRESOURCE(32512)
6225#define IDI_HAND MAKEINTRESOURCE(32513)
6226#define IDI_QUESTION MAKEINTRESOURCE(32514)
6227#define IDI_EXCLAMATION MAKEINTRESOURCE(32515)
6228#define IDI_ASTERISK MAKEINTRESOURCE(32516)
6229#if(WINVER >= 0x0400)
6230#define IDI_WINLOGO MAKEINTRESOURCE(32517)
6231#endif /* WINVER >= 0x0400 */
6232#endif /* RC_INVOKED */</PRE>
6233<PRE>#if(WINVER >= 0x0400)
6234#define IDI_WARNING IDI_EXCLAMATION
6235#define IDI_ERROR IDI_HAND
6236#define IDI_INFORMATION IDI_ASTERISK
6237#endif /* WINVER >= 0x0400 */</PRE>
6238<PRE>// end_r_winuser</PRE>
6239<PRE>#endif /* !NOICONS */</PRE>
6240<PRE>WINUSERAPI
6241int
6242WINAPI
6243LoadStringA(
6244 HINSTANCE hInstance,
6245 UINT uID,
6246 LPSTR lpBuffer,
6247 int nBufferMax);
6248WINUSERAPI
6249int
6250WINAPI
6251LoadStringW(
6252 HINSTANCE hInstance,
6253 UINT uID,
6254 LPWSTR lpBuffer,
6255 int nBufferMax);
6256#ifdef UNICODE
6257#define LoadString LoadStringW
6258#else
6259#define LoadString LoadStringA
6260#endif // !UNICODE</PRE>
6261<PRE>// begin_r_winuser</PRE>
6262<PRE>/*
6263 * Dialog Box Command IDs
6264 */
6265#define IDOK 1
6266#define IDCANCEL 2
6267#define IDABORT 3
6268#define IDRETRY 4
6269#define IDIGNORE 5
6270#define IDYES 6
6271#define IDNO 7
6272#if(WINVER >= 0x0400)
6273#define IDCLOSE 8
6274#define IDHELP 9
6275#endif /* WINVER >= 0x0400 */</PRE>
6276<PRE>// end_r_winuser</PRE>
6277<PRE>#ifndef NOCTLMGR</PRE>
6278<PRE>/*
6279 * Control Manager Structures and Definitions
6280 */</PRE>
6281<PRE>#ifndef NOWINSTYLES</PRE>
6282<PRE>// begin_r_winuser</PRE>
6283<PRE>/*
6284 * Edit Control Styles
6285 */
6286#define ES_LEFT 0x0000L
6287#define ES_CENTER 0x0001L
6288#define ES_RIGHT 0x0002L
6289#define ES_MULTILINE 0x0004L
6290#define ES_UPPERCASE 0x0008L
6291#define ES_LOWERCASE 0x0010L
6292#define ES_PASSWORD 0x0020L
6293#define ES_AUTOVSCROLL 0x0040L
6294#define ES_AUTOHSCROLL 0x0080L
6295#define ES_NOHIDESEL 0x0100L
6296#define ES_OEMCONVERT 0x0400L
6297#define ES_READONLY 0x0800L
6298#define ES_WANTRETURN 0x1000L
6299#if(WINVER >= 0x0400)
6300#define ES_NUMBER 0x2000L
6301#endif /* WINVER >= 0x0400 */</PRE>
6302<PRE>// end_r_winuser</PRE>
6303<PRE>#endif /* !NOWINSTYLES */</PRE>
6304<PRE>/*
6305 * Edit Control Notification Codes
6306 */
6307#define EN_SETFOCUS 0x0100
6308#define EN_KILLFOCUS 0x0200
6309#define EN_CHANGE 0x0300
6310#define EN_UPDATE 0x0400
6311#define EN_ERRSPACE 0x0500
6312#define EN_MAXTEXT 0x0501
6313#define EN_HSCROLL 0x0601
6314#define EN_VSCROLL 0x0602</PRE>
6315<PRE>#if(WINVER >= 0x0400)
6316/* Edit control EM_SETMARGIN parameters */
6317#define EC_LEFTMARGIN 0x0001
6318#define EC_RIGHTMARGIN 0x0002
6319#define EC_USEFONTINFO 0xffff
6320#endif /* WINVER >= 0x0400 */</PRE>
6321<PRE>#ifndef NOWINMESSAGES</PRE>
6322<PRE>// begin_r_winuser</PRE>
6323<PRE>/*
6324 * Edit Control Messages
6325 */
6326#define EM_GETSEL 0x00B0
6327#define EM_SETSEL 0x00B1
6328#define EM_GETRECT 0x00B2
6329#define EM_SETRECT 0x00B3
6330#define EM_SETRECTNP 0x00B4
6331#define EM_SCROLL 0x00B5
6332#define EM_LINESCROLL 0x00B6
6333#define EM_SCROLLCARET 0x00B7
6334#define EM_GETMODIFY 0x00B8
6335#define EM_SETMODIFY 0x00B9
6336#define EM_GETLINECOUNT 0x00BA
6337#define EM_LINEINDEX 0x00BB
6338#define EM_SETHANDLE 0x00BC
6339#define EM_GETHANDLE 0x00BD
6340#define EM_GETTHUMB 0x00BE
6341#define EM_LINELENGTH 0x00C1
6342#define EM_REPLACESEL 0x00C2
6343#define EM_GETLINE 0x00C4
6344#define EM_LIMITTEXT 0x00C5
6345#define EM_CANUNDO 0x00C6
6346#define EM_UNDO 0x00C7
6347#define EM_FMTLINES 0x00C8
6348#define EM_LINEFROMCHAR 0x00C9
6349#define EM_SETTABSTOPS 0x00CB
6350#define EM_SETPASSWORDCHAR 0x00CC
6351#define EM_EMPTYUNDOBUFFER 0x00CD
6352#define EM_GETFIRSTVISIBLELINE 0x00CE
6353#define EM_SETREADONLY 0x00CF
6354#define EM_SETWORDBREAKPROC 0x00D0
6355#define EM_GETWORDBREAKPROC 0x00D1
6356#define EM_GETPASSWORDCHAR 0x00D2
6357#if(WINVER >= 0x0400)
6358#define EM_SETMARGINS 0x00D3
6359#define EM_GETMARGINS 0x00D4
6360#define EM_SETLIMITTEXT EM_LIMITTEXT /* ;win40 Name change */
6361#define EM_GETLIMITTEXT 0x00D5
6362#define EM_POSFROMCHAR 0x00D6
6363#define EM_CHARFROMPOS 0x00D7
6364#endif /* WINVER >= 0x0400 */
6365</PRE>
6366<PRE>// end_r_winuser
6367#endif /* !NOWINMESSAGES */</PRE>
6368<PRE>/*
6369 * EDITWORDBREAKPROC code values
6370 */
6371#define WB_LEFT 0
6372#define WB_RIGHT 1
6373#define WB_ISDELIMITER 2</PRE>
6374<PRE>// begin_r_winuser</PRE>
6375<PRE>/*
6376 * Button Control Styles
6377 */
6378#define BS_PUSHBUTTON 0x00000000L
6379#define BS_DEFPUSHBUTTON 0x00000001L
6380#define BS_CHECKBOX 0x00000002L
6381#define BS_AUTOCHECKBOX 0x00000003L
6382#define BS_RADIOBUTTON 0x00000004L
6383#define BS_3STATE 0x00000005L
6384#define BS_AUTO3STATE 0x00000006L
6385#define BS_GROUPBOX 0x00000007L
6386#define BS_USERBUTTON 0x00000008L
6387#define BS_AUTORADIOBUTTON 0x00000009L
6388#define BS_OWNERDRAW 0x0000000BL
6389#define BS_LEFTTEXT 0x00000020L
6390#if(WINVER >= 0x0400)
6391#define BS_TEXT 0x00000000L
6392#define BS_ICON 0x00000040L
6393#define BS_BITMAP 0x00000080L
6394#define BS_LEFT 0x00000100L
6395#define BS_RIGHT 0x00000200L
6396#define BS_CENTER 0x00000300L
6397#define BS_TOP 0x00000400L
6398#define BS_BOTTOM 0x00000800L
6399#define BS_VCENTER 0x00000C00L
6400#define BS_PUSHLIKE 0x00001000L
6401#define BS_MULTILINE 0x00002000L
6402#define BS_NOTIFY 0x00004000L
6403#define BS_FLAT 0x00008000L
6404#define BS_RIGHTBUTTON BS_LEFTTEXT
6405#endif /* WINVER >= 0x0400 */
6406</PRE>
6407<PRE>/*
6408 * User Button Notification Codes
6409 */
6410#define BN_CLICKED 0
6411#define BN_PAINT 1
6412#define BN_HILITE 2
6413#define BN_UNHILITE 3
6414#define BN_DISABLE 4
6415#define BN_DOUBLECLICKED 5
6416#if(WINVER >= 0x0400)
6417#define BN_PUSHED BN_HILITE
6418#define BN_UNPUSHED BN_UNHILITE
6419#define BN_DBLCLK BN_DOUBLECLICKED
6420#define BN_SETFOCUS 6
6421#define BN_KILLFOCUS 7
6422#endif /* WINVER >= 0x0400 */</PRE>
6423<PRE>/*
6424 * Button Control Messages
6425 */
6426#define BM_GETCHECK 0x00F0
6427#define BM_SETCHECK 0x00F1
6428#define BM_GETSTATE 0x00F2
6429#define BM_SETSTATE 0x00F3
6430#define BM_SETSTYLE 0x00F4
6431#if(WINVER >= 0x0400)
6432#define BM_CLICK 0x00F5
6433#define BM_GETIMAGE 0x00F6
6434#define BM_SETIMAGE 0x00F7</PRE>
6435<PRE>#define BST_UNCHECKED 0x0000
6436#define BST_CHECKED 0x0001
6437#define BST_INDETERMINATE 0x0002
6438#define BST_PUSHED 0x0004
6439#define BST_FOCUS 0x0008
6440#endif /* WINVER >= 0x0400 */</PRE>
6441<PRE>/*
6442 * Static Control Constants
6443 */
6444#define SS_LEFT 0x00000000L
6445#define SS_CENTER 0x00000001L
6446#define SS_RIGHT 0x00000002L
6447#define SS_ICON 0x00000003L
6448#define SS_BLACKRECT 0x00000004L
6449#define SS_GRAYRECT 0x00000005L
6450#define SS_WHITERECT 0x00000006L
6451#define SS_BLACKFRAME 0x00000007L
6452#define SS_GRAYFRAME 0x00000008L
6453#define SS_WHITEFRAME 0x00000009L
6454#define SS_USERITEM 0x0000000AL
6455#define SS_SIMPLE 0x0000000BL
6456#define SS_LEFTNOWORDWRAP 0x0000000CL
6457#if(WINVER >= 0x0400)
6458#define SS_OWNERDRAW 0x0000000DL
6459#define SS_BITMAP 0x0000000EL
6460#define SS_ENHMETAFILE 0x0000000FL
6461#define SS_ETCHEDHORZ 0x00000010L
6462#define SS_ETCHEDVERT 0x00000011L
6463#define SS_ETCHEDFRAME 0x00000012L
6464#define SS_TYPEMASK 0x0000001FL
6465#endif /* WINVER >= 0x0400 */
6466#define SS_NOPREFIX 0x00000080L /* Don't do "&" character translation */
6467#if(WINVER >= 0x0400)
6468#define SS_NOTIFY 0x00000100L
6469#define SS_CENTERIMAGE 0x00000200L
6470#define SS_RIGHTJUST 0x00000400L
6471#define SS_REALSIZEIMAGE 0x00000800L
6472#define SS_SUNKEN 0x00001000L
6473#define SS_ENDELLIPSIS 0x00004000L
6474#define SS_PATHELLIPSIS 0x00008000L
6475#define SS_WORDELLIPSIS 0x0000C000L
6476#define SS_ELLIPSISMASK 0x0000C000L
6477#endif /* WINVER >= 0x0400 */</PRE>
6478<PRE>// end_r_winuser</PRE>
6479<PRE>#ifndef NOWINMESSAGES
6480/*
6481 * Static Control Mesages
6482 */
6483#define STM_SETICON 0x0170
6484#define STM_GETICON 0x0171
6485#if(WINVER >= 0x0400)
6486#define STM_SETIMAGE 0x0172
6487#define STM_GETIMAGE 0x0173
6488#define STN_CLICKED 0
6489#define STN_DBLCLK 1
6490#define STN_ENABLE 2
6491#define STN_DISABLE 3
6492#endif /* WINVER >= 0x0400 */
6493#define STM_MSGMAX 0x0174
6494#endif /* !NOWINMESSAGES */</PRE>
6495<PRE>/*
6496 * Dialog window class
6497 */
6498#define WC_DIALOG (MAKEINTATOM(0x8002))</PRE>
6499<PRE>/*
6500 * Get/SetWindowWord/Long offsets for use with WC_DIALOG windows
6501 */
6502#define DWL_MSGRESULT 0
6503#define DWL_DLGPROC 4
6504#define DWL_USER 8</PRE>
6505<PRE>/*
6506 * Dialog Manager Routines
6507 */</PRE>
6508<PRE>#ifndef NOMSG</PRE>
6509<PRE>WINUSERAPI
6510BOOL
6511WINAPI
6512IsDialogMessageA(
6513 HWND hDlg,
6514 LPMSG lpMsg);
6515WINUSERAPI
6516BOOL
6517WINAPI
6518IsDialogMessageW(
6519 HWND hDlg,
6520 LPMSG lpMsg);
6521#ifdef UNICODE
6522#define IsDialogMessage IsDialogMessageW
6523#else
6524#define IsDialogMessage IsDialogMessageA
6525#endif // !UNICODE</PRE>
6526<PRE>#endif /* !NOMSG */</PRE>
6527<PRE>WINUSERAPI
6528BOOL
6529WINAPI
6530MapDialogRect(
6531 HWND hDlg,
6532 LPRECT lpRect);</PRE>
6533<PRE>WINUSERAPI
6534int
6535WINAPI
6536DlgDirListA(
6537 HWND hDlg,
6538 LPSTR lpPathSpec,
6539 int nIDListBox,
6540 int nIDStaticPath,
6541 UINT uFileType);
6542WINUSERAPI
6543int
6544WINAPI
6545DlgDirListW(
6546 HWND hDlg,
6547 LPWSTR lpPathSpec,
6548 int nIDListBox,
6549 int nIDStaticPath,
6550 UINT uFileType);
6551#ifdef UNICODE
6552#define DlgDirList DlgDirListW
6553#else
6554#define DlgDirList DlgDirListA
6555#endif // !UNICODE</PRE>
6556<PRE>/*
6557 * DlgDirList, DlgDirListComboBox flags values
6558 */
6559#define DDL_READWRITE 0x0000
6560#define DDL_READONLY 0x0001
6561#define DDL_HIDDEN 0x0002
6562#define DDL_SYSTEM 0x0004
6563#define DDL_DIRECTORY 0x0010
6564#define DDL_ARCHIVE 0x0020</PRE>
6565<PRE>#define DDL_POSTMSGS 0x2000
6566#define DDL_DRIVES 0x4000
6567#define DDL_EXCLUSIVE 0x8000</PRE>
6568<PRE>WINUSERAPI
6569BOOL
6570WINAPI
6571DlgDirSelectExA(
6572 HWND hDlg,
6573 LPSTR lpString,
6574 int nCount,
6575 int nIDListBox);
6576WINUSERAPI
6577BOOL
6578WINAPI
6579DlgDirSelectExW(
6580 HWND hDlg,
6581 LPWSTR lpString,
6582 int nCount,
6583 int nIDListBox);
6584#ifdef UNICODE
6585#define DlgDirSelectEx DlgDirSelectExW
6586#else
6587#define DlgDirSelectEx DlgDirSelectExA
6588#endif // !UNICODE</PRE>
6589<PRE>WINUSERAPI
6590int
6591WINAPI
6592DlgDirListComboBoxA(
6593 HWND hDlg,
6594 LPSTR lpPathSpec,
6595 int nIDComboBox,
6596 int nIDStaticPath,
6597 UINT uFiletype);
6598WINUSERAPI
6599int
6600WINAPI
6601DlgDirListComboBoxW(
6602 HWND hDlg,
6603 LPWSTR lpPathSpec,
6604 int nIDComboBox,
6605 int nIDStaticPath,
6606 UINT uFiletype);
6607#ifdef UNICODE
6608#define DlgDirListComboBox DlgDirListComboBoxW
6609#else
6610#define DlgDirListComboBox DlgDirListComboBoxA
6611#endif // !UNICODE</PRE>
6612<PRE>WINUSERAPI
6613BOOL
6614WINAPI
6615DlgDirSelectComboBoxExA(
6616 HWND hDlg,
6617 LPSTR lpString,
6618 int nCount,
6619 int nIDComboBox);
6620WINUSERAPI
6621BOOL
6622WINAPI
6623DlgDirSelectComboBoxExW(
6624 HWND hDlg,
6625 LPWSTR lpString,
6626 int nCount,
6627 int nIDComboBox);
6628#ifdef UNICODE
6629#define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW
6630#else
6631#define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA
6632#endif // !UNICODE
6633</PRE>
6634<PRE>// begin_r_winuser</PRE>
6635<PRE>/*
6636 * Dialog Styles
6637 */
6638#define DS_ABSALIGN 0x01L
6639#define DS_SYSMODAL 0x02L
6640#define DS_LOCALEDIT 0x20L /* Edit items get Local storage. */
6641#define DS_SETFONT 0x40L /* User specified font for Dlg controls */
6642#define DS_MODALFRAME 0x80L /* Can be combined with WS_CAPTION */
6643#define DS_NOIDLEMSG 0x100L /* WM_ENTERIDLE message will not be sent */
6644#define DS_SETFOREGROUND 0x200L /* not in win3.1 */
6645
6646</PRE>
6647<PRE>#if(WINVER >= 0x0400)
6648#define DS_3DLOOK 0x0004L
6649#define DS_FIXEDSYS 0x0008L
6650#define DS_NOFAILCREATE 0x0010L
6651#define DS_CONTROL 0x0400L
6652#define DS_CENTER 0x0800L
6653#define DS_CENTERMOUSE 0x1000L
6654#define DS_CONTEXTHELP 0x2000L
6655</PRE>
6656<PRE>#endif /* WINVER >= 0x0400 */</PRE>
6657<PRE>// end_r_winuser</PRE>
6658<PRE>#define DM_GETDEFID (WM_USER+0)
6659#define DM_SETDEFID (WM_USER+1)</PRE>
6660<PRE>#if(WINVER >= 0x0400)
6661#define DM_REPOSITION (WM_USER+2)</PRE>
6662<PRE>#define PSM_PAGEINFO (WM_USER+100)
6663#define PSM_SHEETINFO (WM_USER+101)</PRE>
6664<PRE>#define PSI_SETACTIVE 0x0001L
6665#define PSI_KILLACTIVE 0x0002L
6666#define PSI_APPLY 0x0003L
6667#define PSI_RESET 0x0004L
6668#define PSI_HASHELP 0x0005L
6669#define PSI_HELP 0x0006L</PRE>
6670<PRE>#define PSI_CHANGED 0x0001L
6671#define PSI_GUISTART 0x0002L
6672#define PSI_REBOOT 0x0003L
6673#define PSI_GETSIBLINGS 0x0004L
6674#endif /* WINVER >= 0x0400 */
6675/*
6676 * Returned in HIWORD() of DM_GETDEFID result if msg is supported
6677 */
6678#define DC_HASDEFID 0x534B</PRE>
6679<PRE>/*
6680 * Dialog Codes
6681 */
6682#define DLGC_WANTARROWS 0x0001 /* Control wants arrow keys */
6683#define DLGC_WANTTAB 0x0002 /* Control wants tab keys */
6684#define DLGC_WANTALLKEYS 0x0004 /* Control wants all keys */
6685#define DLGC_WANTMESSAGE 0x0004 /* Pass message to control */
6686#define DLGC_HASSETSEL 0x0008 /* Understands EM_SETSEL message */
6687#define DLGC_DEFPUSHBUTTON 0x0010 /* Default pushbutton */
6688#define DLGC_UNDEFPUSHBUTTON 0x0020 /* Non-default pushbutton */
6689#define DLGC_RADIOBUTTON 0x0040 /* Radio button */
6690#define DLGC_WANTCHARS 0x0080 /* Want WM_CHAR messages */
6691#define DLGC_STATIC 0x0100 /* Static item: don't include */
6692#define DLGC_BUTTON 0x2000 /* Button item: can be checked */</PRE>
6693<PRE>#define LB_CTLCODE 0L</PRE>
6694<PRE>/*
6695 * Listbox Return Values
6696 */
6697#define LB_OKAY 0
6698#define LB_ERR (-1)
6699#define LB_ERRSPACE (-2)</PRE>
6700<PRE>/*
6701** The idStaticPath parameter to DlgDirList can have the following values
6702** ORed if the list box should show other details of the files along with
6703** the name of the files;
6704*/
6705 /* all other details also will be returned */
6706</PRE>
6707<PRE>/*
6708 * Listbox Notification Codes
6709 */
6710#define LBN_ERRSPACE (-2)
6711#define LBN_SELCHANGE 1
6712#define LBN_DBLCLK 2
6713#define LBN_SELCANCEL 3
6714#define LBN_SETFOCUS 4
6715#define LBN_KILLFOCUS 5
6716
6717</PRE>
6718<PRE>#ifndef NOWINMESSAGES</PRE>
6719<PRE>/*
6720 * Listbox messages
6721 */
6722#define LB_ADDSTRING 0x0180
6723#define LB_INSERTSTRING 0x0181
6724#define LB_DELETESTRING 0x0182
6725#define LB_SELITEMRANGEEX 0x0183
6726#define LB_RESETCONTENT 0x0184
6727#define LB_SETSEL 0x0185
6728#define LB_SETCURSEL 0x0186
6729#define LB_GETSEL 0x0187
6730#define LB_GETCURSEL 0x0188
6731#define LB_GETTEXT 0x0189
6732#define LB_GETTEXTLEN 0x018A
6733#define LB_GETCOUNT 0x018B
6734#define LB_SELECTSTRING 0x018C
6735#define LB_DIR 0x018D
6736#define LB_GETTOPINDEX 0x018E
6737#define LB_FINDSTRING 0x018F
6738#define LB_GETSELCOUNT 0x0190
6739#define LB_GETSELITEMS 0x0191
6740#define LB_SETTABSTOPS 0x0192
6741#define LB_GETHORIZONTALEXTENT 0x0193
6742#define LB_SETHORIZONTALEXTENT 0x0194
6743#define LB_SETCOLUMNWIDTH 0x0195
6744#define LB_ADDFILE 0x0196
6745#define LB_SETTOPINDEX 0x0197
6746#define LB_GETITEMRECT 0x0198
6747#define LB_GETITEMDATA 0x0199
6748#define LB_SETITEMDATA 0x019A
6749#define LB_SELITEMRANGE 0x019B
6750#define LB_SETANCHORINDEX 0x019C
6751#define LB_GETANCHORINDEX 0x019D
6752#define LB_SETCARETINDEX 0x019E
6753#define LB_GETCARETINDEX 0x019F
6754#define LB_SETITEMHEIGHT 0x01A0
6755#define LB_GETITEMHEIGHT 0x01A1
6756#define LB_FINDSTRINGEXACT 0x01A2
6757#define LB_SETLOCALE 0x01A5
6758#define LB_GETLOCALE 0x01A6
6759#define LB_SETCOUNT 0x01A7
6760#if(WINVER >= 0x0400)
6761#define LB_INITSTORAGE 0x01A8
6762#define LB_ITEMFROMPOINT 0x01A9
6763#endif /* WINVER >= 0x0400 */
6764#if(WINVER >= 0x0400)
6765#define LB_MSGMAX 0x01B0
6766#else
6767#define LB_MSGMAX 0x01A8
6768#endif</PRE>
6769<PRE>#endif /* !NOWINMESSAGES */</PRE>
6770<PRE>#ifndef NOWINSTYLES</PRE>
6771<PRE>// begin_r_winuser</PRE>
6772<PRE>/*
6773 * Listbox Styles
6774 */
6775#define LBS_NOTIFY 0x0001L
6776#define LBS_SORT 0x0002L
6777#define LBS_NOREDRAW 0x0004L
6778#define LBS_MULTIPLESEL 0x0008L
6779#define LBS_OWNERDRAWFIXED 0x0010L
6780#define LBS_OWNERDRAWVARIABLE 0x0020L
6781#define LBS_HASSTRINGS 0x0040L
6782#define LBS_USETABSTOPS 0x0080L
6783#define LBS_NOINTEGRALHEIGHT 0x0100L
6784#define LBS_MULTICOLUMN 0x0200L
6785#define LBS_WANTKEYBOARDINPUT 0x0400L
6786#define LBS_EXTENDEDSEL 0x0800L
6787#define LBS_DISABLENOSCROLL 0x1000L
6788#define LBS_NODATA 0x2000L
6789#if(WINVER >= 0x0400)
6790#define LBS_NOSEL 0x4000L
6791#endif /* WINVER >= 0x0400 */
6792#define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)</PRE>
6793<PRE>// end_r_winuser</PRE>
6794<PRE>#endif /* !NOWINSTYLES */
6795</PRE>
6796<PRE>/*
6797 * Combo Box return Values
6798 */
6799#define CB_OKAY 0
6800#define CB_ERR (-1)
6801#define CB_ERRSPACE (-2)
6802</PRE>
6803<PRE>/*
6804 * Combo Box Notification Codes
6805 */
6806#define CBN_ERRSPACE (-1)
6807#define CBN_SELCHANGE 1
6808#define CBN_DBLCLK 2
6809#define CBN_SETFOCUS 3
6810#define CBN_KILLFOCUS 4
6811#define CBN_EDITCHANGE 5
6812#define CBN_EDITUPDATE 6
6813#define CBN_DROPDOWN 7
6814#define CBN_CLOSEUP 8
6815#define CBN_SELENDOK 9
6816#define CBN_SELENDCANCEL 10</PRE>
6817<PRE>#ifndef NOWINSTYLES
6818// begin_r_winuser</PRE>
6819<PRE>/*
6820 * Combo Box styles
6821 */
6822#define CBS_SIMPLE 0x0001L
6823#define CBS_DROPDOWN 0x0002L
6824#define CBS_DROPDOWNLIST 0x0003L
6825#define CBS_OWNERDRAWFIXED 0x0010L
6826#define CBS_OWNERDRAWVARIABLE 0x0020L
6827#define CBS_AUTOHSCROLL 0x0040L
6828#define CBS_OEMCONVERT 0x0080L
6829#define CBS_SORT 0x0100L
6830#define CBS_HASSTRINGS 0x0200L
6831#define CBS_NOINTEGRALHEIGHT 0x0400L
6832#define CBS_DISABLENOSCROLL 0x0800L
6833#if(WINVER >= 0x0400)
6834#define CBS_UPPERCASE 0x2000L
6835#define CBS_LOWERCASE 0x4000L
6836#endif /* WINVER >= 0x0400 */</PRE>
6837<PRE>// end_r_winuser
6838#endif /* !NOWINSTYLES */
6839</PRE>
6840<PRE>/*
6841 * Combo Box messages
6842 */
6843#ifndef NOWINMESSAGES
6844#define CB_GETEDITSEL 0x0140
6845#define CB_LIMITTEXT 0x0141
6846#define CB_SETEDITSEL 0x0142
6847#define CB_ADDSTRING 0x0143
6848#define CB_DELETESTRING 0x0144
6849#define CB_DIR 0x0145
6850#define CB_GETCOUNT 0x0146
6851#define CB_GETCURSEL 0x0147
6852#define CB_GETLBTEXT 0x0148
6853#define CB_GETLBTEXTLEN 0x0149
6854#define CB_INSERTSTRING 0x014A
6855#define CB_RESETCONTENT 0x014B
6856#define CB_FINDSTRING 0x014C
6857#define CB_SELECTSTRING 0x014D
6858#define CB_SETCURSEL 0x014E
6859#define CB_SHOWDROPDOWN 0x014F
6860#define CB_GETITEMDATA 0x0150
6861#define CB_SETITEMDATA 0x0151
6862#define CB_GETDROPPEDCONTROLRECT 0x0152
6863#define CB_SETITEMHEIGHT 0x0153
6864#define CB_GETITEMHEIGHT 0x0154
6865#define CB_SETEXTENDEDUI 0x0155
6866#define CB_GETEXTENDEDUI 0x0156
6867#define CB_GETDROPPEDSTATE 0x0157
6868#define CB_FINDSTRINGEXACT 0x0158
6869#define CB_SETLOCALE 0x0159
6870#define CB_GETLOCALE 0x015A
6871#if(WINVER >= 0x0400)
6872#define CB_GETTOPINDEX 0x015b
6873#define CB_SETTOPINDEX 0x015c
6874#define CB_GETHORIZONTALEXTENT 0x015d
6875#define CB_SETHORIZONTALEXTENT 0x015e
6876#define CB_GETDROPPEDWIDTH 0x015f
6877#define CB_SETDROPPEDWIDTH 0x0160
6878#define CB_INITSTORAGE 0x0161
6879#endif /* WINVER >= 0x0400 */
6880#if(WINVER >= 0x0400)
6881#define CB_MSGMAX 0x0162
6882#else
6883#define CB_MSGMAX 0x015B
6884#endif
6885#endif /* !NOWINMESSAGES */
6886
6887</PRE>
6888<PRE>#ifndef NOWINSTYLES</PRE>
6889<PRE>// begin_r_winuser</PRE>
6890<PRE>/*
6891 * Scroll Bar Styles
6892 */
6893#define SBS_HORZ 0x0000L
6894#define SBS_VERT 0x0001L
6895#define SBS_TOPALIGN 0x0002L
6896#define SBS_LEFTALIGN 0x0002L
6897#define SBS_BOTTOMALIGN 0x0004L
6898#define SBS_RIGHTALIGN 0x0004L
6899#define SBS_SIZEBOXTOPLEFTALIGN 0x0002L
6900#define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
6901#define SBS_SIZEBOX 0x0008L
6902#if(WINVER >= 0x0400)
6903#define SBS_SIZEGRIP 0x0010L
6904#endif /* WINVER >= 0x0400 */</PRE>
6905<PRE>// end_r_winuser</PRE>
6906<PRE>#endif /* !NOWINSTYLES */</PRE>
6907<PRE>/*
6908 * Scroll bar messages
6909 */
6910#ifndef NOWINMESSAGES
6911#define SBM_SETPOS 0x00E0 /*not in win3.1 */
6912#define SBM_GETPOS 0x00E1 /*not in win3.1 */
6913#define SBM_SETRANGE 0x00E2 /*not in win3.1 */
6914#define SBM_SETRANGEREDRAW 0x00E6 /*not in win3.1 */
6915#define SBM_GETRANGE 0x00E3 /*not in win3.1 */
6916#define SBM_ENABLE_ARROWS 0x00E4 /*not in win3.1 */
6917#if(WINVER >= 0x0400)
6918#define SBM_SETSCROLLINFO 0x00E9
6919#define SBM_GETSCROLLINFO 0x00EA</PRE>
6920<PRE>#define SIF_RANGE 0x0001
6921#define SIF_PAGE 0x0002
6922#define SIF_POS 0x0004
6923#define SIF_DISABLENOSCROLL 0x0008
6924#define SIF_TRACKPOS 0x0010
6925#define SIF_ALL (SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS)</PRE>
6926<PRE>typedef struct tagSCROLLINFO
6927{
6928 UINT cbSize;
6929 UINT fMask;
6930 int nMin;
6931 int nMax;
6932 UINT nPage;
6933 int nPos;
6934 int nTrackPos;
6935} SCROLLINFO, FAR *LPSCROLLINFO;
6936typedef SCROLLINFO CONST FAR *LPCSCROLLINFO;</PRE>
6937<PRE>WINUSERAPI int WINAPI SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL);
6938WINUSERAPI BOOL WINAPI GetScrollInfo(HWND, int, LPSCROLLINFO);
6939#endif /* WINVER >= 0x0400 */
6940#endif /* !NOWINMESSAGES */
6941#endif /* !NOCTLMGR */</PRE>
6942<PRE>#ifndef NOMDI</PRE>
6943<PRE>/*
6944 * MDI client style bits
6945 */
6946#define MDIS_ALLCHILDSTYLES 0x0001</PRE>
6947<PRE>/*
6948 * wParam Flags for WM_MDITILE and WM_MDICASCADE messages.
6949 */
6950#define MDITILE_VERTICAL 0x0000 /*not in win3.1 */
6951#define MDITILE_HORIZONTAL 0x0001 /*not in win3.1 */
6952#define MDITILE_SKIPDISABLED 0x0002 /*not in win3.1 */</PRE>
6953<PRE>typedef struct tagMDICREATESTRUCTA {
6954 LPCSTR szClass;
6955 LPCSTR szTitle;
6956 HANDLE hOwner;
6957 int x;
6958 int y;
6959 int cx;
6960 int cy;
6961 DWORD style;
6962 LPARAM lParam; /* app-defined stuff */
6963} MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
6964typedef struct tagMDICREATESTRUCTW {
6965 LPCWSTR szClass;
6966 LPCWSTR szTitle;
6967 HANDLE hOwner;
6968 int x;
6969 int y;
6970 int cx;
6971 int cy;
6972 DWORD style;
6973 LPARAM lParam; /* app-defined stuff */
6974} MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
6975#ifdef UNICODE
6976typedef MDICREATESTRUCTW MDICREATESTRUCT;
6977typedef LPMDICREATESTRUCTW LPMDICREATESTRUCT;
6978#else
6979typedef MDICREATESTRUCTA MDICREATESTRUCT;
6980typedef LPMDICREATESTRUCTA LPMDICREATESTRUCT;
6981#endif // UNICODE</PRE>
6982<PRE>typedef struct tagCLIENTCREATESTRUCT {
6983 HANDLE hWindowMenu;
6984 UINT idFirstChild;
6985} CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;</PRE>
6986<PRE>WINUSERAPI
6987LRESULT
6988WINAPI
6989DefFrameProcA(
6990 HWND hWnd,
6991 HWND hWndMDIClient ,
6992 UINT uMsg,
6993 WPARAM wParam,
6994 LPARAM lParam);
6995WINUSERAPI
6996LRESULT
6997WINAPI
6998DefFrameProcW(
6999 HWND hWnd,
7000 HWND hWndMDIClient ,
7001 UINT uMsg,
7002 WPARAM wParam,
7003 LPARAM lParam);
7004#ifdef UNICODE
7005#define DefFrameProc DefFrameProcW
7006#else
7007#define DefFrameProc DefFrameProcA
7008#endif // !UNICODE</PRE>
7009<PRE>WINUSERAPI
7010LRESULT
7011WINAPI
7012DefMDIChildProcA(
7013 HWND hWnd,
7014 UINT uMsg,
7015 WPARAM wParam,
7016 LPARAM lParam);
7017WINUSERAPI
7018LRESULT
7019WINAPI
7020DefMDIChildProcW(
7021 HWND hWnd,
7022 UINT uMsg,
7023 WPARAM wParam,
7024 LPARAM lParam);
7025#ifdef UNICODE
7026#define DefMDIChildProc DefMDIChildProcW
7027#else
7028#define DefMDIChildProc DefMDIChildProcA
7029#endif // !UNICODE</PRE>
7030<PRE>#ifndef NOMSG</PRE>
7031<PRE>WINUSERAPI
7032BOOL
7033WINAPI
7034TranslateMDISysAccel(
7035 HWND hWndClient,
7036 LPMSG lpMsg);</PRE>
7037<PRE>#endif /* !NOMSG */</PRE>
7038<PRE>WINUSERAPI
7039UINT
7040WINAPI
7041ArrangeIconicWindows(
7042 HWND hWnd);</PRE>
7043<PRE>WINUSERAPI
7044HWND
7045WINAPI
7046CreateMDIWindowA(
7047 LPSTR lpClassName,
7048 LPSTR lpWindowName,
7049 DWORD dwStyle,
7050 int X,
7051 int Y,
7052 int nWidth,
7053 int nHeight,
7054 HWND hWndParent,
7055 HINSTANCE hInstance,
7056 LPARAM lParam
7057 );
7058WINUSERAPI
7059HWND
7060WINAPI
7061CreateMDIWindowW(
7062 LPWSTR lpClassName,
7063 LPWSTR lpWindowName,
7064 DWORD dwStyle,
7065 int X,
7066 int Y,
7067 int nWidth,
7068 int nHeight,
7069 HWND hWndParent,
7070 HINSTANCE hInstance,
7071 LPARAM lParam
7072 );
7073#ifdef UNICODE
7074#define CreateMDIWindow CreateMDIWindowW
7075#else
7076#define CreateMDIWindow CreateMDIWindowA
7077#endif // !UNICODE</PRE>
7078<PRE>#if(WINVER >= 0x0400)
7079WINUSERAPI WORD WINAPI TileWindows(HWND hwndParent, UINT wHow, CONST RECT * lpRect, UINT cKids, const HWND FAR * lpKids);
7080WINUSERAPI WORD WINAPI CascadeWindows(HWND hwndParent, UINT wHow, CONST RECT * lpRect, UINT cKids, const HWND FAR * lpKids);
7081#endif /* WINVER >= 0x0400 */
7082#endif /* !NOMDI */</PRE>
7083<PRE>#endif /* !NOUSER */</PRE>
7084<PRE>/****** Help support ********************************************************/</PRE>
7085<PRE>#ifndef NOHELP</PRE>
7086<PRE>typedef DWORD HELPPOLY;
7087typedef struct tagMULTIKEYHELPA {
7088 DWORD mkSize;
7089 CHAR mkKeylist;
7090 CHAR szKeyphrase[1];
7091} MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA;
7092typedef struct tagMULTIKEYHELPW {
7093 DWORD mkSize;
7094 WCHAR mkKeylist;
7095 WCHAR szKeyphrase[1];
7096} MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW;
7097#ifdef UNICODE
7098typedef MULTIKEYHELPW MULTIKEYHELP;
7099typedef PMULTIKEYHELPW PMULTIKEYHELP;
7100typedef LPMULTIKEYHELPW LPMULTIKEYHELP;
7101#else
7102typedef MULTIKEYHELPA MULTIKEYHELP;
7103typedef PMULTIKEYHELPA PMULTIKEYHELP;
7104typedef LPMULTIKEYHELPA LPMULTIKEYHELP;
7105#endif // UNICODE</PRE>
7106<PRE>typedef struct tagHELPWININFOA {
7107 int wStructSize;
7108 int x;
7109 int y;
7110 int dx;
7111 int dy;
7112 int wMax;
7113 CHAR rgchMember[2];
7114} HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA;
7115typedef struct tagHELPWININFOW {
7116 int wStructSize;
7117 int x;
7118 int y;
7119 int dx;
7120 int dy;
7121 int wMax;
7122 WCHAR rgchMember[2];
7123} HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW;
7124#ifdef UNICODE
7125typedef HELPWININFOW HELPWININFO;
7126typedef PHELPWININFOW PHELPWININFO;
7127typedef LPHELPWININFOW LPHELPWININFO;
7128#else
7129typedef HELPWININFOA HELPWININFO;
7130typedef PHELPWININFOA PHELPWININFO;
7131typedef LPHELPWININFOA LPHELPWININFO;
7132#endif // UNICODE</PRE>
7133<PRE>// begin_r_winuser</PRE>
7134<PRE>/*
7135 * Commands to pass to WinHelp()
7136 */
7137#define HELP_CONTEXT 0x0001L /* Display topic in ulTopic */
7138#define HELP_QUIT 0x0002L /* Terminate help */
7139#define HELP_INDEX 0x0003L /* Display index */
7140#define HELP_CONTENTS 0x0003L
7141#define HELP_HELPONHELP 0x0004L /* Display help on using help */
7142#define HELP_SETINDEX 0x0005L /* Set current Index for multi index help */
7143#define HELP_SETCONTENTS 0x0005L
7144#define HELP_CONTEXTPOPUP 0x0008L
7145#define HELP_FORCEFILE 0x0009L
7146#define HELP_KEY 0x0101L /* Display topic for keyword in offabData */
7147#define HELP_COMMAND 0x0102L
7148#define HELP_PARTIALKEY 0x0105L
7149#define HELP_MULTIKEY 0x0201L
7150#define HELP_SETWINPOS 0x0203L
7151#if(WINVER >= 0x0400)
7152#define HELP_CONTEXTMENU 0x000a
7153#define HELP_FINDER 0x000b
7154#define HELP_WM_HELP 0x000c
7155#define HELP_SETPOPUP_POS 0x000d</PRE>
7156<PRE>#define HELP_TCARD 0x8000
7157#define HELP_TCARD_DATA 0x0010
7158#define HELP_TCARD_OTHER_CALLER 0x0011</PRE>
7159<PRE>// These are in winhelp.h in Win95.
7160#define IDH_NO_HELP 28440
7161#define IDH_MISSING_CONTEXT 28441 // Control doesn't have matching help context
7162#define IDH_GENERIC_HELP_BUTTON 28442 // Property sheet help button
7163#define IDH_OK 28443
7164#define IDH_CANCEL 28444
7165#define IDH_HELP 28445</PRE>
7166<PRE>#endif /* WINVER >= 0x0400 */</PRE>
7167<PRE>// end_r_winuser
7168</PRE>
7169<PRE>WINUSERAPI
7170BOOL
7171WINAPI
7172WinHelpA(
7173 HWND hWndMain,
7174 LPCSTR lpszHelp,
7175 UINT uCommand,
7176 DWORD dwData
7177 );
7178WINUSERAPI
7179BOOL
7180WINAPI
7181WinHelpW(
7182 HWND hWndMain,
7183 LPCWSTR lpszHelp,
7184 UINT uCommand,
7185 DWORD dwData
7186 );
7187#ifdef UNICODE
7188#define WinHelp WinHelpW
7189#else
7190#define WinHelp WinHelpA
7191#endif // !UNICODE</PRE>
7192<PRE>#endif /* !NOHELP */</PRE>
7193<PRE>#ifndef NOSYSPARAMSINFO</PRE>
7194<PRE>/*
7195 * Parameter for SystemParametersInfo()
7196 */</PRE>
7197<PRE>#define SPI_GETBEEP 1
7198#define SPI_SETBEEP 2
7199#define SPI_GETMOUSE 3
7200#define SPI_SETMOUSE 4
7201#define SPI_GETBORDER 5
7202#define SPI_SETBORDER 6
7203#define SPI_GETKEYBOARDSPEED 10
7204#define SPI_SETKEYBOARDSPEED 11
7205#define SPI_LANGDRIVER 12
7206#define SPI_ICONHORIZONTALSPACING 13
7207#define SPI_GETSCREENSAVETIMEOUT 14
7208#define SPI_SETSCREENSAVETIMEOUT 15
7209#define SPI_GETSCREENSAVEACTIVE 16
7210#define SPI_SETSCREENSAVEACTIVE 17
7211#define SPI_GETGRIDGRANULARITY 18
7212#define SPI_SETGRIDGRANULARITY 19
7213#define SPI_SETDESKWALLPAPER 20
7214#define SPI_SETDESKPATTERN 21
7215#define SPI_GETKEYBOARDDELAY 22
7216#define SPI_SETKEYBOARDDELAY 23
7217#define SPI_ICONVERTICALSPACING 24
7218#define SPI_GETICONTITLEWRAP 25
7219#define SPI_SETICONTITLEWRAP 26
7220#define SPI_GETMENUDROPALIGNMENT 27
7221#define SPI_SETMENUDROPALIGNMENT 28
7222#define SPI_SETDOUBLECLKWIDTH 29
7223#define SPI_SETDOUBLECLKHEIGHT 30
7224#define SPI_GETICONTITLELOGFONT 31
7225#define SPI_SETDOUBLECLICKTIME 32
7226#define SPI_SETMOUSEBUTTONSWAP 33
7227#define SPI_SETICONTITLELOGFONT 34
7228#define SPI_GETFASTTASKSWITCH 35
7229#define SPI_SETFASTTASKSWITCH 36
7230#if(WINVER >= 0x0400)
7231#define SPI_SETDRAGFULLWINDOWS 37
7232#define SPI_GETDRAGFULLWINDOWS 38
7233#define SPI_GETNONCLIENTMETRICS 41
7234#define SPI_SETNONCLIENTMETRICS 42
7235#define SPI_GETMINIMIZEDMETRICS 43
7236#define SPI_SETMINIMIZEDMETRICS 44
7237#define SPI_GETICONMETRICS 45
7238#define SPI_SETICONMETRICS 46
7239#define SPI_SETWORKAREA 47
7240#define SPI_GETWORKAREA 48
7241#define SPI_SETPENWINDOWS 49</PRE>
7242<PRE>#define SPI_GETHIGHCONTRAST 66
7243#define SPI_SETHIGHCONTRAST 67
7244#define SPI_GETKEYBOARDPREF 68
7245#define SPI_SETKEYBOARDPREF 69
7246#define SPI_GETSCREENREADER 70
7247#define SPI_SETSCREENREADER 71
7248#define SPI_GETANIMATION 72
7249#define SPI_SETANIMATION 73
7250#define SPI_GETFONTSMOOTHING 74
7251#define SPI_SETFONTSMOOTHING 75
7252#define SPI_SETDRAGWIDTH 76
7253#define SPI_SETDRAGHEIGHT 77
7254#define SPI_SETHANDHELD 78
7255#define SPI_GETLOWPOWERTIMEOUT 79
7256#define SPI_GETPOWEROFFTIMEOUT 80
7257#define SPI_SETLOWPOWERTIMEOUT 81
7258#define SPI_SETPOWEROFFTIMEOUT 82
7259#define SPI_GETLOWPOWERACTIVE 83
7260#define SPI_GETPOWEROFFACTIVE 84
7261#define SPI_SETLOWPOWERACTIVE 85
7262#define SPI_SETPOWEROFFACTIVE 86
7263#define SPI_SETCURSORS 87
7264#define SPI_SETICONS 88
7265#define SPI_GETDEFAULTINPUTLANG 89
7266#define SPI_SETDEFAULTINPUTLANG 90
7267#define SPI_SETLANGTOGGLE 91
7268#define SPI_GETWINDOWSEXTENSION 92
7269#define SPI_SETMOUSETRAILS 93
7270#define SPI_GETMOUSETRAILS 94
7271#define SPI_SCREENSAVERRUNNING 97
7272#endif /* WINVER >= 0x0400 */
7273#define SPI_GETFILTERKEYS 50
7274#define SPI_SETFILTERKEYS 51
7275#define SPI_GETTOGGLEKEYS 52
7276#define SPI_SETTOGGLEKEYS 53
7277#define SPI_GETMOUSEKEYS 54
7278#define SPI_SETMOUSEKEYS 55
7279#define SPI_GETSHOWSOUNDS 56
7280#define SPI_SETSHOWSOUNDS 57
7281#define SPI_GETSTICKYKEYS 58
7282#define SPI_SETSTICKYKEYS 59
7283#define SPI_GETACCESSTIMEOUT 60
7284#define SPI_SETACCESSTIMEOUT 61
7285#if(WINVER >= 0x0400)
7286#define SPI_GETSERIALKEYS 62
7287#define SPI_SETSERIALKEYS 63
7288#endif /* WINVER >= 0x0400 */
7289#define SPI_GETSOUNDSENTRY 64
7290#define SPI_SETSOUNDSENTRY 65
7291#if(_WIN32_WINNT >= 0x0400)
7292#define SPI_GETSNAPTODEFBUTTON 95
7293#define SPI_SETSNAPTODEFBUTTON 96
7294#define SPI_GETMOUSEHOVERWIDTH 98
7295#define SPI_SETMOUSEHOVERWIDTH 99
7296#define SPI_GETMOUSEHOVERHEIGHT 100
7297#define SPI_SETMOUSEHOVERHEIGHT 101
7298#define SPI_GETMOUSEHOVERTIME 102
7299#define SPI_SETMOUSEHOVERTIME 103
7300#define SPI_GETWHEELSCROLLLINES 104
7301#define SPI_SETWHEELSCROLLLINES 105</PRE>
7302<PRE>#endif /* _WIN32_WINNT >= 0x0400 */</PRE>
7303<PRE>/*
7304 * SPI User Preferences.
7305 */</PRE>
7306<PRE>/*
7307 * Flags
7308 */
7309#define SPIF_UPDATEINIFILE 0x0001
7310#define SPIF_SENDWININICHANGE 0x0002
7311#define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
7312</PRE>
7313<PRE>#define METRICS_USEDEFAULT -1
7314#ifdef _WINGDI_
7315#ifndef NOGDI
7316typedef struct tagNONCLIENTMETRICSA
7317{
7318 UINT cbSize;
7319 int iBorderWidth;
7320 int iScrollWidth;
7321 int iScrollHeight;
7322 int iCaptionWidth;
7323 int iCaptionHeight;
7324 LOGFONTA lfCaptionFont;
7325 int iSmCaptionWidth;
7326 int iSmCaptionHeight;
7327 LOGFONTA lfSmCaptionFont;
7328 int iMenuWidth;
7329 int iMenuHeight;
7330 LOGFONTA lfMenuFont;
7331 LOGFONTA lfStatusFont;
7332 LOGFONTA lfMessageFont;
7333} NONCLIENTMETRICSA, *PNONCLIENTMETRICSA, FAR* LPNONCLIENTMETRICSA;
7334typedef struct tagNONCLIENTMETRICSW
7335{
7336 UINT cbSize;
7337 int iBorderWidth;
7338 int iScrollWidth;
7339 int iScrollHeight;
7340 int iCaptionWidth;
7341 int iCaptionHeight;
7342 LOGFONTW lfCaptionFont;
7343 int iSmCaptionWidth;
7344 int iSmCaptionHeight;
7345 LOGFONTW lfSmCaptionFont;
7346 int iMenuWidth;
7347 int iMenuHeight;
7348 LOGFONTW lfMenuFont;
7349 LOGFONTW lfStatusFont;
7350 LOGFONTW lfMessageFont;
7351} NONCLIENTMETRICSW, *PNONCLIENTMETRICSW, FAR* LPNONCLIENTMETRICSW;
7352#ifdef UNICODE
7353typedef NONCLIENTMETRICSW NONCLIENTMETRICS;
7354typedef PNONCLIENTMETRICSW PNONCLIENTMETRICS;
7355typedef LPNONCLIENTMETRICSW LPNONCLIENTMETRICS;
7356#else
7357typedef NONCLIENTMETRICSA NONCLIENTMETRICS;
7358typedef PNONCLIENTMETRICSA PNONCLIENTMETRICS;
7359typedef LPNONCLIENTMETRICSA LPNONCLIENTMETRICS;
7360#endif // UNICODE
7361#endif /* NOGDI */
7362#endif /* _WINGDI_ */</PRE>
7363<PRE>#define ARW_BOTTOMLEFT 0x0000L
7364#define ARW_BOTTOMRIGHT 0x0001L
7365#define ARW_TOPLEFT 0x0002L
7366#define ARW_TOPRIGHT 0x0003L
7367#define ARW_STARTMASK 0x0003L
7368#define ARW_STARTRIGHT 0x0001L
7369#define ARW_STARTTOP 0x0002L</PRE>
7370<PRE>#define ARW_LEFT 0x0000L
7371#define ARW_RIGHT 0x0000L
7372#define ARW_UP 0x0004L
7373#define ARW_DOWN 0x0004L
7374#define ARW_HIDE 0x0008L
7375#define ARW_VALID 0x000FL</PRE>
7376<PRE>typedef struct tagMINIMIZEDMETRICS
7377{
7378 UINT cbSize;
7379 int iWidth;
7380 int iHorzGap;
7381 int iVertGap;
7382 int iArrange;
7383} MINIMIZEDMETRICS, *PMINIMIZEDMETRICS, *LPMINIMIZEDMETRICS;</PRE>
7384<PRE>#ifdef _WINGDI_
7385#ifndef NOGDI
7386typedef struct tagICONMETRICSA
7387{
7388 UINT cbSize;
7389 int iHorzSpacing;
7390 int iVertSpacing;
7391 int iTitleWrap;
7392 LOGFONTA lfFont;
7393} ICONMETRICSA, *PICONMETRICSA, *LPICONMETRICSA;
7394typedef struct tagICONMETRICSW
7395{
7396 UINT cbSize;
7397 int iHorzSpacing;
7398 int iVertSpacing;
7399 int iTitleWrap;
7400 LOGFONTW lfFont;
7401} ICONMETRICSW, *PICONMETRICSW, *LPICONMETRICSW;
7402#ifdef UNICODE
7403typedef ICONMETRICSW ICONMETRICS;
7404typedef PICONMETRICSW PICONMETRICS;
7405typedef LPICONMETRICSW LPICONMETRICS;
7406#else
7407typedef ICONMETRICSA ICONMETRICS;
7408typedef PICONMETRICSA PICONMETRICS;
7409typedef LPICONMETRICSA LPICONMETRICS;
7410#endif // UNICODE
7411#endif /* NOGDI */
7412#endif /* _WINGDI_ */</PRE>
7413<PRE>typedef struct tagANIMATIONINFO
7414{
7415 UINT cbSize;
7416 int iMinAnimate;
7417} ANIMATIONINFO, *LPANIMATIONINFO;</PRE>
7418<PRE>typedef struct tagSERIALKEYSA
7419{
7420 UINT cbSize;
7421 DWORD dwFlags;
7422 LPSTR lpszActivePort;
7423 LPSTR lpszPort;
7424 UINT iBaudRate;
7425 UINT iPortState;
7426 UINT iActive;
7427} SERIALKEYSA, *LPSERIALKEYSA;
7428typedef struct tagSERIALKEYSW
7429{
7430 UINT cbSize;
7431 DWORD dwFlags;
7432 LPWSTR lpszActivePort;
7433 LPWSTR lpszPort;
7434 UINT iBaudRate;
7435 UINT iPortState;
7436 UINT iActive;
7437} SERIALKEYSW, *LPSERIALKEYSW;
7438#ifdef UNICODE
7439typedef SERIALKEYSW SERIALKEYS;
7440typedef LPSERIALKEYSW LPSERIALKEYS;
7441#else
7442typedef SERIALKEYSA SERIALKEYS;
7443typedef LPSERIALKEYSA LPSERIALKEYS;
7444#endif // UNICODE</PRE>
7445<PRE>/* flags for SERIALKEYS dwFlags field */
7446#define SERKF_SERIALKEYSON 0x00000001
7447#define SERKF_AVAILABLE 0x00000002
7448#define SERKF_INDICATOR 0x00000004
7449</PRE>
7450<PRE>typedef struct tagHIGHCONTRASTA
7451{
7452 UINT cbSize;
7453 DWORD dwFlags;
7454 LPSTR lpszDefaultScheme;
7455} HIGHCONTRASTA, *LPHIGHCONTRASTA;
7456typedef struct tagHIGHCONTRASTW
7457{
7458 UINT cbSize;
7459 DWORD dwFlags;
7460 LPWSTR lpszDefaultScheme;
7461} HIGHCONTRASTW, *LPHIGHCONTRASTW;
7462#ifdef UNICODE
7463typedef HIGHCONTRASTW HIGHCONTRAST;
7464typedef LPHIGHCONTRASTW LPHIGHCONTRAST;
7465#else
7466typedef HIGHCONTRASTA HIGHCONTRAST;
7467typedef LPHIGHCONTRASTA LPHIGHCONTRAST;
7468#endif // UNICODE</PRE>
7469<PRE>/* flags for HIGHCONTRAST dwFlags field */
7470#define HCF_HIGHCONTRASTON 0x00000001
7471#define HCF_AVAILABLE 0x00000002
7472#define HCF_HOTKEYACTIVE 0x00000004
7473#define HCF_CONFIRMHOTKEY 0x00000008
7474#define HCF_HOTKEYSOUND 0x00000010
7475#define HCF_INDICATOR 0x00000020
7476#define HCF_HOTKEYAVAILABLE 0x00000040</PRE>
7477<PRE>/* Flags for ChangeDisplaySettings */
7478#define CDS_UPDATEREGISTRY 0x00000001
7479#define CDS_TEST 0x00000002
7480#define CDS_FULLSCREEN 0x00000004
7481#define CDS_GLOBAL 0x00000008
7482#define CDS_SET_PRIMARY 0x00000010
7483#define CDS_RESET 0x40000000
7484#define CDS_SETRECT 0x20000000
7485#define CDS_NORESET 0x10000000</PRE>
7486<PRE>/* Return values for ChangeDisplaySettings */
7487#define DISP_CHANGE_SUCCESSFUL 0
7488#define DISP_CHANGE_RESTART 1
7489#define DISP_CHANGE_FAILED -1
7490#define DISP_CHANGE_BADMODE -2
7491#define DISP_CHANGE_NOTUPDATED -3
7492#define DISP_CHANGE_BADFLAGS -4
7493#define DISP_CHANGE_BADPARAM -5</PRE>
7494<PRE>#ifdef _WINGDI_
7495#ifndef NOGDI</PRE>
7496<PRE>WINUSERAPI
7497LONG
7498WINAPI
7499ChangeDisplaySettingsA(
7500 LPDEVMODEA lpDevMode,
7501 DWORD dwFlags);
7502WINUSERAPI
7503LONG
7504WINAPI
7505ChangeDisplaySettingsW(
7506 LPDEVMODEW lpDevMode,
7507 DWORD dwFlags);
7508#ifdef UNICODE
7509#define ChangeDisplaySettings ChangeDisplaySettingsW
7510#else
7511#define ChangeDisplaySettings ChangeDisplaySettingsA
7512#endif // !UNICODE</PRE>
7513<PRE>WINUSERAPI
7514LONG
7515WINAPI
7516ChangeDisplaySettingsExA(
7517 LPCSTR lpszDeviceName,
7518 LPDEVMODEA lpDevMode,
7519 HWND hwnd,
7520 DWORD dwflags,
7521 LPVOID lParam);
7522WINUSERAPI
7523LONG
7524WINAPI
7525ChangeDisplaySettingsExW(
7526 LPCWSTR lpszDeviceName,
7527 LPDEVMODEW lpDevMode,
7528 HWND hwnd,
7529 DWORD dwflags,
7530 LPVOID lParam);
7531#ifdef UNICODE
7532#define ChangeDisplaySettingsEx ChangeDisplaySettingsExW
7533#else
7534#define ChangeDisplaySettingsEx ChangeDisplaySettingsExA
7535#endif // !UNICODE</PRE>
7536<PRE>#define ENUM_CURRENT_SETTINGS ((DWORD)-1)
7537#define ENUM_REGISTRY_SETTINGS ((DWORD)-2)</PRE>
7538<PRE>WINUSERAPI
7539BOOL
7540WINAPI
7541EnumDisplaySettingsA(
7542 LPCSTR lpszDeviceName,
7543 DWORD iModeNum,
7544 LPDEVMODEA lpDevMode);
7545WINUSERAPI
7546BOOL
7547WINAPI
7548EnumDisplaySettingsW(
7549 LPCWSTR lpszDeviceName,
7550 DWORD iModeNum,
7551 LPDEVMODEW lpDevMode);
7552#ifdef UNICODE
7553#define EnumDisplaySettings EnumDisplaySettingsW
7554#else
7555#define EnumDisplaySettings EnumDisplaySettingsA
7556#endif // !UNICODE
7557</PRE>
7558<PRE>#endif /* NOGDI */
7559#endif /* _WINGDI_ */
7560</PRE>
7561<PRE>WINUSERAPI
7562BOOL
7563WINAPI
7564SystemParametersInfoA(
7565 UINT uiAction,
7566 UINT uiParam,
7567 PVOID pvParam,
7568 UINT fWinIni);
7569WINUSERAPI
7570BOOL
7571WINAPI
7572SystemParametersInfoW(
7573 UINT uiAction,
7574 UINT uiParam,
7575 PVOID pvParam,
7576 UINT fWinIni);
7577#ifdef UNICODE
7578#define SystemParametersInfo SystemParametersInfoW
7579#else
7580#define SystemParametersInfo SystemParametersInfoA
7581#endif // !UNICODE</PRE>
7582<PRE>#endif /* !NOSYSPARAMSINFO */</PRE>
7583<PRE>/*
7584 * Accessibility support
7585 */
7586typedef struct tagFILTERKEYS
7587{
7588 UINT cbSize;
7589 DWORD dwFlags;
7590 DWORD iWaitMSec; // Acceptance Delay
7591 DWORD iDelayMSec; // Delay Until Repeat
7592 DWORD iRepeatMSec; // Repeat Rate
7593 DWORD iBounceMSec; // Debounce Time
7594} FILTERKEYS, *LPFILTERKEYS;</PRE>
7595<PRE>/*
7596 * FILTERKEYS dwFlags field
7597 */
7598#define FKF_FILTERKEYSON 0x00000001
7599#define FKF_AVAILABLE 0x00000002
7600#define FKF_HOTKEYACTIVE 0x00000004
7601#define FKF_CONFIRMHOTKEY 0x00000008
7602#define FKF_HOTKEYSOUND 0x00000010
7603#define FKF_INDICATOR 0x00000020
7604#define FKF_CLICKON 0x00000040</PRE>
7605<PRE>typedef struct tagSTICKYKEYS
7606{
7607 UINT cbSize;
7608 DWORD dwFlags;
7609} STICKYKEYS, *LPSTICKYKEYS;</PRE>
7610<PRE>/*
7611 * STICKYKEYS dwFlags field
7612 */
7613#define SKF_STICKYKEYSON 0x00000001
7614#define SKF_AVAILABLE 0x00000002
7615#define SKF_HOTKEYACTIVE 0x00000004
7616#define SKF_CONFIRMHOTKEY 0x00000008
7617#define SKF_HOTKEYSOUND 0x00000010
7618#define SKF_INDICATOR 0x00000020
7619#define SKF_AUDIBLEFEEDBACK 0x00000040
7620#define SKF_TRISTATE 0x00000080
7621#define SKF_TWOKEYSOFF 0x00000100</PRE>
7622<PRE>typedef struct tagMOUSEKEYS
7623{
7624 UINT cbSize;
7625 DWORD dwFlags;
7626 DWORD iMaxSpeed;
7627 DWORD iTimeToMaxSpeed;
7628 DWORD iCtrlSpeed;
7629 DWORD dwReserved1;
7630 DWORD dwReserved2;
7631} MOUSEKEYS, *LPMOUSEKEYS;</PRE>
7632<PRE>/*
7633 * MOUSEKEYS dwFlags field
7634 */
7635#define MKF_MOUSEKEYSON 0x00000001
7636#define MKF_AVAILABLE 0x00000002
7637#define MKF_HOTKEYACTIVE 0x00000004
7638#define MKF_CONFIRMHOTKEY 0x00000008
7639#define MKF_HOTKEYSOUND 0x00000010
7640#define MKF_INDICATOR 0x00000020
7641#define MKF_MODIFIERS 0x00000040
7642#define MKF_REPLACENUMBERS 0x00000080</PRE>
7643<PRE>typedef struct tagACCESSTIMEOUT
7644{
7645 UINT cbSize;
7646 DWORD dwFlags;
7647 DWORD iTimeOutMSec;
7648} ACCESSTIMEOUT, *LPACCESSTIMEOUT;</PRE>
7649<PRE>/*
7650 * ACCESSTIMEOUT dwFlags field
7651 */
7652#define ATF_TIMEOUTON 0x00000001
7653#define ATF_ONOFFFEEDBACK 0x00000002</PRE>
7654<PRE>/* values for SOUNDSENTRY iFSGrafEffect field */
7655#define SSGF_NONE 0
7656#define SSGF_DISPLAY 3</PRE>
7657<PRE>/* values for SOUNDSENTRY iFSTextEffect field */
7658#define SSTF_NONE 0
7659#define SSTF_CHARS 1
7660#define SSTF_BORDER 2
7661#define SSTF_DISPLAY 3</PRE>
7662<PRE>/* values for SOUNDSENTRY iWindowsEffect field */
7663#define SSWF_NONE 0
7664#define SSWF_TITLE 1
7665#define SSWF_WINDOW 2
7666#define SSWF_DISPLAY 3
7667#define SSWF_CUSTOM 4</PRE>
7668<PRE>typedef struct tagSOUNDSENTRYA
7669{
7670 UINT cbSize;
7671 DWORD dwFlags;
7672 DWORD iFSTextEffect;
7673 DWORD iFSTextEffectMSec;
7674 DWORD iFSTextEffectColorBits;
7675 DWORD iFSGrafEffect;
7676 DWORD iFSGrafEffectMSec;
7677 DWORD iFSGrafEffectColor;
7678 DWORD iWindowsEffect;
7679 DWORD iWindowsEffectMSec;
7680 LPSTR lpszWindowsEffectDLL;
7681 DWORD iWindowsEffectOrdinal;
7682} SOUNDSENTRYA, *LPSOUNDSENTRYA;
7683typedef struct tagSOUNDSENTRYW
7684{
7685 UINT cbSize;
7686 DWORD dwFlags;
7687 DWORD iFSTextEffect;
7688 DWORD iFSTextEffectMSec;
7689 DWORD iFSTextEffectColorBits;
7690 DWORD iFSGrafEffect;
7691 DWORD iFSGrafEffectMSec;
7692 DWORD iFSGrafEffectColor;
7693 DWORD iWindowsEffect;
7694 DWORD iWindowsEffectMSec;
7695 LPWSTR lpszWindowsEffectDLL;
7696 DWORD iWindowsEffectOrdinal;
7697} SOUNDSENTRYW, *LPSOUNDSENTRYW;
7698#ifdef UNICODE
7699typedef SOUNDSENTRYW SOUNDSENTRY;
7700typedef LPSOUNDSENTRYW LPSOUNDSENTRY;
7701#else
7702typedef SOUNDSENTRYA SOUNDSENTRY;
7703typedef LPSOUNDSENTRYA LPSOUNDSENTRY;
7704#endif // UNICODE</PRE>
7705<PRE>/*
7706 * SOUNDSENTRY dwFlags field
7707 */
7708#define SSF_SOUNDSENTRYON 0x00000001
7709#define SSF_AVAILABLE 0x00000002
7710#define SSF_INDICATOR 0x00000004</PRE>
7711<PRE>typedef struct tagTOGGLEKEYS
7712{
7713 UINT cbSize;
7714 DWORD dwFlags;
7715} TOGGLEKEYS, *LPTOGGLEKEYS;</PRE>
7716<PRE>/*
7717 * TOGGLEKEYS dwFlags field
7718 */
7719#define TKF_TOGGLEKEYSON 0x00000001
7720#define TKF_AVAILABLE 0x00000002
7721#define TKF_HOTKEYACTIVE 0x00000004
7722#define TKF_CONFIRMHOTKEY 0x00000008
7723#define TKF_HOTKEYSOUND 0x00000010
7724#define TKF_INDICATOR 0x00000020
7725
7726
7727</PRE>
7728<PRE>/*
7729 * Set debug level
7730 */</PRE>
7731<PRE>WINUSERAPI
7732VOID
7733WINAPI
7734SetDebugErrorLevel(
7735 DWORD dwLevel
7736 );</PRE>
7737<PRE>/*
7738 * SetLastErrorEx() types.
7739 */</PRE>
7740<PRE>#define SLE_ERROR 0x00000001
7741#define SLE_MINORERROR 0x00000002
7742#define SLE_WARNING 0x00000003</PRE>
7743<PRE>WINUSERAPI
7744VOID
7745WINAPI
7746SetLastErrorEx(
7747 DWORD dwErrCode,
7748 DWORD dwType
7749 );
7750</PRE>
7751<PRE>#ifdef __cplusplus
7752}
7753#endif /* __cplusplus */</PRE>
7754<PRE>#endif /* !_WINUSER_ */</PRE>