|
|
1.1 root 1: /*++ BUILD Version: 0003 // Increment this if a change has global effects
2:
3: Copyright (c) 1985-91, Microsoft Corporation
4:
5: Module Name:
6:
7: winuser.h
8:
9: Abstract:
10:
11: Procedure declarations, constant definitions and macros for the User
12: component.
13:
14: --*/
15:
16: #ifndef _WINUSER_
17: #define _WINUSER_
18:
19: #ifndef NOUSER
20:
21: typedef HANDLE HDWP;
22: typedef PVOID LPMENUTEMPLATEA;
23: typedef PVOID LPMENUTEMPLATEW;
24: #ifdef UNICODE
25: #define LPMENUTEMPLATE LPMENUTEMPLATEW
26: #else
27: #define LPMENUTEMPLATE LPMENUTEMPLATEA
28: #endif // UNICODE
29:
30: typedef LRESULT (CALLBACK* WNDPROC)(HWND, UINT, WPARAM, LPARAM);
31: #ifdef STRICT
32: typedef BOOL (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
33: typedef VOID (CALLBACK* TIMERPROC)(HWND, UINT, UINT, DWORD);
34: typedef BOOL (CALLBACK* GRAYSTRINGPROC)(HDC, LPARAM, int);
35: typedef BOOL (CALLBACK* PROPENUMPROC)(HWND, LPCSTR, HANDLE);
36: typedef BOOL (CALLBACK* PROPENUMPROCEX)(HWND, LPTSTR, HANDLE, DWORD);
37: typedef BOOL (CALLBACK* WNDENUMPROC)(HWND, LPARAM);
38: typedef LRESULT (CALLBACK* HOOKPROC)(int code, WPARAM wParam, LPARAM lParam);
39: typedef int (CALLBACK* EDITWORDBREAKPROC)(LPSTR lpch, int ichCurrent, int cch, int code);
40: #else
41: typedef FARPROC DLGPROC;
42: typedef FARPROC TIMERPROC;
43: typedef FARPROC GRAYSTRINGPROC;
44: typedef FARPROC PROPENUMPROC;
45: typedef FARPROC WNDENUMPROC;
46: typedef FARPROC HOOKPROC;
47: typedef FARPROC EDITWORDBREAKPROC;
48: #endif
49:
50: #define MAKEINTRESOURCE(i) (LPTSTR)((DWORD)((WORD)(i)))
51:
52: #ifndef NORESOURCE
53:
54: /* Predefined Resource Types */
55: #define RT_CURSOR MAKEINTRESOURCE(1)
56: #define RT_BITMAP MAKEINTRESOURCE(2)
57: #define RT_ICON MAKEINTRESOURCE(3)
58: #define RT_MENU MAKEINTRESOURCE(4)
59: #define RT_DIALOG MAKEINTRESOURCE(5)
60: #define RT_STRING MAKEINTRESOURCE(6)
61: #define RT_FONTDIR MAKEINTRESOURCE(7)
62: #define RT_FONT MAKEINTRESOURCE(8)
63: #define RT_ACCELERATOR MAKEINTRESOURCE(9)
64: #define RT_RCDATA MAKEINTRESOURCE(10)
65: #define RT_MESSAGETABLE MAKEINTRESOURCE(11)
66:
67: #define DIFFERENCE 11
68:
69: /* NOTE: if any new resource types are introduced above this point, then the
70: ** value of DIFFERENCE must be changed.
71: ** (RT_GROUP_CURSOR - RT_CURSOR) must always be equal to DIFFERENCE
72: ** (RT_GROUP_ICON - RT_ICON) must always be equal to DIFFERENCE
73: */
74: #define RT_GROUP_CURSOR MAKEINTRESOURCE((DWORD)RT_CURSOR + DIFFERENCE)
75: /* The value RT_BITMAP+DIFFERENCE (13) is intentionally unused */
76: #define RT_GROUP_ICON MAKEINTRESOURCE((DWORD)RT_ICON + DIFFERENCE)
77: /* The value 15 is unused/obsolete */
78: #define RT_VERSION MAKEINTRESOURCE(16)
79: #define RT_DLGINCLUDE MAKEINTRESOURCE(17)
80:
81: #endif /* NORESOURCE */
82:
83: int WINAPI wvsprintfA(LPSTR, LPCSTR, CONST VOID *);
84: int WINAPI wvsprintfW(LPWSTR, LPCSTR, CONST VOID *);
85: #ifdef UNICODE
86: #define wvsprintf wvsprintfW
87: #else
88: #define wvsprintf wvsprintfA
89: #endif // !UNICODE
90:
91: int WINAPI wsprintfA(LPSTR, LPCSTR, ...);
92: int WINAPI wsprintfW(LPWSTR, LPCSTR, ...);
93: #ifdef UNICODE
94: #define wsprintf wsprintfW
95: #else
96: #define wsprintf wsprintfA
97: #endif // !UNICODE
98:
99: #ifndef NOSCROLL
100:
101: /* Scroll Bar Constants */
102: #define SB_HORZ 0
103: #define SB_VERT 1
104: #define SB_CTL 2
105: #define SB_BOTH 3
106: #define SB_MAX 3
107:
108: /* Scroll Bar Commands */
109: #define SB_LINEUP 0
110: #define SB_LINEDOWN 1
111: #define SB_PAGEUP 2
112: #define SB_PAGEDOWN 3
113: #define SB_THUMBPOSITION 4
114: #define SB_THUMBTRACK 5
115: #define SB_TOP 6
116: #define SB_BOTTOM 7
117: #define SB_ENDSCROLL 8
118: #define SB_CMD_MAX 8
119:
120: #endif /* NOSCROLL */
121:
122: #ifndef NOSHOWWINDOW
123:
124: /* ShowWindow() Commands */
125: #define SW_HIDE 0
126: #define SW_SHOWNORMAL 1
127: #define SW_NORMAL 1
128: #define SW_SHOWMINIMIZED 2
129: #define SW_SHOWMAXIMIZED 3
130: #define SW_MAXIMIZE 3
131: #define SW_SHOWNOACTIVATE 4
132: #define SW_SHOW 5
133: #define SW_MINIMIZE 6
134: #define SW_SHOWMINNOACTIVE 7
135: #define SW_SHOWNA 8
136: #define SW_RESTORE 9
137: #define SW_SHOWDEFAULT 10
138: #define SW_MAX 10
139:
140: /* Old ShowWindow() Commands */
141: #define HIDE_WINDOW 0
142: #define SHOW_OPENWINDOW 1
143: #define SHOW_ICONWINDOW 2
144: #define SHOW_FULLSCREEN 3
145: #define SHOW_OPENNOACTIVATE 4
146:
147: /* Identifiers for the WM_SHOWWINDOW message */
148: #define SW_PARENTCLOSING 1
149: #define SW_OTHERZOOM 2
150: #define SW_PARENTOPENING 3
151: #define SW_OTHERUNZOOM 4
152:
153: #endif /* NOSHOWWINDOW */
154:
155: #ifndef NOVIRTUALKEYCODES
156:
157: /* Virtual Keys, Standard Set */
158: #define VK_LBUTTON 0x01
159: #define VK_RBUTTON 0x02
160: #define VK_CANCEL 0x03
161: #define VK_MBUTTON 0x04 /* NOT contiguous with L & RBUTTON */
162:
163: #define VK_BACK 0x08
164: #define VK_TAB 0x09
165:
166: #define VK_CLEAR 0x0C
167: #define VK_RETURN 0x0D
168:
169: #define VK_SHIFT 0x10
170: #define VK_CONTROL 0x11
171: #define VK_MENU 0x12
172: #define VK_PAUSE 0x13
173: #define VK_CAPITAL 0x14
174:
175: #define VK_ESCAPE 0x1B
176:
177: #define VK_SPACE 0x20
178: #define VK_PRIOR 0x21
179: #define VK_NEXT 0x22
180: #define VK_END 0x23
181: #define VK_HOME 0x24
182: #define VK_LEFT 0x25
183: #define VK_UP 0x26
184: #define VK_RIGHT 0x27
185: #define VK_DOWN 0x28
186: #define VK_SELECT 0x29
187: #define VK_PRINT 0x2A
188: #define VK_EXECUTE 0x2B
189: #define VK_SNAPSHOT 0x2C
190: /* #define VK_COPY 0x2C not used by keyboards. */
191: #define VK_INSERT 0x2D
192: #define VK_DELETE 0x2E
193: #define VK_HELP 0x2F
194:
195: /* VK_0 thru VK_9 are the same as ASCII '0' thru '9' (0x30 - 0x39) */
196: /* VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' (0x41 - 0x5A) */
197:
198: #define VK_NUMPAD0 0x60
199: #define VK_NUMPAD1 0x61
200: #define VK_NUMPAD2 0x62
201: #define VK_NUMPAD3 0x63
202: #define VK_NUMPAD4 0x64
203: #define VK_NUMPAD5 0x65
204: #define VK_NUMPAD6 0x66
205: #define VK_NUMPAD7 0x67
206: #define VK_NUMPAD8 0x68
207: #define VK_NUMPAD9 0x69
208: #define VK_MULTIPLY 0x6A
209: #define VK_ADD 0x6B
210: #define VK_SEPARATOR 0x6C
211: #define VK_SUBTRACT 0x6D
212: #define VK_DECIMAL 0x6E
213: #define VK_DIVIDE 0x6F
214: #define VK_F1 0x70
215: #define VK_F2 0x71
216: #define VK_F3 0x72
217: #define VK_F4 0x73
218: #define VK_F5 0x74
219: #define VK_F6 0x75
220: #define VK_F7 0x76
221: #define VK_F8 0x77
222: #define VK_F9 0x78
223: #define VK_F10 0x79
224: #define VK_F11 0x7A
225: #define VK_F12 0x7B
226: #define VK_F13 0x7C
227: #define VK_F14 0x7D
228: #define VK_F15 0x7E
229: #define VK_F16 0x7F
230: #define VK_F17 0x80
231: #define VK_F18 0x81
232: #define VK_F19 0x82
233: #define VK_F20 0x83
234: #define VK_F21 0x84
235: #define VK_F22 0x85
236: #define VK_F23 0x86
237: #define VK_F24 0x87
238:
239: #define VK_NUMLOCK 0x90
240: #define VK_SCROLL 0x91
241:
242: /*
243: * VK_L* & VK_R* - left and right Alt, Ctrl and Shift virtual keys.
244: * Used only as parameters to GetAsyncKeyState() and GetKeyState().
245: * No other API or message will distinguish left and right keys in this way.
246: */
247: #define VK_LSHIFT 0xA0
248: #define VK_RSHIFT 0xA1
249: #define VK_LCONTROL 0xA2
250: #define VK_RCONTROL 0xA3
251: #define VK_LMENU 0xA4
252: #define VK_RMENU 0xA5
253:
254: #define VK_ATTN 0xF6
255: #define VK_CRSEL 0xF7
256: #define VK_EXSEL 0xF8
257: #define VK_EREOF 0xF9
258: #define VK_PLAY 0xFA
259: #define VK_ZOOM 0xFB
260: #define VK_NONAME 0xFC
261: #define VK_PA1 0xFD
262: #define VK_OEM_CLEAR 0xFE
263:
264: #endif /* NOVIRTUALKEYCODES */
265:
266: #ifndef NOWH
267:
268: /* SetWindowsHook() codes */
269: #define WH_MIN (-1)
270: #define WH_MSGFILTER (-1)
271: #define WH_JOURNALRECORD 0
272: #define WH_JOURNALPLAYBACK 1
273: #define WH_KEYBOARD 2
274: #define WH_GETMESSAGE 3
275: #define WH_CALLWNDPROC 4
276: #define WH_CBT 5
277: #define WH_SYSMSGFILTER 6
278: #define WH_MOUSE 7
279: #define WH_HARDWARE 8
280: #define WH_DEBUG 9
281: #define WH_SHELL 10
282: #define WH_MAX 10
283:
284:
285: /* Obsolete hook codes (NO LONGER SUPPORTED) */
286: #define HC_GETLPLPFN (-3)
287: #define HC_LPLPFNNEXT (-2)
288: #define HC_LPFNNEXT (-1)
289:
290: /* Hook Codes */
291: #define HC_ACTION 0
292: #define HC_GETNEXT 1
293: #define HC_SKIP 2
294: #define HC_NOREMOVE 3
295: #define HC_NOREM HC_NOREMOVE
296: #define HC_SYSMODALON 4
297: #define HC_SYSMODALOFF 5
298:
299: /* CBT Hook Codes */
300: #define HCBT_MOVESIZE 0
301: #define HCBT_MINMAX 1
302: #define HCBT_QS 2
303: #define HCBT_CREATEWND 3
304: #define HCBT_DESTROYWND 4
305: #define HCBT_ACTIVATE 5
306: #define HCBT_CLICKSKIPPED 6
307: #define HCBT_KEYSKIPPED 7
308: #define HCBT_SYSCOMMAND 8
309: #define HCBT_SETFOCUS 9
310:
311: /*
312: * HCBT_CREATEWND parameters pointed to by lParam
313: */
314: typedef struct tagCBT_CREATEWNDA
315: {
316: struct tagCREATESTRUCTA *lpcs;
317: HWND hwndInsertAfter;
318: } CBT_CREATEWNDA, *LPCBT_CREATEWNDA;
319: /*
320: * HCBT_CREATEWND parameters pointed to by lParam
321: */
322: typedef struct tagCBT_CREATEWNDW
323: {
324: struct tagCREATESTRUCTW *lpcs;
325: HWND hwndInsertAfter;
326: } CBT_CREATEWNDW, *LPCBT_CREATEWNDW;
327: #ifdef UNICODE
328: #define CBT_CREATEWND CBT_CREATEWNDW
329: #define LPCBT_CREATEWND LPCBT_CREATEWNDW
330: #else
331: #define CBT_CREATEWND CBT_CREATEWNDA
332: #define LPCBT_CREATEWND LPCBT_CREATEWNDA
333: #endif // UNICODE
334:
335: /*
336: * HCBT_ACTIVATE structure pointed to by lParam
337: */
338: typedef struct tagCBTACTIVATESTRUCT
339: {
340: BOOL fMouse;
341: HWND hWndActive;
342: } CBTACTIVATESTRUCT, *LPCBTACTIVATESTRUCT;
343:
344: /* WH_MSGFILTER Filter Proc Codes */
345: #define MSGF_DIALOGBOX 0
346: #define MSGF_MESSAGEBOX 1
347: #define MSGF_MENU 2
348: #define MSGF_MOVE 3
349: #define MSGF_SIZE 4
350: #define MSGF_SCROLLBAR 5
351: #define MSGF_NEXTWINDOW 6
352: #define MSGF_MAINLOOP 8
353: #define MSGF_MAX 8
354: #define MSGF_USER 4096
355:
356: /* Shell support */
357: #define HSHELL_WINDOWCREATED 1
358: #define HSHELL_WINDOWDESTROYED 2
359: #define HSHELL_ACTIVATESHELLWINDOW 3
360:
361: /* Window Manager Hook Codes */
362: #define WC_INIT 1
363: #define WC_SWP 2
364: #define WC_DEFWINDOWPROC 3
365: #define WC_MINMAX 4
366: #define WC_MOVE 5
367: #define WC_SIZE 6
368: #define WC_DRAWCAPTION 7
369:
370: /* Message Structure used in Journaling */
371: typedef struct tagEVENTMSG {
372: UINT message;
373: UINT paramL;
374: UINT paramH;
375: DWORD time;
376: HWND hwnd;
377: } EVENTMSG, *PEVENTMSGMSG, NEAR *NPEVENTMSGMSG, FAR *LPEVENTMSGMSG;
378:
379: typedef struct tagEVENTMSG *PEVENTMSG, NEAR *NPEVENTMSG, FAR *LPEVENTMSG;
380:
381: /* Message structure used by WH_CALLWNDPROC */
382: typedef struct tagCWPSTRUCT {
383: LPARAM lParam;
384: WPARAM wParam;
385: DWORD message;
386: HWND hwnd;
387: } CWPSTRUCT, *PCWPSTRUCT, NEAR *NPCWPSTRUCT, FAR *LPCWPSTRUCT;
388:
389: /* Structure used by WH_DEBUG */
390: typedef struct tagDEBUGHOOKINFO
391: {
392: DWORD idThread;
393: LPARAM reserved;
394: LPARAM lParam;
395: WPARAM wParam;
396: int code;
397: } DEBUGHOOKINFO, *PDEBUGHOOKINFO, NEAR *NPDEBUGHOOKINFO, FAR* LPDEBUGHOOKINFO;
398:
399: typedef struct tagMOUSEHOOKSTRUCT {
400: POINT pt;
401: HWND hwnd;
402: UINT wHitTestCode;
403: DWORD dwExtraInfo;
404: } MOUSEHOOKSTRUCT, FAR *LPMOUSEHOOKSTRUCT, *PMOUSEHOOKSTRUCT;
405: #endif /* NOWH */
406:
407: /*
408: * Keyboard Layout API
409: */
410: #define HKL_PREV 0
411: #define HKL_NEXT 1
412:
413: #define KLF_ACTIVATE 0x1
414: #define KLF_SUBSTITUTE_OK 0x2
415: #define KLF_UNLOADPREVIOUS 0x4
416: #define KLF_REORDER 0x8
417:
418: /*
419: * Size of KeyboardLayoutName (number of characters), including nul terminator
420: */
421: #define KL_NAMELENGTH 9
422:
423: HKL LoadKeyboardLayoutA(LPCSTR pwszKLID, UINT Flags);
424: HKL LoadKeyboardLayoutW(LPCWSTR pwszKLID, UINT Flags);
425: #ifdef UNICODE
426: #define LoadKeyboardLayout LoadKeyboardLayoutW
427: #else
428: #define LoadKeyboardLayout LoadKeyboardLayoutA
429: #endif // !UNICODE
430: BOOL ActivateKeyboardLayout(HKL hkl, UINT Flags);
431: BOOL UnloadKeyboardLayout(HKL hkl);
432: BOOL GetKeyboardLayoutNameA(LPSTR pwszKLID);
433: BOOL GetKeyboardLayoutNameW(LPWSTR pwszKLID);
434: #ifdef UNICODE
435: #define GetKeyboardLayoutName GetKeyboardLayoutNameW
436: #else
437: #define GetKeyboardLayoutName GetKeyboardLayoutNameA
438: #endif // !UNICODE
439:
440: #ifndef NODESKTOP
441: /*
442: * Desktop-specific access flags
443: */
444: #define DESKTOP_ENUMWINDOWS 0x0001L
445: #define DESKTOP_CREATEWINDOW 0x0002L
446: #define DESKTOP_CREATEMENU 0x0004L
447: #define DESKTOP_HOOKCONTROL 0x0008L
448: #define DESKTOP_JOURNALRECORD 0x0010L
449: #define DESKTOP_JOURNALPLAYBACK 0x0020L
450: #define DESKTOP_ENUMERATE 0x0040L
451:
452: HDESK
453: WINAPI
454: GetThreadDesktop(
455: DWORD);
456:
457: #endif /* NODESKTOP */
458:
459: #ifndef NOWINDOWSTATION
460: /*
461: * Windowstation-specific access flags
462: */
463: #define WINSTA_ENUMDESKTOPS 0x0001L
464: #define WINSTA_READATTRIBUTES 0x0002L
465: #define WINSTA_ACCESSCLIPBOARD 0x0004L
466: #define WINSTA_CREATEDESKTOP 0x0008L
467: #define WINSTA_WRITEATTRIBUTES 0x0010L
468: #define WINSTA_ACCESSGLOBALATOMS 0x0020L
469: #define WINSTA_EXITWINDOWS 0x0040L
470: #define WINSTA_ENUMERATE 0x0100L
471: #define WINSTA_READSCREEN 0x0200L
472:
473: HWINSTA
474: WINAPI
475: GetProcessWindowStation(
476: VOID);
477: #endif /* NOWINDOWSTATION */
478:
479: #ifndef NOSECURITY
480: /*
481: * window-specific access flags
482: */
483: #define WIN_ACCESSWINDOW 0x0001L
484: #define WIN_ENUMERATE 0x0002L
485:
486: /*
487: * menu-specific access flags
488: */
489: #define MENU_ACCESSMENU 0x0001L
490:
491: BOOL
492: WINAPI
493: SetUserObjectSecurity(
494: HANDLE,
495: PSECURITY_INFORMATION,
496: PSECURITY_DESCRIPTOR);
497:
498: BOOL
499: WINAPI
500: GetUserObjectSecurity(
501: HANDLE,
502: PSECURITY_INFORMATION,
503: PSECURITY_DESCRIPTOR,
504: DWORD,
505: LPDWORD);
506:
507: #endif /* NOSECURITY */
508:
509: typedef struct tagWNDCLASSA {
510: UINT style;
511: WNDPROC lpfnWndProc;
512: int cbClsExtra;
513: int cbWndExtra;
514: HINSTANCE hInstance;
515: HICON hIcon;
516: HCURSOR hCursor;
517: HBRUSH hbrBackground;
518: LPCSTR lpszMenuName;
519: LPCSTR lpszClassName;
520: } WNDCLASSA, *PWNDCLASSA, NEAR *NPWNDCLASSA, FAR *LPWNDCLASSA;
521: typedef struct tagWNDCLASSW {
522: UINT style;
523: WNDPROC lpfnWndProc;
524: int cbClsExtra;
525: int cbWndExtra;
526: HINSTANCE hInstance;
527: HICON hIcon;
528: HCURSOR hCursor;
529: HBRUSH hbrBackground;
530: LPCWSTR lpszMenuName;
531: LPCWSTR lpszClassName;
532: } WNDCLASSW, *PWNDCLASSW, NEAR *NPWNDCLASSW, FAR *LPWNDCLASSW;
533: #ifdef UNICODE
534: #define WNDCLASS WNDCLASSW
535: #define PWNDCLASS PWNDCLASSW
536: #define NPWNDCLASS NPWNDCLASSW
537: #define LPWNDCLASS LPWNDCLASSW
538: #else
539: #define WNDCLASS WNDCLASSA
540: #define PWNDCLASS PWNDCLASSA
541: #define NPWNDCLASS NPWNDCLASSA
542: #define LPWNDCLASS LPWNDCLASSA
543: #endif // UNICODE
544:
545: #ifndef NOMSG
546:
547: /* Message structure */
548: typedef struct tagMSG {
549: HWND hwnd;
550: UINT message;
551: WPARAM wParam;
552: LPARAM lParam;
553: DWORD time;
554: POINT pt;
555: } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;
556:
557: #define POINTSTOPOINT(pt,pts) {(pt).x = (SHORT)LOWORD(pts); \
558: (pt).y = (SHORT)HIWORD(pts);}
559: #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y)))
560:
561:
562: #endif /* NOMSG */
563:
564: #ifndef NOWINOFFSETS
565:
566: /* Window field offsets for GetWindowLong() */
567: #define GWL_WNDPROC (-4)
568: #define GWL_HINSTANCE (-6)
569: #define GWL_HWNDPARENT (-8)
570: #define GWL_STYLE (-16)
571: #define GWL_EXSTYLE (-20)
572: #define GWL_USERDATA (-21)
573: #define GWL_ID (-12)
574:
575: /* Class field offsets for GetClassLong() */
576: #define GCL_MENUNAME (-8)
577: #define GCL_HBRBACKGROUND (-10)
578: #define GCL_HCURSOR (-12)
579: #define GCL_HICON (-14)
580: #define GCL_HMODULE (-16)
581: #define GCL_CBWNDEXTRA (-18)
582: #define GCL_CBCLSEXTRA (-20)
583: #define GCL_WNDPROC (-24)
584: #define GCL_STYLE (-26)
585: //!!!define GCW_ATOM (-32)
586:
587: #endif /* NOWINOFFSETS */
588:
589: #ifndef NOWINMESSAGES
590:
591: /* Window Messages */
592: #define WM_NULL 0x0000
593: #define WM_CREATE 0x0001
594: #define WM_DESTROY 0x0002
595: #define WM_MOVE 0x0003
596: #define WM_SIZE 0x0005
597: #define WM_ACTIVATE 0x0006
598: #define WM_SETFOCUS 0x0007
599: #define WM_KILLFOCUS 0x0008
600: #define WM_ENABLE 0x000A
601: #define WM_SETREDRAW 0x000B
602: #define WM_SETTEXT 0x000C
603: #define WM_GETTEXT 0x000D
604: #define WM_GETTEXTLENGTH 0x000E
605: #define WM_PAINT 0x000F
606: #define WM_CLOSE 0x0010
607: #define WM_QUERYENDSESSION 0x0011
608: #define WM_QUIT 0x0012
609: #define WM_QUERYOPEN 0x0013
610: #define WM_ERASEBKGND 0x0014
611: #define WM_SYSCOLORCHANGE 0x0015
612: #define WM_ENDSESSION 0x0016
613: #define WM_SHOWWINDOW 0x0018
614: #define WM_WININICHANGE 0x001A
615: #define WM_DEVMODECHANGE 0x001B
616: #define WM_ACTIVATEAPP 0x001C
617: #define WM_FONTCHANGE 0x001D
618: #define WM_TIMECHANGE 0x001E
619: #define WM_CANCELMODE 0x001F
620: #define WM_SETCURSOR 0x0020
621: #define WM_MOUSEACTIVATE 0x0021
622: #define WM_CHILDACTIVATE 0x0022
623: #define WM_QUEUESYNC 0x0023
624:
625: /*
626: * Struct pointed to by WM_GETMINMAXINFO lParam
627: */
628: typedef struct tagMINMAXINFO {
629: POINT ptReserved;
630: POINT ptMaxSize;
631: POINT ptMaxPosition;
632: POINT ptMinTrackSize;
633: POINT ptMaxTrackSize;
634: } MINMAXINFO, *PMINMAXINFO;
635: #define WM_GETMINMAXINFO 0x0024
636:
637:
638: #define WM_PAINTICON 0x0026
639: #define WM_ICONERASEBKGND 0x0027
640: #define WM_NEXTDLGCTL 0x0028
641: #define WM_SPOOLERSTATUS 0x002A
642: #define WM_DRAWITEM 0x002B
643: #define WM_MEASUREITEM 0x002C
644: #define WM_DELETEITEM 0x002D
645: #define WM_VKEYTOITEM 0x002E
646: #define WM_CHARTOITEM 0x002F
647: #define WM_SETFONT 0x0030
648: #define WM_GETFONT 0x0031
649: #define WM_SETHOTKEY 0x0032
650: #define WM_GETHOTKEY 0x0033
651: #define WM_QUERYDRAGICON 0x0037
652:
653: #define WM_COMPAREITEM 0x0039
654: #define WM_FULLSCREEN 0x003A
655:
656: #define WM_COMPACTING 0x0041
657: #define WM_OTHERWINDOWCREATED 0x0042
658: #define WM_OTHERWINDOWDESTROYED 0x0043
659: #define WM_COMMNOTIFY 0x0044
660: #define WM_HOTKEYEVENT 0x0045
661: #define WM_WINDOWPOSCHANGING 0x0046
662: #define WM_WINDOWPOSCHANGED 0x0047
663: #define WM_POWER 0x0048
664:
665: #define WM_NCCREATE 0x0081
666: #define WM_NCDESTROY 0x0082
667: #define WM_NCCALCSIZE 0x0083
668: #define WM_NCHITTEST 0x0084
669: #define WM_NCPAINT 0x0085
670: #define WM_NCACTIVATE 0x0086
671: #define WM_GETDLGCODE 0x0087
672: #define WM_NCMOUSEMOVE 0x00A0
673: #define WM_NCLBUTTONDOWN 0x00A1
674: #define WM_NCLBUTTONUP 0x00A2
675: #define WM_NCLBUTTONDBLCLK 0x00A3
676: #define WM_NCRBUTTONDOWN 0x00A4
677: #define WM_NCRBUTTONUP 0x00A5
678: #define WM_NCRBUTTONDBLCLK 0x00A6
679: #define WM_NCMBUTTONDOWN 0x00A7
680: #define WM_NCMBUTTONUP 0x00A8
681: #define WM_NCMBUTTONDBLCLK 0x00A9
682:
683: #define WM_KEYFIRST 0x0100
684: #define WM_KEYDOWN 0x0100
685: #define WM_KEYUP 0x0101
686: #define WM_CHAR 0x0102
687: #define WM_DEADCHAR 0x0103
688: #define WM_SYSKEYDOWN 0x0104
689: #define WM_SYSKEYUP 0x0105
690: #define WM_SYSCHAR 0x0106
691: #define WM_SYSDEADCHAR 0x0107
692: #define WM_KEYLAST 0x0108
693:
694: #define WM_INITDIALOG 0x0110
695: #define WM_COMMAND 0x0111
696: #define WM_SYSCOMMAND 0x0112
697: #define WM_TIMER 0x0113
698: #define WM_HSCROLL 0x0114
699: #define WM_VSCROLL 0x0115
700: #define WM_INITMENU 0x0116
701: #define WM_INITMENUPOPUP 0x0117
702: #define WM_MENUSELECT 0x011F
703: #define WM_MENUCHAR 0x0120
704: #define WM_ENTERIDLE 0x0121
705:
706: #define WM_CTLCOLORMSGBOX 0x0132
707: #define WM_CTLCOLOREDIT 0x0133
708: #define WM_CTLCOLORLISTBOX 0x0134
709: #define WM_CTLCOLORBTN 0x0135
710: #define WM_CTLCOLORDLG 0x0136
711: #define WM_CTLCOLORSCROLLBAR 0x0137
712: #define WM_CTLCOLORSTATIC 0x0138
713:
714: #define WM_MOUSEFIRST 0x0200
715: #define WM_MOUSEMOVE 0x0200
716: #define WM_LBUTTONDOWN 0x0201
717: #define WM_LBUTTONUP 0x0202
718: #define WM_LBUTTONDBLCLK 0x0203
719: #define WM_RBUTTONDOWN 0x0204
720: #define WM_RBUTTONUP 0x0205
721: #define WM_RBUTTONDBLCLK 0x0206
722: #define WM_MBUTTONDOWN 0x0207
723: #define WM_MBUTTONUP 0x0208
724: #define WM_MBUTTONDBLCLK 0x0209
725: #define WM_MOUSELAST 0x0209
726:
727: #define WM_PARENTNOTIFY 0x0210
728: #define WM_MDICREATE 0x0220
729: #define WM_MDIDESTROY 0x0221
730: #define WM_MDIACTIVATE 0x0222
731: #define WM_MDIRESTORE 0x0223
732: #define WM_MDINEXT 0x0224
733: #define WM_MDIMAXIMIZE 0x0225
734: #define WM_MDITILE 0x0226
735: #define WM_MDICASCADE 0x0227
736: #define WM_MDIICONARRANGE 0x0228
737: #define WM_MDIGETACTIVE 0x0229
738: #define WM_MDISETMENU 0x0230
739: #define WM_DROPFILES 0x0233
740: #define WM_MDIREFRESHMENU 0x0234
741:
742: #define WM_CUT 0x0300
743: #define WM_COPY 0x0301
744: #define WM_PASTE 0x0302
745: #define WM_CLEAR 0x0303
746: #define WM_UNDO 0x0304
747: #define WM_RENDERFORMAT 0x0305
748: #define WM_RENDERALLFORMATS 0x0306
749: #define WM_DESTROYCLIPBOARD 0x0307
750: #define WM_DRAWCLIPBOARD 0x0308
751: #define WM_PAINTCLIPBOARD 0x0309
752: #define WM_VSCROLLCLIPBOARD 0x030A
753: #define WM_SIZECLIPBOARD 0x030B
754: #define WM_ASKCBFORMATNAME 0x030C
755: #define WM_CHANGECBCHAIN 0x030D
756: #define WM_HSCROLLCLIPBOARD 0x030E
757: #define WM_QUERYNEWPALETTE 0x030F
758: #define WM_PALETTEISCHANGING 0x0310
759: #define WM_PALETTECHANGED 0x0311
760: #define WM_HOTKEY 0x0312
761:
762: /* PenWindows specific messages */
763: #define WM_PENWINFIRST 0x0380
764: #define WM_PENWINLAST 0x038F
765:
766: #define WM_MM_RESERVED_FIRST 0x03A0
767: #define WM_MM_RESERVED_LAST 0x03DF
768:
769: /* NOTE: All Message Numbers below 0x0400 are RESERVED. */
770:
771: /* Private Window Messages Start Here: */
772: #define WM_USER 0x0400
773:
774: #ifndef NONCMESSAGES
775:
776: /* WM_SYNCTASK Commands */
777: #define ST_BEGINSWP 0
778: #define ST_ENDSWP 1
779:
780: /* WinWhere() Area Codes */
781: #define HTERROR (-2)
782: #define HTTRANSPARENT (-1)
783: #define HTNOWHERE 0
784: #define HTCLIENT 1
785: #define HTCAPTION 2
786: #define HTSYSMENU 3
787: #define HTGROWBOX 4
788: #define HTSIZE HTGROWBOX
789: #define HTMENU 5
790: #define HTHSCROLL 6
791: #define HTVSCROLL 7
792: #define HTMINBUTTON 8
793: #define HTMAXBUTTON 9
794: #define HTLEFT 10
795: #define HTRIGHT 11
796: #define HTTOP 12
797: #define HTTOPLEFT 13
798: #define HTTOPRIGHT 14
799: #define HTBOTTOM 15
800: #define HTBOTTOMLEFT 16
801: #define HTBOTTOMRIGHT 17
802: #define HTBORDER 18
803: #define HTREDUCE HTMINBUTTON
804: #define HTZOOM HTMAXBUTTON
805: #define HTSIZEFIRST HTLEFT
806: #define HTSIZELAST HTBOTTOMRIGHT
807:
808: #endif /* NONCMESSAGES */
809:
810: /* WM_MOUSEACTIVATE Return Codes */
811: #define MA_ACTIVATE 1
812: #define MA_ACTIVATEANDEAT 2
813: #define MA_NOACTIVATE 3
814: #define MA_NOACTIVATEANDEAT 4
815:
816: UINT
817: WINAPI
818: RegisterWindowMessageA(
819: LPCSTR lpString);
820: UINT
821: WINAPI
822: RegisterWindowMessageW(
823: LPCWSTR lpString);
824: #ifdef UNICODE
825: #define RegisterWindowMessage RegisterWindowMessageW
826: #else
827: #define RegisterWindowMessage RegisterWindowMessageA
828: #endif // !UNICODE
829:
830: /* WM_SIZE message wParam values */
831: #define SIZE_RESTORED 0
832: #define SIZE_MINIMIZED 1
833: #define SIZE_MAXIMIZED 2
834: #define SIZE_MAXSHOW 3
835: #define SIZE_MAXHIDE 4
836:
837: /* Obsolete constant names */
838: #define SIZENORMAL SIZE_RESTORED
839: #define SIZEICONIC SIZE_MINIMIZED
840: #define SIZEFULLSCREEN SIZE_MAXIMIZED
841: #define SIZEZOOMSHOW SIZE_MAXSHOW
842: #define SIZEZOOMHIDE SIZE_MAXHIDE
843:
844: /* WM_WINDOWPOSCHANGING/CHANGED struct pointed to by lParam */
845: typedef struct tagWINDOWPOS {
846: HWND hwnd;
847: HWND hwndInsertAfter;
848: int x;
849: int y;
850: int cx;
851: int cy;
852: UINT flags;
853: } WINDOWPOS, *LPWINDOWPOS, *PWINDOWPOS;
854:
855: /* WM_NCCALCSIZE parameter structure */
856: typedef struct tagNCCALCSIZE_PARAMS {
857: RECT rgrc[3];
858: PWINDOWPOS lppos;
859: } NCCALCSIZE_PARAMS, *LPNCCALCSIZE_PARAMS;
860:
861: /* WM_NCCALCSIZE "window valid rect" return values */
862: #define WVR_ALIGNTOP 0x0010
863: #define WVR_ALIGNLEFT 0x0020
864: #define WVR_ALIGNBOTTOM 0x0040
865: #define WVR_ALIGNRIGHT 0x0080
866: #define WVR_HREDRAW 0x0100
867: #define WVR_VREDRAW 0x0200
868: #define WVR_REDRAW (WVR_HREDRAW | WVR_VREDRAW)
869: #define WVR_VALIDRECTS 0x0400
870:
871:
872: #ifndef NOKEYSTATES
873:
874: /* Key State Masks for Mouse Messages */
875: #define MK_LBUTTON 0x0001
876: #define MK_RBUTTON 0x0002
877: #define MK_SHIFT 0x0004
878: #define MK_CONTROL 0x0008
879: #define MK_MBUTTON 0x0010
880:
881: #endif /* NOKEYSTATES */
882:
883: #endif /* NOWINMESSAGES */
884:
885: #ifndef NOWINSTYLES
886:
887: /* Window Styles */
888: #define WS_OVERLAPPED 0x00000000L
889: #define WS_POPUP 0x80000000L
890: #define WS_CHILD 0x40000000L
891: #define WS_MINIMIZE 0x20000000L
892: #define WS_VISIBLE 0x10000000L
893: #define WS_DISABLED 0x08000000L
894: #define WS_CLIPSIBLINGS 0x04000000L
895: #define WS_CLIPCHILDREN 0x02000000L
896: #define WS_MAXIMIZE 0x01000000L
897: #define WS_CAPTION 0x00C00000L /* WS_BORDER | WS_DLGFRAME */
898: #define WS_BORDER 0x00800000L
899: #define WS_DLGFRAME 0x00400000L
900: #define WS_VSCROLL 0x00200000L
901: #define WS_HSCROLL 0x00100000L
902: #define WS_SYSMENU 0x00080000L
903: #define WS_THICKFRAME 0x00040000L
904: #define WS_GROUP 0x00020000L
905: #define WS_TABSTOP 0x00010000L
906:
907: #define WS_MINIMIZEBOX 0x00020000L
908: #define WS_MAXIMIZEBOX 0x00010000L
909:
910: #define WS_TILED WS_OVERLAPPED
911: #define WS_ICONIC WS_MINIMIZE
912: #define WS_SIZEBOX WS_THICKFRAME
913: #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
914:
915: /* Common Window Styles */
916: #define WS_OVERLAPPEDWINDOW (WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX)
917: #define WS_POPUPWINDOW (WS_POPUP | WS_BORDER | WS_SYSMENU)
918: #define WS_CHILDWINDOW (WS_CHILD)
919:
920: /* Extended Window Styles */
921: #define WS_EX_DLGMODALFRAME 0x00000001L
922: #define WS_EX_NOPARENTNOTIFY 0x00000004L
923: #define WS_EX_TOPMOST 0x00000008L
924: #define WS_EX_ACCEPTFILES 0x00000010L
925: #define WS_EX_TRANSPARENT 0x00000020L
926:
927: /* Class styles */
928: #define CS_VREDRAW 0x0001
929: #define CS_HREDRAW 0x0002
930: #define CS_KEYCVTWINDOW 0x0004
931: #define CS_DBLCLKS 0x0008
932: /* 0x0010 - reserved (see user\server\usersrv.h) */
933: #define CS_OWNDC 0x0020
934: #define CS_CLASSDC 0x0040
935: #define CS_PARENTDC 0x0080
936: #define CS_NOKEYCVT 0x0100
937: #define CS_NOCLOSE 0x0200
938: #define CS_SAVEBITS 0x0800
939: #define CS_BYTEALIGNCLIENT 0x1000
940: #define CS_BYTEALIGNWINDOW 0x2000
941: #define CS_GLOBALCLASS 0x4000 /* Global window class */
942:
943: #endif /* NOWINSTYLES */
944:
945: #ifndef NOCLIPBOARD
946:
947: /* Predefined Clipboard Formats */
948: #define CF_TEXT 1
949: #define CF_BITMAP 2
950: #define CF_METAFILEPICT 3
951: #define CF_SYLK 4
952: #define CF_DIF 5
953: #define CF_TIFF 6
954: #define CF_OEMTEXT 7
955: #define CF_DIB 8
956: #define CF_PALETTE 9
957: #define CF_PENDATA 10
958: #define CF_RIFF 11
959: #define CF_WAVE 12
960: #define CF_UNICODETEXT 13
961: #define CF_ENHMETAFILE 14
962:
963: #define CF_OWNERDISPLAY 0x0080
964: #define CF_DSPTEXT 0x0081
965: #define CF_DSPBITMAP 0x0082
966: #define CF_DSPMETAFILEPICT 0x0083
967: #define CF_DSPENHMETAFILE 0x008E
968:
969: /* "Private" formats don't get GlobalFree()'d */
970: #define CF_PRIVATEFIRST 0x0200
971: #define CF_PRIVATELAST 0x02FF
972:
973: /* "GDIOBJ" formats do get DeleteObject()'d */
974: #define CF_GDIOBJFIRST 0x0300
975: #define CF_GDIOBJLAST 0x03FF
976:
977: #endif /* NOCLIPBOARD */
978:
979: /*
980: * Defines for the fVirt field of the Accelerator table structure.
981: */
982: #define FVIRTKEY TRUE /* Assumed to be == TRUE */
983: #define FNOINVERT 0x02
984: #define FSHIFT 0x04
985: #define FCONTROL 0x08
986: #define FALT 0x10
987:
988: typedef struct tagACCEL {
989: BYTE fVirt; /* Also called the flags field */
990: WORD key;
991: WORD cmd;
992: } ACCEL, *LPACCEL;
993:
994: typedef struct tagPAINTSTRUCT {
995: HDC hdc;
996: BOOL fErase;
997: RECT rcPaint;
998: BOOL fRestore;
999: BOOL fIncUpdate;
1000: BYTE rgbReserved[32];
1001: } PAINTSTRUCT, *PPAINTSTRUCT, *NPPAINTSTRUCT, *LPPAINTSTRUCT;
1002:
1003: typedef struct tagCREATESTRUCTA {
1004: LPVOID lpCreateParams;
1005: HINSTANCE hInstance;
1006: HMENU hMenu;
1007: HWND hwndParent;
1008: int cy;
1009: int cx;
1010: int y;
1011: int x;
1012: LONG style;
1013: LPCSTR lpszName;
1014: LPCSTR lpszClass;
1015: DWORD dwExStyle;
1016: } CREATESTRUCTA, *LPCREATESTRUCTA;
1017: typedef struct tagCREATESTRUCTW {
1018: LPVOID lpCreateParams;
1019: HINSTANCE hInstance;
1020: HMENU hMenu;
1021: HWND hwndParent;
1022: int cy;
1023: int cx;
1024: int y;
1025: int x;
1026: LONG style;
1027: LPCWSTR lpszName;
1028: LPCWSTR lpszClass;
1029: DWORD dwExStyle;
1030: } CREATESTRUCTW, *LPCREATESTRUCTW;
1031: #ifdef UNICODE
1032: #define CREATESTRUCT CREATESTRUCTW
1033: #define LPCREATESTRUCT LPCREATESTRUCTW
1034: #else
1035: #define CREATESTRUCT CREATESTRUCTA
1036: #define LPCREATESTRUCT LPCREATESTRUCTA
1037: #endif // UNICODE
1038:
1039: typedef struct tagWINDOWPLACEMENT {
1040: UINT length;
1041: UINT flags;
1042: UINT showCmd;
1043: POINT ptMinPosition;
1044: POINT ptMaxPosition;
1045: RECT rcNormalPosition;
1046: } WINDOWPLACEMENT;
1047: typedef WINDOWPLACEMENT *PWINDOWPLACEMENT;
1048:
1049: #define WPF_SETMINPOSITION 0x0001
1050: #define WPF_RESTORETOMAXIMIZED 0x0002
1051:
1052: /* Owner draw control types */
1053: #define ODT_MENU 1
1054: #define ODT_LISTBOX 2
1055: #define ODT_COMBOBOX 3
1056: #define ODT_BUTTON 4
1057:
1058: /* Owner draw actions */
1059: #define ODA_DRAWENTIRE 0x0001
1060: #define ODA_SELECT 0x0002
1061: #define ODA_FOCUS 0x0004
1062:
1063: /* Owner draw state */
1064: #define ODS_SELECTED 0x0001
1065: #define ODS_GRAYED 0x0002
1066: #define ODS_DISABLED 0x0004
1067: #define ODS_CHECKED 0x0008
1068: #define ODS_FOCUS 0x0010
1069:
1070: /* MEASUREITEMSTRUCT for ownerdraw */
1071: typedef struct tagMEASUREITEMSTRUCT {
1072: UINT CtlType;
1073: UINT CtlID;
1074: UINT itemID;
1075: UINT itemWidth;
1076: UINT itemHeight;
1077: DWORD itemData;
1078: } MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT;
1079:
1080:
1081: /* DRAWITEMSTRUCT for ownerdraw */
1082: typedef struct tagDRAWITEMSTRUCT {
1083: UINT CtlType;
1084: UINT CtlID;
1085: UINT itemID;
1086: UINT itemAction;
1087: UINT itemState;
1088: HWND hwndItem;
1089: HDC hDC;
1090: RECT rcItem;
1091: DWORD itemData;
1092: } DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT;
1093:
1094: /* DELETEITEMSTRUCT for ownerdraw */
1095: typedef struct tagDELETEITEMSTRUCT {
1096: UINT CtlType;
1097: UINT CtlID;
1098: UINT itemID;
1099: HWND hwndItem;
1100: UINT itemData;
1101: } DELETEITEMSTRUCT, NEAR *PDELETEITEMSTRUCT, FAR *LPDELETEITEMSTRUCT;
1102:
1103: /* COMPAREITEMSTUCT for ownerdraw sorting */
1104: typedef struct tagCOMPAREITEMSTRUCT {
1105: UINT CtlType;
1106: UINT CtlID;
1107: HWND hwndItem;
1108: UINT itemID1;
1109: DWORD itemData1;
1110: UINT itemID2;
1111: DWORD itemData2;
1112: DWORD dwLocaleId;
1113: } COMPAREITEMSTRUCT, NEAR *PCOMPAREITEMSTRUCT, FAR *LPCOMPAREITEMSTRUCT;
1114:
1115: #ifndef NOMSG
1116:
1117: /* Message Function Templates */
1118: BOOL
1119: WINAPI
1120: GetMessageA(
1121: LPMSG lpMsg,
1122: HWND hWnd ,
1123: UINT wMsgFilterMin,
1124: UINT wMsgFilterMax);
1125: /* Message Function Templates */
1126: BOOL
1127: WINAPI
1128: GetMessageW(
1129: LPMSG lpMsg,
1130: HWND hWnd ,
1131: UINT wMsgFilterMin,
1132: UINT wMsgFilterMax);
1133: #ifdef UNICODE
1134: #define GetMessage GetMessageW
1135: #else
1136: #define GetMessage GetMessageA
1137: #endif // !UNICODE
1138:
1139: BOOL
1140: WINAPI
1141: TranslateMessage(
1142: CONST MSG *lpMsg);
1143:
1144: LONG
1145: WINAPI
1146: DispatchMessageA(
1147: CONST MSG *lpMsg);
1148: LONG
1149: WINAPI
1150: DispatchMessageW(
1151: CONST MSG *lpMsg);
1152: #ifdef UNICODE
1153: #define DispatchMessage DispatchMessageW
1154: #else
1155: #define DispatchMessage DispatchMessageA
1156: #endif // !UNICODE
1157:
1158: BOOL
1159: WINAPI
1160: PeekMessageA(
1161: LPMSG lpMsg,
1162: HWND hWnd ,
1163: UINT wMsgFilterMin,
1164: UINT wMsgFilterMax,
1165: UINT wRemoveMsg);
1166: BOOL
1167: WINAPI
1168: PeekMessageW(
1169: LPMSG lpMsg,
1170: HWND hWnd ,
1171: UINT wMsgFilterMin,
1172: UINT wMsgFilterMax,
1173: UINT wRemoveMsg);
1174: #ifdef UNICODE
1175: #define PeekMessage PeekMessageW
1176: #else
1177: #define PeekMessage PeekMessageA
1178: #endif // !UNICODE
1179:
1180: /* PeekMessage() Options */
1181: #define PM_NOREMOVE 0x0000
1182: #define PM_REMOVE 0x0001
1183: #define PM_NOYIELD 0x0002
1184:
1185: #endif /* NOMSG */
1186:
1187: BOOL
1188: WINAPI
1189: RegisterHotKey(
1190: HWND hwnd ,
1191: int id,
1192: UINT fsModifiers,
1193: UINT vk);
1194:
1195: BOOL
1196: WINAPI
1197: UnregisterHotKey(
1198: HWND hwnd,
1199: int id);
1200:
1201: #define MOD_ALT 0x0001
1202: #define MOD_CONTROL 0x0002
1203: #define MOD_SHIFT 0x0004
1204:
1205: #define IDHOT_SNAPWINDOW (-1) /* SHIFT-PRINTSCRN */
1206: #define IDHOT_SNAPDESKTOP (-2) /* PRINTSCRN */
1207:
1208: #ifdef WIN_INTERNAL
1209: #ifndef LSTRING
1210: #define NOLSTRING
1211: #endif
1212: #ifndef LFILEIO
1213: #define NOLFILEIO
1214: #endif
1215: #endif
1216:
1217:
1218: #define EWX_LOGOFF 0
1219: #define EWX_SHUTDOWN 1
1220: #define EWX_REBOOT 2
1221: #define EWX_FORCE 4
1222:
1223:
1224: #define ExitWindows(dwReserved, Code) ExitWindowsEx(EWX_LOGOFF, (-1))
1225:
1226: BOOL
1227: WINAPI
1228: ExitWindowsEx(
1229: UINT uFlags,
1230: DWORD ForceTimeout);
1231:
1232: BOOL
1233: WINAPI
1234: SwapMouseButton(
1235: BOOL);
1236:
1237: DWORD
1238: WINAPI
1239: GetMessagePos(
1240: VOID);
1241:
1242: LONG
1243: WINAPI
1244: GetMessageTime(
1245: VOID);
1246:
1247: LONG
1248: WINAPI
1249: GetMessageExtraInfo(
1250: VOID);
1251:
1252: LRESULT
1253: WINAPI
1254: SendMessageA(
1255: HWND hWnd,
1256: UINT Msg,
1257: WPARAM wParam,
1258: LPARAM lParam);
1259: LRESULT
1260: WINAPI
1261: SendMessageW(
1262: HWND hWnd,
1263: UINT Msg,
1264: WPARAM wParam,
1265: LPARAM lParam);
1266: #ifdef UNICODE
1267: #define SendMessage SendMessageW
1268: #else
1269: #define SendMessage SendMessageA
1270: #endif // !UNICODE
1271:
1272: BOOL
1273: WINAPI
1274: SendNotifyMessageA(
1275: HWND hwnd,
1276: UINT Msg,
1277: WPARAM wParam,
1278: LPARAM lParam);
1279: BOOL
1280: WINAPI
1281: SendNotifyMessageW(
1282: HWND hwnd,
1283: UINT Msg,
1284: WPARAM wParam,
1285: LPARAM lParam);
1286: #ifdef UNICODE
1287: #define SendNotifyMessage SendNotifyMessageW
1288: #else
1289: #define SendNotifyMessage SendNotifyMessageA
1290: #endif // !UNICODE
1291:
1292: BOOL
1293: WINAPI
1294: PostMessageA(
1295: HWND hWnd,
1296: UINT Msg,
1297: WPARAM wParam,
1298: LPARAM lParam);
1299: BOOL
1300: WINAPI
1301: PostMessageW(
1302: HWND hWnd,
1303: UINT Msg,
1304: WPARAM wParam,
1305: LPARAM lParam);
1306: #ifdef UNICODE
1307: #define PostMessage PostMessageW
1308: #else
1309: #define PostMessage PostMessageA
1310: #endif // !UNICODE
1311:
1312: BOOL
1313: WINAPI
1314: PostThreadMessageA(
1315: DWORD idThread,
1316: UINT Msg,
1317: WPARAM wParam,
1318: LPARAM lParam);
1319: BOOL
1320: WINAPI
1321: PostThreadMessageW(
1322: DWORD idThread,
1323: UINT Msg,
1324: WPARAM wParam,
1325: LPARAM lParam);
1326: #ifdef UNICODE
1327: #define PostThreadMessage PostThreadMessageW
1328: #else
1329: #define PostThreadMessage PostThreadMessageA
1330: #endif // !UNICODE
1331:
1332: #define PostAppMessageA(idThread, wMsg, wParam, lParam)\
1333: PostThreadMessageA((DWORD)idThread, wMsg, wParam, lParam)
1334: #define PostAppMessageW(idThread, wMsg, wParam, lParam)\
1335: PostThreadMessageW((DWORD)idThread, wMsg, wParam, lParam)
1336: #ifdef UNICODE
1337: #define PostAppMessage PostAppMessageW
1338: #else
1339: #define PostAppMessage PostAppMessageA
1340: #endif // !UNICODE
1341:
1342: /* Special HWND value for use with PostMessage() and SendMessage() */
1343: #define HWND_BROADCAST ((HWND)0xffff)
1344:
1345: BOOL
1346: WINAPI
1347: AttachThreadInput(
1348: DWORD idAttach,
1349: DWORD idAttachTo,
1350: BOOL fAttach);
1351:
1352:
1353: BOOL
1354: WINAPI
1355: ReplyMessage(
1356: LRESULT);
1357:
1358: BOOL
1359: WINAPI
1360: WaitMessage(
1361: VOID);
1362:
1363: DWORD
1364: WINAPI
1365: WaitForInputIdle(
1366: HANDLE hProcess,
1367: DWORD dwMilliseconds);
1368:
1369: LRESULT
1370: WINAPI
1371: DefWindowProcA(
1372: HWND hWnd,
1373: UINT Msg,
1374: WPARAM wParam,
1375: LPARAM lParam);
1376: LRESULT
1377: WINAPI
1378: DefWindowProcW(
1379: HWND hWnd,
1380: UINT Msg,
1381: WPARAM wParam,
1382: LPARAM lParam);
1383: #ifdef UNICODE
1384: #define DefWindowProc DefWindowProcW
1385: #else
1386: #define DefWindowProc DefWindowProcA
1387: #endif // !UNICODE
1388:
1389: VOID
1390: WINAPI
1391: PostQuitMessage(
1392: int nExitCode);
1393:
1394: #ifdef STRICT
1395: LRESULT
1396: WINAPI
1397: CallWindowProcA(
1398: WNDPROC lpPrevWndFunc,
1399: HWND hWnd,
1400: UINT Msg,
1401: WPARAM wParam,
1402: LPARAM lParam);
1403: LRESULT
1404: WINAPI
1405: CallWindowProcW(
1406: WNDPROC lpPrevWndFunc,
1407: HWND hWnd,
1408: UINT Msg,
1409: WPARAM wParam,
1410: LPARAM lParam);
1411: #else
1412: LRESULT
1413: WINAPI
1414: CallWindowProcA(
1415: FARPROC lpPrevWndFunc,
1416: HWND hWnd,
1417: UINT Msg,
1418: WPARAM wParam,
1419: LPARAM lParam);
1420: LRESULT
1421: WINAPI
1422: CallWindowProcW(
1423: FARPROC lpPrevWndFunc,
1424: HWND hWnd,
1425: UINT Msg,
1426: WPARAM wParam,
1427: LPARAM lParam);
1428: #endif
1429: #ifdef UNICODE
1430: #define CallWindowProc CallWindowProcW
1431: #else
1432: #define CallWindowProc CallWindowProcA
1433: #endif // !UNICODE
1434:
1435: BOOL
1436: WINAPI
1437: InSendMessage(
1438: VOID);
1439:
1440: UINT
1441: WINAPI
1442: GetDoubleClickTime(
1443: VOID);
1444:
1445: BOOL
1446: WINAPI
1447: SetDoubleClickTime(
1448: UINT);
1449:
1450: ATOM
1451: WINAPI
1452: RegisterClassA(
1453: LPWNDCLASSA lpWndClass);
1454: ATOM
1455: WINAPI
1456: RegisterClassW(
1457: LPWNDCLASSW lpWndClass);
1458: #ifdef UNICODE
1459: #define RegisterClass RegisterClassW
1460: #else
1461: #define RegisterClass RegisterClassA
1462: #endif // !UNICODE
1463:
1464: BOOL
1465: WINAPI
1466: UnregisterClassA(
1467: LPCSTR lpClassName,
1468: HINSTANCE hInstance);
1469: BOOL
1470: WINAPI
1471: UnregisterClassW(
1472: LPCWSTR lpClassName,
1473: HINSTANCE hInstance);
1474: #ifdef UNICODE
1475: #define UnregisterClass UnregisterClassW
1476: #else
1477: #define UnregisterClass UnregisterClassA
1478: #endif // !UNICODE
1479:
1480: BOOL
1481: WINAPI
1482: GetClassInfoA(
1483: HINSTANCE hInstance ,
1484: LPCSTR lpClassName,
1485: LPWNDCLASSA lpWndClass);
1486: BOOL
1487: WINAPI
1488: GetClassInfoW(
1489: HINSTANCE hInstance ,
1490: LPCWSTR lpClassName,
1491: LPWNDCLASSW lpWndClass);
1492: #ifdef UNICODE
1493: #define GetClassInfo GetClassInfoW
1494: #else
1495: #define GetClassInfo GetClassInfoA
1496: #endif // !UNICODE
1497:
1498: #define CW_USEDEFAULT ((int)0x80000000)
1499:
1500: /* Special value for CreateWindow, et al. */
1501: #define HWND_DESKTOP ((HWND)0)
1502:
1503: HWND
1504: WINAPI
1505: CreateWindowExA(
1506: DWORD dwExStyle,
1507: LPCSTR lpClassName,
1508: LPCSTR lpWindowName,
1509: DWORD dwStyle,
1510: int X,
1511: int Y,
1512: int nWidth,
1513: int nHeight,
1514: HWND hWndParent ,
1515: HMENU hMenu,
1516: HINSTANCE hInstance,
1517: LPVOID lpParam);
1518: HWND
1519: WINAPI
1520: CreateWindowExW(
1521: DWORD dwExStyle,
1522: LPCWSTR lpClassName,
1523: LPCWSTR lpWindowName,
1524: DWORD dwStyle,
1525: int X,
1526: int Y,
1527: int nWidth,
1528: int nHeight,
1529: HWND hWndParent ,
1530: HMENU hMenu,
1531: HINSTANCE hInstance,
1532: LPVOID lpParam);
1533: #ifdef UNICODE
1534: #define CreateWindowEx CreateWindowExW
1535: #else
1536: #define CreateWindowEx CreateWindowExA
1537: #endif // !UNICODE
1538:
1539: #define CreateWindowA(lpClassName, lpWindowName, dwStyle, x, y,\
1540: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\
1541: CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y,\
1542: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)
1543: #define CreateWindowW(lpClassName, lpWindowName, dwStyle, x, y,\
1544: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)\
1545: CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y,\
1546: nWidth, nHeight, hwndParent, hMenu, hInstance, lpParam)
1547: #ifdef UNICODE
1548: #define CreateWindow CreateWindowW
1549: #else
1550: #define CreateWindow CreateWindowA
1551: #endif // !UNICODE
1552:
1553: BOOL
1554: WINAPI
1555: IsWindow(
1556: HWND hWnd);
1557:
1558: BOOL
1559: WINAPI
1560: IsChild(
1561: HWND hWndParent,
1562: HWND hWnd);
1563:
1564: BOOL
1565: WINAPI
1566: DestroyWindow(
1567: HWND hWnd);
1568:
1569: BOOL
1570: WINAPI
1571: ShowWindow(
1572: HWND hWnd,
1573: int nCmdShow);
1574:
1575: BOOL
1576: WINAPI
1577: FlashWindow(
1578: HWND hWnd,
1579: BOOL bInvert);
1580:
1581: BOOL
1582: WINAPI
1583: ShowOwnedPopups(
1584: HWND hWnd,
1585: BOOL fShow);
1586:
1587: BOOL
1588: WINAPI
1589: OpenIcon(
1590: HWND hWnd);
1591:
1592: BOOL
1593: WINAPI
1594: CloseWindow(
1595: HWND hWnd);
1596:
1597: BOOL
1598: WINAPI
1599: MoveWindow(
1600: HWND hWnd,
1601: int X,
1602: int Y,
1603: int nWidth,
1604: int nHeight,
1605: BOOL bRepaint);
1606:
1607: BOOL
1608: WINAPI
1609: SetWindowPos(
1610: HWND hWnd,
1611: HWND hWndInsertAfter ,
1612: int X,
1613: int Y,
1614: int cx,
1615: int cy,
1616: UINT uFlags);
1617:
1618: BOOL
1619: WINAPI
1620: GetWindowPlacement(
1621: HWND hwnd,
1622: WINDOWPLACEMENT *lpwndpl);
1623:
1624: BOOL
1625: WINAPI
1626: SetWindowPlacement(
1627: HWND hwnd,
1628: CONST WINDOWPLACEMENT *lpwndpl);
1629:
1630:
1631: #ifndef NODEFERWINDOWPOS
1632:
1633: HDWP
1634: WINAPI
1635: BeginDeferWindowPos(
1636: int nNumWindows);
1637:
1638: HDWP
1639: WINAPI
1640: DeferWindowPos(
1641: HDWP hWinPosInfo,
1642: HWND hWnd,
1643: HWND hWndInsertAfter ,
1644: int x,
1645: int y,
1646: int cx,
1647: int cy,
1648: UINT uFlags);
1649:
1650: BOOL
1651: WINAPI
1652: EndDeferWindowPos(
1653: HDWP hWinPosInfo);
1654:
1655: #endif /* NODEFERWINDOWPOS */
1656:
1657: BOOL
1658: WINAPI
1659: IsWindowVisible(
1660: HWND hWnd);
1661:
1662: BOOL
1663: WINAPI
1664: IsIconic(
1665: HWND hWnd);
1666:
1667: BOOL
1668: WINAPI
1669: AnyPopup(
1670: VOID);
1671:
1672: BOOL
1673: WINAPI
1674: BringWindowToTop(
1675: HWND hWnd);
1676:
1677: BOOL
1678: WINAPI
1679: IsZoomed(
1680: HWND hWnd);
1681:
1682: /* SetWindowPos Flags */
1683: #define SWP_NOSIZE 0x0001
1684: #define SWP_NOMOVE 0x0002
1685: #define SWP_NOZORDER 0x0004
1686: #define SWP_NOREDRAW 0x0008
1687: #define SWP_NOACTIVATE 0x0010
1688: #define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */
1689: #define SWP_SHOWWINDOW 0x0040
1690: #define SWP_HIDEWINDOW 0x0080
1691: #define SWP_NOCOPYBITS 0x0100
1692: #define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */
1693:
1694: #define SWP_DRAWFRAME SWP_FRAMECHANGED
1695: #define SWP_NOREPOSITION SWP_NOOWNERZORDER
1696:
1697:
1698: #define HWND_TOP ((HWND)0)
1699: #define HWND_BOTTOM ((HWND)1)
1700: #define HWND_TOPMOST ((HWND)-1)
1701: #define HWND_NOTOPMOST ((HWND)-2)
1702:
1703: #ifndef NOCTLMGR
1704:
1705: #ifndef RC_INVOKED // RC can't handle #pragmas
1706:
1707: /*
1708: * WARNING:
1709: * The following structures must NOT be DWORD padded because they are
1710: * followed by strings, etc that do not have to be DWORD aligned.
1711: */
1712: #pragma pack(2)
1713:
1714: typedef struct {
1715: DWORD style;
1716: DWORD dwExtendedStyle;
1717: WORD cdit;
1718: WORD x;
1719: WORD y;
1720: WORD cx;
1721: WORD cy;
1722: } DLGTEMPLATE;
1723: typedef DLGTEMPLATE *LPDLGTEMPLATEA;
1724: typedef DLGTEMPLATE *LPDLGTEMPLATEW;
1725: #ifdef UNICODE
1726: #define LPDLGTEMPLATE LPDLGTEMPLATEW
1727: #else
1728: #define LPDLGTEMPLATE LPDLGTEMPLATEA
1729: #endif // UNICODE
1730: typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEA;
1731: typedef CONST DLGTEMPLATE *LPCDLGTEMPLATEW;
1732: #ifdef UNICODE
1733: #define LPCDLGTEMPLATE LPCDLGTEMPLATEW
1734: #else
1735: #define LPCDLGTEMPLATE LPCDLGTEMPLATEA
1736: #endif // UNICODE
1737:
1738: /*
1739: * Dialog item template (dit)
1740: */
1741: typedef struct {
1742: DWORD style;
1743: DWORD dwExtendedStyle;
1744: WORD x;
1745: WORD y;
1746: WORD cx;
1747: WORD cy;
1748: WORD id;
1749: } DLGITEMTEMPLATE;
1750: typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEA;
1751: typedef DLGITEMTEMPLATE *PDLGITEMTEMPLATEW;
1752: #ifdef UNICODE
1753: #define PDLGITEMTEMPLATE PDLGITEMTEMPLATEW
1754: #else
1755: #define PDLGITEMTEMPLATE PDLGITEMTEMPLATEA
1756: #endif // UNICODE
1757: typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEA;
1758: typedef DLGITEMTEMPLATE *LPDLGITEMTEMPLATEW;
1759: #ifdef UNICODE
1760: #define LPDLGITEMTEMPLATE LPDLGITEMTEMPLATEW
1761: #else
1762: #define LPDLGITEMTEMPLATE LPDLGITEMTEMPLATEA
1763: #endif // UNICODE
1764:
1765: #pragma pack() // Resume normal packing
1766: #endif // !RC_INVOKED
1767:
1768: HWND
1769: WINAPI
1770: CreateDialogParamA(
1771: HINSTANCE hInstance,
1772: LPCSTR lpTemplateName,
1773: HWND hWndParent ,
1774: DLGPROC lpDialogFunc,
1775: LPARAM dwInitParam);
1776: HWND
1777: WINAPI
1778: CreateDialogParamW(
1779: HINSTANCE hInstance,
1780: LPCWSTR lpTemplateName,
1781: HWND hWndParent ,
1782: DLGPROC lpDialogFunc,
1783: LPARAM dwInitParam);
1784: #ifdef UNICODE
1785: #define CreateDialogParam CreateDialogParamW
1786: #else
1787: #define CreateDialogParam CreateDialogParamA
1788: #endif // !UNICODE
1789:
1790: HWND
1791: WINAPI
1792: CreateDialogIndirectParamA(
1793: HINSTANCE hInstance,
1794: LPCDLGTEMPLATEA lpTemplate,
1795: HWND hwndParent,
1796: DLGPROC lpDialogFunc,
1797: LPARAM dwInitParam);
1798: HWND
1799: WINAPI
1800: CreateDialogIndirectParamW(
1801: HINSTANCE hInstance,
1802: LPCDLGTEMPLATEW lpTemplate,
1803: HWND hwndParent,
1804: DLGPROC lpDialogFunc,
1805: LPARAM dwInitParam);
1806: #ifdef UNICODE
1807: #define CreateDialogIndirectParam CreateDialogIndirectParamW
1808: #else
1809: #define CreateDialogIndirectParam CreateDialogIndirectParamA
1810: #endif // !UNICODE
1811:
1812: #define CreateDialogA(hInstance, lpName, hwndParent, lpDialogFunc) \
1813: CreateDialogParamA(hInstance, lpName, hwndParent, lpDialogFunc, 0L)
1814: #define CreateDialogW(hInstance, lpName, hwndParent, lpDialogFunc) \
1815: CreateDialogParamW(hInstance, lpName, hwndParent, lpDialogFunc, 0L)
1816: #ifdef UNICODE
1817: #define CreateDialog CreateDialogW
1818: #else
1819: #define CreateDialog CreateDialogA
1820: #endif // !UNICODE
1821:
1822: #define CreateDialogIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
1823: CreateDialogIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
1824: #define CreateDialogIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
1825: CreateDialogIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
1826: #ifdef UNICODE
1827: #define CreateDialogIndirect CreateDialogIndirectW
1828: #else
1829: #define CreateDialogIndirect CreateDialogIndirectA
1830: #endif // !UNICODE
1831:
1832: int
1833: WINAPI
1834: DialogBoxParamA(
1835: HINSTANCE hInstance,
1836: LPCSTR lpTemplateName,
1837: HWND hWndParent ,
1838: DLGPROC lpDialogFunc,
1839: LPARAM dwInitParam);
1840: int
1841: WINAPI
1842: DialogBoxParamW(
1843: HINSTANCE hInstance,
1844: LPCWSTR lpTemplateName,
1845: HWND hWndParent ,
1846: DLGPROC lpDialogFunc,
1847: LPARAM dwInitParam);
1848: #ifdef UNICODE
1849: #define DialogBoxParam DialogBoxParamW
1850: #else
1851: #define DialogBoxParam DialogBoxParamA
1852: #endif // !UNICODE
1853:
1854: int
1855: WINAPI
1856: DialogBoxIndirectParamA(
1857: HINSTANCE hInstance,
1858: LPDLGTEMPLATEA hDialogTemplate,
1859: HWND hWndParent ,
1860: DLGPROC lpDialogFunc,
1861: LPARAM dwInitParam);
1862: int
1863: WINAPI
1864: DialogBoxIndirectParamW(
1865: HINSTANCE hInstance,
1866: LPDLGTEMPLATEW hDialogTemplate,
1867: HWND hWndParent ,
1868: DLGPROC lpDialogFunc,
1869: LPARAM dwInitParam);
1870: #ifdef UNICODE
1871: #define DialogBoxIndirectParam DialogBoxIndirectParamW
1872: #else
1873: #define DialogBoxIndirectParam DialogBoxIndirectParamA
1874: #endif // !UNICODE
1875:
1876: #define DialogBoxA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
1877: DialogBoxParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
1878: #define DialogBoxW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
1879: DialogBoxParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
1880: #ifdef UNICODE
1881: #define DialogBox DialogBoxW
1882: #else
1883: #define DialogBox DialogBoxA
1884: #endif // !UNICODE
1885:
1886: #define DialogBoxIndirectA(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
1887: DialogBoxIndirectParamA(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
1888: #define DialogBoxIndirectW(hInstance, lpTemplate, hwndParent, lpDialogFunc) \
1889: DialogBoxIndirectParamW(hInstance, lpTemplate, hwndParent, lpDialogFunc, 0L)
1890: #ifdef UNICODE
1891: #define DialogBoxIndirect DialogBoxIndirectW
1892: #else
1893: #define DialogBoxIndirect DialogBoxIndirectA
1894: #endif // !UNICODE
1895:
1896: BOOL
1897: WINAPI
1898: EndDialog(
1899: HWND hDlg,
1900: int nResult);
1901:
1902: HWND
1903: WINAPI
1904: GetDlgItem(
1905: HWND hDlg,
1906: int nIDDlgItem);
1907:
1908: BOOL
1909: WINAPI
1910: SetDlgItemInt(
1911: HWND hDlg,
1912: int nIDDlgItem,
1913: UINT uValue,
1914: BOOL bSigned);
1915:
1916: UINT
1917: WINAPI
1918: GetDlgItemInt(
1919: HWND hDlg,
1920: int nIDDlgItem,
1921: BOOL *lpTranslated,
1922: BOOL bSigned);
1923:
1924: BOOL
1925: WINAPI
1926: SetDlgItemTextA(
1927: HWND hDlg,
1928: int nIDDlgItem,
1929: LPCSTR lpString);
1930: BOOL
1931: WINAPI
1932: SetDlgItemTextW(
1933: HWND hDlg,
1934: int nIDDlgItem,
1935: LPCWSTR lpString);
1936: #ifdef UNICODE
1937: #define SetDlgItemText SetDlgItemTextW
1938: #else
1939: #define SetDlgItemText SetDlgItemTextA
1940: #endif // !UNICODE
1941:
1942: UINT
1943: WINAPI
1944: GetDlgItemTextA(
1945: HWND hDlg,
1946: int nIDDlgItem,
1947: LPSTR lpString,
1948: int nMaxCount);
1949: UINT
1950: WINAPI
1951: GetDlgItemTextW(
1952: HWND hDlg,
1953: int nIDDlgItem,
1954: LPWSTR lpString,
1955: int nMaxCount);
1956: #ifdef UNICODE
1957: #define GetDlgItemText GetDlgItemTextW
1958: #else
1959: #define GetDlgItemText GetDlgItemTextA
1960: #endif // !UNICODE
1961:
1962: BOOL
1963: WINAPI
1964: CheckDlgButton(
1965: HWND hDlg,
1966: int nIDButton,
1967: UINT uCheck);
1968:
1969: BOOL
1970: WINAPI
1971: CheckRadioButton(
1972: HWND hDlg,
1973: int nIDFirstButton,
1974: int nIDLastButton,
1975: int nIDCheckButton);
1976:
1977: UINT
1978: WINAPI
1979: IsDlgButtonChecked(
1980: HWND hDlg,
1981: int nIDButton);
1982:
1983: LONG
1984: WINAPI
1985: SendDlgItemMessageA(
1986: HWND hDlg,
1987: int nIDDlgItem,
1988: UINT Msg,
1989: WPARAM wParam,
1990: LPARAM lParam);
1991: LONG
1992: WINAPI
1993: SendDlgItemMessageW(
1994: HWND hDlg,
1995: int nIDDlgItem,
1996: UINT Msg,
1997: WPARAM wParam,
1998: LPARAM lParam);
1999: #ifdef UNICODE
2000: #define SendDlgItemMessage SendDlgItemMessageW
2001: #else
2002: #define SendDlgItemMessage SendDlgItemMessageA
2003: #endif // !UNICODE
2004:
2005: HWND
2006: WINAPI
2007: GetNextDlgGroupItem(
2008: HWND hDlg,
2009: HWND hCtl,
2010: BOOL bPrevious);
2011:
2012: HWND
2013: WINAPI
2014: GetNextDlgTabItem(
2015: HWND hDlg,
2016: HWND hCtl,
2017: BOOL bPrevious);
2018:
2019: int
2020: WINAPI
2021: GetDlgCtrlID(
2022: HWND hWnd);
2023:
2024: long
2025: WINAPI
2026: GetDialogBaseUnits(VOID);
2027:
2028: LRESULT
2029: WINAPI
2030: DefDlgProcA(
2031: HWND hDlg,
2032: UINT Msg,
2033: WPARAM wParam,
2034: LPARAM lParam);
2035: LRESULT
2036: WINAPI
2037: DefDlgProcW(
2038: HWND hDlg,
2039: UINT Msg,
2040: WPARAM wParam,
2041: LPARAM lParam);
2042: #ifdef UNICODE
2043: #define DefDlgProc DefDlgProcW
2044: #else
2045: #define DefDlgProc DefDlgProcA
2046: #endif // !UNICODE
2047:
2048: /*
2049: * Window extra byted needed for private dialog classes.
2050: */
2051: #define DLGWINDOWEXTRA 30
2052:
2053: #endif /* NOCTLMGR */
2054:
2055: #ifndef NOMSG
2056: BOOL
2057: WINAPI
2058: CallMsgFilter(
2059: LPMSG lpMsg,
2060: int nCode);
2061: #endif
2062:
2063: #ifndef NOCLIPBOARD
2064:
2065: /* Clipboard Manager Functions */
2066: BOOL
2067: WINAPI
2068: OpenClipboard(
2069: HWND hWnd);
2070:
2071: BOOL
2072: WINAPI
2073: CloseClipboard(
2074: VOID);
2075:
2076: HWND
2077: WINAPI
2078: GetClipboardOwner(
2079: VOID);
2080:
2081: HWND
2082: WINAPI
2083: SetClipboardViewer(
2084: HWND );
2085:
2086: HWND
2087: WINAPI
2088: GetClipboardViewer(VOID);
2089:
2090: BOOL
2091: WINAPI
2092: ChangeClipboardChain(
2093: HWND,
2094: HWND);
2095:
2096: HANDLE
2097: WINAPI
2098: SetClipboardData(
2099: UINT uFormat,
2100: HANDLE hMem);
2101:
2102: HANDLE
2103: WINAPI
2104: GetClipboardData(
2105: UINT uFormat);
2106:
2107: UINT
2108: WINAPI
2109: RegisterClipboardFormatA(
2110: LPCSTR);
2111: UINT
2112: WINAPI
2113: RegisterClipboardFormatW(
2114: LPCWSTR);
2115: #ifdef UNICODE
2116: #define RegisterClipboardFormat RegisterClipboardFormatW
2117: #else
2118: #define RegisterClipboardFormat RegisterClipboardFormatA
2119: #endif // !UNICODE
2120:
2121: int
2122: WINAPI
2123: CountClipboardFormats(
2124: VOID);
2125:
2126: UINT
2127: WINAPI
2128: EnumClipboardFormats(
2129: UINT);
2130:
2131: int
2132: WINAPI
2133: GetClipboardFormatNameA(
2134: UINT,
2135: LPSTR,
2136: int);
2137: int
2138: WINAPI
2139: GetClipboardFormatNameW(
2140: UINT,
2141: LPWSTR,
2142: int);
2143: #ifdef UNICODE
2144: #define GetClipboardFormatName GetClipboardFormatNameW
2145: #else
2146: #define GetClipboardFormatName GetClipboardFormatNameA
2147: #endif // !UNICODE
2148:
2149: BOOL
2150: WINAPI
2151: EmptyClipboard(
2152: VOID);
2153:
2154: BOOL
2155: WINAPI
2156: IsClipboardFormatAvailable(
2157: UINT);
2158:
2159: int
2160: WINAPI
2161: GetPriorityClipboardFormat(
2162: UINT *,
2163: int);
2164:
2165: HWND
2166: WINAPI
2167: GetOpenClipboardWindow(
2168: VOID);
2169:
2170: #endif /* NOCLIPBOARD */
2171:
2172: /* Character Translation Routines */
2173:
2174: BOOL
2175: WINAPI
2176: CharToOemA(
2177: LPCSTR,
2178: LPSTR);
2179: BOOL
2180: WINAPI
2181: CharToOemW(
2182: LPCWSTR,
2183: LPSTR);
2184: #ifdef UNICODE
2185: #define CharToOem CharToOemW
2186: #else
2187: #define CharToOem CharToOemA
2188: #endif // !UNICODE
2189:
2190: BOOL
2191: WINAPI
2192: OemToCharA(
2193: LPCSTR,
2194: LPSTR);
2195: BOOL
2196: WINAPI
2197: OemToCharW(
2198: LPCSTR,
2199: LPWSTR);
2200: #ifdef UNICODE
2201: #define OemToChar OemToCharW
2202: #else
2203: #define OemToChar OemToCharA
2204: #endif // !UNICODE
2205:
2206: BOOL
2207: WINAPI
2208: CharToOemBuffA(
2209: LPCSTR,
2210: LPSTR,
2211: DWORD);
2212: BOOL
2213: WINAPI
2214: CharToOemBuffW(
2215: LPCWSTR,
2216: LPSTR,
2217: DWORD);
2218: #ifdef UNICODE
2219: #define CharToOemBuff CharToOemBuffW
2220: #else
2221: #define CharToOemBuff CharToOemBuffA
2222: #endif // !UNICODE
2223:
2224: BOOL
2225: WINAPI
2226: OemToCharBuffA(
2227: LPCSTR,
2228: LPSTR,
2229: DWORD);
2230: BOOL
2231: WINAPI
2232: OemToCharBuffW(
2233: LPCSTR,
2234: LPWSTR,
2235: DWORD);
2236: #ifdef UNICODE
2237: #define OemToCharBuff OemToCharBuffW
2238: #else
2239: #define OemToCharBuff OemToCharBuffA
2240: #endif // !UNICODE
2241:
2242: LPSTR
2243: WINAPI
2244: CharUpperA(
2245: LPSTR);
2246: LPWSTR
2247: WINAPI
2248: CharUpperW(
2249: LPWSTR);
2250: #ifdef UNICODE
2251: #define CharUpper CharUpperW
2252: #else
2253: #define CharUpper CharUpperA
2254: #endif // !UNICODE
2255:
2256: DWORD
2257: WINAPI
2258: CharUpperBuffA(
2259: LPSTR,
2260: DWORD);
2261: DWORD
2262: WINAPI
2263: CharUpperBuffW(
2264: LPWSTR,
2265: DWORD);
2266: #ifdef UNICODE
2267: #define CharUpperBuff CharUpperBuffW
2268: #else
2269: #define CharUpperBuff CharUpperBuffA
2270: #endif // !UNICODE
2271:
2272: LPSTR
2273: WINAPI
2274: CharLowerA(
2275: LPSTR);
2276: LPWSTR
2277: WINAPI
2278: CharLowerW(
2279: LPWSTR);
2280: #ifdef UNICODE
2281: #define CharLower CharLowerW
2282: #else
2283: #define CharLower CharLowerA
2284: #endif // !UNICODE
2285:
2286: DWORD
2287: WINAPI
2288: CharLowerBuffA(
2289: LPSTR,
2290: DWORD);
2291: DWORD
2292: WINAPI
2293: CharLowerBuffW(
2294: LPWSTR,
2295: DWORD);
2296: #ifdef UNICODE
2297: #define CharLowerBuff CharLowerBuffW
2298: #else
2299: #define CharLowerBuff CharLowerBuffA
2300: #endif // !UNICODE
2301:
2302: LPSTR
2303: WINAPI
2304: CharNextA(
2305: LPCSTR);
2306: LPWSTR
2307: WINAPI
2308: CharNextW(
2309: LPCWSTR);
2310: #ifdef UNICODE
2311: #define CharNext CharNextW
2312: #else
2313: #define CharNext CharNextA
2314: #endif // !UNICODE
2315:
2316: LPSTR
2317: WINAPI
2318: CharPrevA(
2319: LPCSTR,
2320: LPCSTR);
2321: LPWSTR
2322: WINAPI
2323: CharPrevW(
2324: LPCWSTR,
2325: LPCWSTR);
2326: #ifdef UNICODE
2327: #define CharPrev CharPrevW
2328: #else
2329: #define CharPrev CharPrevA
2330: #endif // !UNICODE
2331:
2332: /* Compatibility defines for character translation routines */
2333: #define AnsiToOem CharToOemA
2334: #define OemToAnsi OemToCharA
2335: #define AnsiToOemBuff CharToOemBuffA
2336: #define OemToAnsiBuff OemToCharBuffA
2337: #define AnsiUpper CharUpperA
2338: #define AnsiUpperBuff CharUpperBuffA
2339: #define AnsiLower CharLowerA
2340: #define AnsiLowerBuff CharLowerBuffA
2341: #define AnsiNext CharNextA
2342: #define AnsiPrev CharPrevA
2343:
2344: #ifndef NOLANGUAGE
2345: /* Language dependent Routines */
2346:
2347: BOOL
2348: WINAPI
2349: IsCharAlphaA(
2350: CHAR);
2351: BOOL
2352: WINAPI
2353: IsCharAlphaW(
2354: WCHAR);
2355: #ifdef UNICODE
2356: #define IsCharAlpha IsCharAlphaW
2357: #else
2358: #define IsCharAlpha IsCharAlphaA
2359: #endif // !UNICODE
2360:
2361: BOOL
2362: WINAPI
2363: IsCharAlphaNumericA(
2364: CHAR);
2365: BOOL
2366: WINAPI
2367: IsCharAlphaNumericW(
2368: WCHAR);
2369: #ifdef UNICODE
2370: #define IsCharAlphaNumeric IsCharAlphaNumericW
2371: #else
2372: #define IsCharAlphaNumeric IsCharAlphaNumericA
2373: #endif // !UNICODE
2374:
2375: BOOL
2376: WINAPI
2377: IsCharUpperA(
2378: CHAR);
2379: BOOL
2380: WINAPI
2381: IsCharUpperW(
2382: WCHAR);
2383: #ifdef UNICODE
2384: #define IsCharUpper IsCharUpperW
2385: #else
2386: #define IsCharUpper IsCharUpperA
2387: #endif // !UNICODE
2388:
2389: BOOL
2390: WINAPI
2391: IsCharLowerA(
2392: CHAR);
2393: BOOL
2394: WINAPI
2395: IsCharLowerW(
2396: WCHAR);
2397: #ifdef UNICODE
2398: #define IsCharLower IsCharLowerW
2399: #else
2400: #define IsCharLower IsCharLowerA
2401: #endif // !UNICODE
2402:
2403: #endif
2404:
2405: HWND
2406: WINAPI
2407: SetFocus(
2408: HWND hWnd);
2409:
2410: HWND
2411: WINAPI
2412: GetActiveWindow(
2413: VOID);
2414:
2415: HWND
2416: WINAPI
2417: GetFocus(
2418: VOID);
2419:
2420: UINT
2421: WINAPI
2422: GetKBCodePage(
2423: VOID);
2424:
2425: SHORT
2426: WINAPI
2427: GetKeyState(
2428: int nVirtKey);
2429:
2430: SHORT
2431: WINAPI
2432: GetAsyncKeyState(
2433: int vKey);
2434:
2435: BOOL
2436: WINAPI
2437: GetKeyboardState(
2438: PBYTE lpKeyState);
2439:
2440: BOOL
2441: WINAPI
2442: SetKeyboardState(
2443: LPBYTE lpKeyState);
2444:
2445: int
2446: WINAPI
2447: GetKeyNameTextA(
2448: LONG lParam,
2449: LPSTR lpString,
2450: int nSize
2451: );
2452: int
2453: WINAPI
2454: GetKeyNameTextW(
2455: LONG lParam,
2456: LPWSTR lpString,
2457: int nSize
2458: );
2459: #ifdef UNICODE
2460: #define GetKeyNameText GetKeyNameTextW
2461: #else
2462: #define GetKeyNameText GetKeyNameTextA
2463: #endif // !UNICODE
2464:
2465: int
2466: WINAPI
2467: GetKeyboardType(
2468: int nTypeFlag);
2469:
2470: int
2471: WINAPI
2472: ToAscii(
2473: UINT uVirtKey,
2474: UINT uScanCode,
2475: PBYTE lpKeyState,
2476: LPWORD lpChar,
2477: UINT uFlags);
2478:
2479: int
2480: WINAPI
2481: ToUnicode(
2482: UINT wVirtKey,
2483: UINT wScanCode,
2484: PBYTE lpKeyState,
2485: LPDWORD lpChar,
2486: UINT wFlags);
2487:
2488: SHORT
2489: WINAPI
2490: VkKeyScanA(
2491: CHAR cChar);
2492: SHORT
2493: WINAPI
2494: VkKeyScanW(
2495: WCHAR cChar);
2496: #ifdef UNICODE
2497: #define VkKeyScan VkKeyScanW
2498: #else
2499: #define VkKeyScan VkKeyScanA
2500: #endif // !UNICODE
2501:
2502: UINT
2503: WINAPI
2504: MapVirtualKey(
2505: UINT uCode,
2506: UINT uMapType);
2507:
2508: BOOL
2509: WINAPI
2510: GetInputState(
2511: VOID);
2512:
2513: DWORD
2514: WINAPI
2515: GetQueueStatus(
2516: UINT flags);
2517:
2518: HWND
2519: WINAPI
2520: GetCapture(VOID);
2521:
2522: HWND
2523: WINAPI
2524: SetCapture(
2525: HWND hWnd);
2526:
2527: BOOL
2528: WINAPI
2529: ReleaseCapture(
2530: VOID);
2531:
2532: DWORD
2533: WINAPI
2534: MsgWaitForMultipleObjects(
2535: DWORD nCount,
2536: LPHANDLE pHandles,
2537: BOOL fWaitAll,
2538: DWORD dwMilliseconds,
2539: DWORD dwWakeMask);
2540:
2541: /* Queue status flags for GetQueueStatus() and MsgWaitForMultipleObjects() */
2542: #define QS_KEY 0x01
2543: #define QS_MOUSEMOVE 0x02
2544: #define QS_MOUSEBUTTON 0x04
2545: #define QS_MOUSE (QS_MOUSEMOVE | QS_MOUSEBUTTON)
2546: #define QS_POSTMESSAGE 0x08
2547: #define QS_TIMER 0x10
2548: #define QS_PAINT 0x20
2549: #define QS_SENDMESSAGE 0x40
2550: #define QS_HOTKEY 0x80
2551: #define QS_INPUT (QS_MOUSE | QS_KEY)
2552: #define QS_ALLEVENTS (QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY)
2553:
2554:
2555: UINT
2556: WINAPI
2557: GetSysInputMode(
2558: VOID);
2559:
2560: /* GetSysInputMode return values */
2561: #define IMD_NONE 0
2562: #define IMD_MENU 1
2563: #define IMD_DIALOGBOX 2
2564: #define IMD_NEXTWINDOW 3
2565: #define IMD_SCROLLBAR 4
2566: #define IMD_TITLEBUTTONTRACK 5
2567: #define IMD_MOVESIZETRACK 6
2568: #define IMD_SYSERRDLG 7
2569: #define IMD_DRAGOBJECT 8
2570: #define IMD_DRAGDETECT 9
2571:
2572:
2573: /* Windows Functions */
2574: UINT
2575: WINAPI
2576: SetTimer(
2577: HWND hwnd ,
2578: UINT nIDEvent,
2579: UINT uElapse,
2580: TIMERPROC lpTimerFunc);
2581:
2582: BOOL
2583: WINAPI
2584: KillTimer(
2585: HWND hWnd,
2586: UINT uIDEvent);
2587:
2588: BOOL
2589: WINAPI
2590: IsWindowUnicode(
2591: HWND hWnd);
2592:
2593: BOOL
2594: WINAPI
2595: EnableWindow(
2596: HWND hWnd,
2597: BOOL bEnable);
2598:
2599: BOOL
2600: WINAPI
2601: IsWindowEnabled(
2602: HWND hWnd);
2603:
2604: HACCEL
2605: WINAPI
2606: LoadAcceleratorsA(
2607: HINSTANCE hInstance,
2608: LPCSTR lpTableName);
2609: HACCEL
2610: WINAPI
2611: LoadAcceleratorsW(
2612: HINSTANCE hInstance,
2613: LPCWSTR lpTableName);
2614: #ifdef UNICODE
2615: #define LoadAccelerators LoadAcceleratorsW
2616: #else
2617: #define LoadAccelerators LoadAcceleratorsA
2618: #endif // !UNICODE
2619:
2620: HACCEL
2621: WINAPI
2622: CreateAcceleratorTable(
2623: LPACCEL, int);
2624:
2625: BOOL
2626: WINAPI
2627: DestroyAcceleratorTable(
2628: HACCEL);
2629:
2630: int
2631: WINAPI
2632: CopyAcceleratorTable(
2633: HACCEL,
2634: LPACCEL ,
2635: int);
2636:
2637: #ifndef NOMSG
2638: int
2639: WINAPI
2640: TranslateAccelerator(
2641: HWND hWnd,
2642: HACCEL hAccTable,
2643: LPMSG lpMsg);
2644: #endif
2645:
2646: #ifndef NOSYSMETRICS
2647:
2648: /* GetSystemMetrics() codes */
2649: #define SM_CXSCREEN 0
2650: #define SM_CYSCREEN 1
2651: #define SM_CXVSCROLL 2
2652: #define SM_CYHSCROLL 3
2653: #define SM_CYCAPTION 4
2654: #define SM_CXBORDER 5
2655: #define SM_CYBORDER 6
2656: #define SM_CXDLGFRAME 7
2657: #define SM_CYDLGFRAME 8
2658: #define SM_CYVTHUMB 9
2659: #define SM_CXHTHUMB 10
2660: #define SM_CXICON 11
2661: #define SM_CYICON 12
2662: #define SM_CXCURSOR 13
2663: #define SM_CYCURSOR 14
2664: #define SM_CYMENU 15
2665: #define SM_CXFULLSCREEN 16
2666: #define SM_CYFULLSCREEN 17
2667: #define SM_CYKANJIWINDOW 18
2668: #define SM_MOUSEPRESENT 19
2669: #define SM_CYVSCROLL 20
2670: #define SM_CXHSCROLL 21
2671: #define SM_DEBUG 22
2672: #define SM_SWAPBUTTON 23
2673: #define SM_RESERVED1 24
2674: #define SM_RESERVED2 25
2675: #define SM_RESERVED3 26
2676: #define SM_RESERVED4 27
2677: #define SM_CXMIN 28
2678: #define SM_CYMIN 29
2679: #define SM_CXSIZE 30
2680: #define SM_CYSIZE 31
2681: #define SM_CXFRAME 32
2682: #define SM_CYFRAME 33
2683: #define SM_CXMINTRACK 34
2684: #define SM_CYMINTRACK 35
2685: #define SM_CXDOUBLECLK 36
2686: #define SM_CYDOUBLECLK 37
2687: #define SM_CXICONSPACING 38
2688: #define SM_CYICONSPACING 39
2689: #define SM_MENUDROPALIGNMENT 40
2690: #define SM_PENWINDOWS 41
2691: #define SM_DBCSENABLED 42
2692: #define SM_CMOUSEBUTTONS 43
2693: #define SM_MAX 43
2694: #define SM_CMETRICS 44
2695:
2696: int
2697: WINAPI
2698: GetSystemMetrics(
2699: int nIndex);
2700:
2701: #endif /* NOSYSMETRICS */
2702:
2703: #ifndef NOMENUS
2704:
2705: HMENU
2706: WINAPI
2707: LoadMenuA(
2708: HINSTANCE hInstance,
2709: LPCSTR lpMenuName);
2710: HMENU
2711: WINAPI
2712: LoadMenuW(
2713: HINSTANCE hInstance,
2714: LPCWSTR lpMenuName);
2715: #ifdef UNICODE
2716: #define LoadMenu LoadMenuW
2717: #else
2718: #define LoadMenu LoadMenuA
2719: #endif // !UNICODE
2720:
2721: HMENU
2722: WINAPI
2723: LoadMenuIndirectA(
2724: LPMENUTEMPLATEA lpMenuTemplate);
2725: HMENU
2726: WINAPI
2727: LoadMenuIndirectW(
2728: LPMENUTEMPLATEW lpMenuTemplate);
2729: #ifdef UNICODE
2730: #define LoadMenuIndirect LoadMenuIndirectW
2731: #else
2732: #define LoadMenuIndirect LoadMenuIndirectA
2733: #endif // !UNICODE
2734:
2735: HMENU
2736: WINAPI
2737: GetMenu(
2738: HWND hWnd);
2739:
2740: BOOL
2741: WINAPI
2742: SetMenu(
2743: HWND hWnd,
2744: HMENU hMenu);
2745:
2746: BOOL
2747: WINAPI
2748: ChangeMenuA(
2749: HMENU,
2750: UINT,
2751: LPCTSTR,
2752: UINT,
2753: UINT);
2754: BOOL
2755: WINAPI
2756: ChangeMenuW(
2757: HMENU,
2758: UINT,
2759: LPCTSTR,
2760: UINT,
2761: UINT);
2762: #ifdef UNICODE
2763: #define ChangeMenu ChangeMenuW
2764: #else
2765: #define ChangeMenu ChangeMenuA
2766: #endif // !UNICODE
2767:
2768: BOOL
2769: WINAPI
2770: HiliteMenuItem(
2771: HWND hWnd,
2772: HMENU hMenu,
2773: UINT uIDHiliteItem,
2774: UINT uHilite);
2775:
2776: int
2777: WINAPI
2778: GetMenuStringA(
2779: HMENU hMenu,
2780: UINT uIDItem,
2781: LPSTR lpString,
2782: int nMaxCount,
2783: UINT uFlag);
2784: int
2785: WINAPI
2786: GetMenuStringW(
2787: HMENU hMenu,
2788: UINT uIDItem,
2789: LPWSTR lpString,
2790: int nMaxCount,
2791: UINT uFlag);
2792: #ifdef UNICODE
2793: #define GetMenuString GetMenuStringW
2794: #else
2795: #define GetMenuString GetMenuStringA
2796: #endif // !UNICODE
2797:
2798: UINT
2799: WINAPI
2800: GetMenuState(
2801: HMENU hMenu,
2802: UINT uId,
2803: UINT uFlags);
2804:
2805: BOOL
2806: WINAPI
2807: DrawMenuBar(
2808: HWND hWnd);
2809:
2810: HMENU
2811: WINAPI
2812: GetSystemMenu(
2813: HWND hWnd,
2814: BOOL bRevert);
2815:
2816: HMENU
2817: WINAPI
2818: CreateMenu(
2819: VOID);
2820:
2821: HMENU
2822: WINAPI
2823: CreatePopupMenu(
2824: VOID);
2825:
2826: BOOL
2827: WINAPI
2828: DestroyMenu(
2829: HMENU hMenu);
2830:
2831: DWORD
2832: WINAPI
2833: CheckMenuItem(
2834: HMENU hMenu,
2835: UINT uIDCheckItem,
2836: UINT uCheck);
2837:
2838: BOOL
2839: WINAPI
2840: EnableMenuItem(
2841: HMENU hMenu,
2842: UINT uIDEnableItem,
2843: UINT uEnable);
2844:
2845: HMENU
2846: WINAPI
2847: GetSubMenu(
2848: HMENU hMenu,
2849: int nPos);
2850:
2851: UINT
2852: WINAPI
2853: GetMenuItemID(
2854: HMENU hMenu,
2855: int nPos);
2856:
2857: int
2858: WINAPI
2859: GetMenuItemCount(
2860: HMENU hMenu);
2861:
2862: BOOL
2863: WINAPI
2864: InsertMenuA(
2865: HMENU hMenu,
2866: UINT uPosition,
2867: UINT uFlags,
2868: UINT uIDNewItem,
2869: LPCSTR lpNewItem
2870: );
2871: BOOL
2872: WINAPI
2873: InsertMenuW(
2874: HMENU hMenu,
2875: UINT uPosition,
2876: UINT uFlags,
2877: UINT uIDNewItem,
2878: LPCWSTR lpNewItem
2879: );
2880: #ifdef UNICODE
2881: #define InsertMenu InsertMenuW
2882: #else
2883: #define InsertMenu InsertMenuA
2884: #endif // !UNICODE
2885:
2886: BOOL
2887: WINAPI
2888: AppendMenuA(
2889: HMENU hMenu,
2890: UINT uFlags,
2891: UINT uIDNewItem,
2892: LPCSTR lpNewItem
2893: );
2894: BOOL
2895: WINAPI
2896: AppendMenuW(
2897: HMENU hMenu,
2898: UINT uFlags,
2899: UINT uIDNewItem,
2900: LPCWSTR lpNewItem
2901: );
2902: #ifdef UNICODE
2903: #define AppendMenu AppendMenuW
2904: #else
2905: #define AppendMenu AppendMenuA
2906: #endif // !UNICODE
2907:
2908: BOOL
2909: WINAPI
2910: ModifyMenuA(
2911: HMENU hMnu,
2912: UINT uPosition,
2913: UINT uFlags,
2914: UINT uIDNewItem,
2915: LPCSTR lpNewItem
2916: );
2917: BOOL
2918: WINAPI
2919: ModifyMenuW(
2920: HMENU hMnu,
2921: UINT uPosition,
2922: UINT uFlags,
2923: UINT uIDNewItem,
2924: LPCWSTR lpNewItem
2925: );
2926: #ifdef UNICODE
2927: #define ModifyMenu ModifyMenuW
2928: #else
2929: #define ModifyMenu ModifyMenuA
2930: #endif // !UNICODE
2931:
2932: BOOL
2933: WINAPI RemoveMenu(
2934: HMENU hMenu,
2935: UINT uPosition,
2936: UINT uFlags);
2937:
2938: BOOL
2939: WINAPI
2940: DeleteMenu(
2941: HMENU hMenu,
2942: UINT uPosition,
2943: UINT uFlags);
2944:
2945: BOOL
2946: WINAPI
2947: SetMenuItemBitmaps(
2948: HMENU hMenu,
2949: UINT uPosition,
2950: UINT uFlags,
2951: HBITMAP hBitmapUnchecked,
2952: HBITMAP hBitmapChecked);
2953:
2954: LONG
2955: WINAPI
2956: GetMenuCheckMarkDimensions(
2957: VOID);
2958:
2959: BOOL
2960: WINAPI
2961: TrackPopupMenu(
2962: HMENU hMenu,
2963: UINT uFlags,
2964: int x,
2965: int y,
2966: int nReserved,
2967: HWND hWnd,
2968: CONST RECT *prcRect);
2969:
2970: /* Flags for TrackPopupMenu */
2971: #define TPM_LEFTBUTTON 0x0000L
2972: #define TPM_RIGHTBUTTON 0x0002L
2973: #define TPM_LEFTALIGN 0x0000L
2974: #define TPM_CENTERALIGN 0x0004L
2975: #define TPM_RIGHTALIGN 0x0008L
2976:
2977: #endif /* NOMENUS */
2978:
2979: BOOL
2980: WINAPI
2981: DrawIcon(
2982: HDC,
2983: int,
2984: int,
2985: HICON);
2986:
2987: #ifndef NODRAWTEXT
2988:
2989: /* DrawText() Format Flags */
2990: #define DT_TOP 0x0000
2991: #define DT_LEFT 0x0000
2992: #define DT_CENTER 0x0001
2993: #define DT_RIGHT 0x0002
2994: #define DT_VCENTER 0x0004
2995: #define DT_BOTTOM 0x0008
2996: #define DT_WORDBREAK 0x0010
2997: #define DT_SINGLELINE 0x0020
2998: #define DT_EXPANDTABS 0x0040
2999: #define DT_TABSTOP 0x0080
3000: #define DT_NOCLIP 0x0100
3001: #define DT_EXTERNALLEADING 0x0200
3002: #define DT_CALCRECT 0x0400
3003: #define DT_NOPREFIX 0x0800
3004: #define DT_INTERNAL 0x1000
3005:
3006: #endif /* NODRAWTEXT */
3007:
3008: int
3009: WINAPI DrawTextA(
3010: HDC hDC,
3011: LPCSTR lpString,
3012: int nCount,
3013: LPRECT lpRect,
3014: UINT uFormat);
3015: int
3016: WINAPI DrawTextW(
3017: HDC hDC,
3018: LPCWSTR lpString,
3019: int nCount,
3020: LPRECT lpRect,
3021: UINT uFormat);
3022: #ifdef UNICODE
3023: #define DrawText DrawTextW
3024: #else
3025: #define DrawText DrawTextA
3026: #endif // !UNICODE
3027:
3028: BOOL
3029: WINAPI
3030: GrayStringA(
3031: HDC hDC,
3032: HBRUSH hBrush,
3033: GRAYSTRINGPROC lpOutputFunc,
3034: LPARAM lpData,
3035: int nCount,
3036: int X,
3037: int Y,
3038: int nWidth,
3039: int nHeight);
3040: BOOL
3041: WINAPI
3042: GrayStringW(
3043: HDC hDC,
3044: HBRUSH hBrush,
3045: GRAYSTRINGPROC lpOutputFunc,
3046: LPARAM lpData,
3047: int nCount,
3048: int X,
3049: int Y,
3050: int nWidth,
3051: int nHeight);
3052: #ifdef UNICODE
3053: #define GrayString GrayStringW
3054: #else
3055: #define GrayString GrayStringA
3056: #endif // !UNICODE
3057:
3058: LONG
3059: WINAPI
3060: TabbedTextOutA(
3061: HDC hDC,
3062: int X,
3063: int Y,
3064: LPCSTR lpString,
3065: int nCount,
3066: int nTabPositions,
3067: LPINT lpnTabStopPositions,
3068: int nTabOrigin);
3069: LONG
3070: WINAPI
3071: TabbedTextOutW(
3072: HDC hDC,
3073: int X,
3074: int Y,
3075: LPCWSTR lpString,
3076: int nCount,
3077: int nTabPositions,
3078: LPINT lpnTabStopPositions,
3079: int nTabOrigin);
3080: #ifdef UNICODE
3081: #define TabbedTextOut TabbedTextOutW
3082: #else
3083: #define TabbedTextOut TabbedTextOutA
3084: #endif // !UNICODE
3085:
3086: DWORD
3087: WINAPI
3088: GetTabbedTextExtentA(
3089: HDC hDC,
3090: LPCSTR lpString,
3091: int nCount,
3092: int nTabPositions,
3093: LPINT lpnTabStopPositions);
3094: DWORD
3095: WINAPI
3096: GetTabbedTextExtentW(
3097: HDC hDC,
3098: LPCWSTR lpString,
3099: int nCount,
3100: int nTabPositions,
3101: LPINT lpnTabStopPositions);
3102: #ifdef UNICODE
3103: #define GetTabbedTextExtent GetTabbedTextExtentW
3104: #else
3105: #define GetTabbedTextExtent GetTabbedTextExtentA
3106: #endif // !UNICODE
3107:
3108: BOOL
3109: WINAPI
3110: UpdateWindow(
3111: HWND hWnd);
3112:
3113: HWND
3114: WINAPI
3115: SetActiveWindow(
3116: HWND hWnd );
3117:
3118: HWND
3119: WINAPI
3120: GetForegroundWindow(
3121: VOID);
3122:
3123: BOOL
3124: WINAPI
3125: SetForegroundWindow(
3126: HWND hWnd);
3127:
3128: HWND
3129: WINAPI
3130: WindowFromDC(
3131: HDC hdc);
3132:
3133: HDC
3134: WINAPI
3135: GetDC(
3136: HWND hWnd );
3137:
3138: HDC
3139: WINAPI
3140: GetDCEx(
3141: HWND hwnd ,
3142: HRGN hrgnClip,
3143: DWORD flags);
3144:
3145: /* GetDCEx() flags */
3146: #define DCX_WINDOW 0x00000001L
3147: #define DCX_CACHE 0x00000002L
3148: #define DCX_NORESETATTRS 0x00000004L
3149: #define DCX_CLIPCHILDREN 0x00000008L
3150: #define DCX_CLIPSIBLINGS 0x00000010L
3151: #define DCX_PARENTCLIP 0x00000020L
3152:
3153: #define DCX_EXCLUDERGN 0x00000040L
3154: #define DCX_INTERSECTRGN 0x00000080L
3155:
3156: #define DCX_EXCLUDEUPDATE 0x00000100L
3157: #define DCX_INTERSECTUPDATE 0x00000200L
3158:
3159: #define DCX_LOCKWINDOWUPDATE 0x00000400L
3160:
3161:
3162: #define DCX_USESTYLE 0x00010000L
3163: #define DCX_NORECOMPUTE 0x00100000L
3164: #define DCX_VALIDATE 0x00200000L
3165:
3166:
3167: HDC
3168: WINAPI
3169: GetWindowDC(
3170: HWND hWnd );
3171:
3172: int
3173: WINAPI
3174: ReleaseDC(
3175: HWND hWnd,
3176: HDC hDC);
3177:
3178: HDC
3179: WINAPI
3180: BeginPaint(
3181: HWND hWnd,
3182: LPPAINTSTRUCT lpPaint);
3183:
3184: BOOL
3185: WINAPI
3186: EndPaint(
3187: HWND hWnd,
3188: LPPAINTSTRUCT lpPaint);
3189:
3190: BOOL
3191: WINAPI
3192: GetUpdateRect(
3193: HWND hWnd,
3194: LPRECT lpRect,
3195: BOOL bErase);
3196:
3197: int
3198: WINAPI
3199: GetUpdateRgn(
3200: HWND hWnd,
3201: HRGN hRgn,
3202: BOOL bErase);
3203:
3204: int
3205: WINAPI
3206: ExcludeUpdateRgn(
3207: HDC hDC,
3208: HWND hWnd);
3209:
3210: BOOL
3211: WINAPI
3212: InvalidateRect(
3213: HWND hWnd ,
3214: CONST RECT *lpRect,
3215: BOOL bErase);
3216:
3217: BOOL
3218: WINAPI
3219: ValidateRect(
3220: HWND hWnd ,
3221: CONST RECT *lpRect);
3222:
3223: BOOL
3224: WINAPI
3225: InvalidateRgn(
3226: HWND hWnd,
3227: HRGN hRgn,
3228: BOOL bErase);
3229:
3230: BOOL
3231: WINAPI
3232: ValidateRgn(
3233: HWND hWnd,
3234: HRGN hRgn);
3235:
3236:
3237: BOOL WINAPI RedrawWindow(
3238: HWND hwnd,
3239: CONST RECT *lprcUpdate,
3240: HRGN hrgnUpdate,
3241: UINT flags);
3242:
3243: /* RedrawWindow() flags */
3244: #define RDW_INVALIDATE 0x0001
3245: #define RDW_INTERNALPAINT 0x0002
3246: #define RDW_ERASE 0x0004
3247:
3248: #define RDW_VALIDATE 0x0008
3249: #define RDW_NOINTERNALPAINT 0x0010
3250: #define RDW_NOERASE 0x0020
3251:
3252: #define RDW_NOCHILDREN 0x0040
3253: #define RDW_ALLCHILDREN 0x0080
3254:
3255: #define RDW_UPDATENOW 0x0100
3256: #define RDW_ERASENOW 0x0200
3257:
3258:
3259: /* LockWindowUpdate API */
3260: BOOL
3261: WINAPI
3262: LockWindowUpdate(
3263: HWND hwndLock);
3264:
3265: BOOL
3266: WINAPI
3267: ScrollWindow(
3268: HWND hWnd,
3269: int XAmount,
3270: int YAmount,
3271: CONST RECT *lpRect,
3272: CONST RECT *lpClipRect);
3273:
3274: BOOL
3275: WINAPI
3276: ScrollDC(
3277: HDC hDC,
3278: int dx,
3279: int dy,
3280: CONST RECT *lprcScroll,
3281: CONST RECT *lprcClip ,
3282: HRGN hrgnUpdate,
3283: LPRECT lprcUpdate);
3284:
3285: int
3286: WINAPI
3287: ScrollWindowEx(
3288: HWND hwnd,
3289: int dx,
3290: int dy,
3291: CONST RECT *prcScroll,
3292: CONST RECT *prcClip ,
3293: HRGN hrgnUpdate,
3294: LPRECT prcUpdate,
3295: UINT flags);
3296:
3297: #define SW_SCROLLCHILDREN 0x0001 /* Scroll children within *lprcScroll. */
3298: #define SW_INVALIDATE 0x0002 /* Invalidate after scrolling */
3299: #define SW_ERASE 0x0004 /* If SW_INVALIDATE, don't send WM_ERASEBACKGROUND */
3300:
3301:
3302: #ifndef NOSCROLL
3303: int
3304: WINAPI
3305: SetScrollPos(
3306: HWND hWnd,
3307: int nBar,
3308: int nPos,
3309: BOOL bRedraw);
3310:
3311: int
3312: WINAPI
3313: GetScrollPos(
3314: HWND hWnd,
3315: int nBar);
3316:
3317: BOOL
3318: WINAPI
3319: SetScrollRange(
3320: HWND hWnd,
3321: int nBar,
3322: int nMinPos,
3323: int nMaxPos,
3324: BOOL bRedraw);
3325:
3326: BOOL
3327: WINAPI
3328: GetScrollRange(
3329: HWND hWnd,
3330: int nBar,
3331: LPINT lpMinPos,
3332: LPINT lpMaxPos);
3333:
3334: BOOL
3335: WINAPI
3336: ShowScrollBar(
3337: HWND hWnd,
3338: int wBar,
3339: BOOL bShow);
3340:
3341: BOOL
3342: WINAPI
3343: EnableScrollBar(
3344: HWND hwnd,
3345: UINT wSBflags,
3346: UINT wArrows);
3347: #endif
3348:
3349: BOOL
3350: WINAPI
3351: SetPropA(
3352: HWND hWnd,
3353: LPCSTR lpString,
3354: HANDLE hData);
3355: BOOL
3356: WINAPI
3357: SetPropW(
3358: HWND hWnd,
3359: LPCWSTR lpString,
3360: HANDLE hData);
3361: #ifdef UNICODE
3362: #define SetProp SetPropW
3363: #else
3364: #define SetProp SetPropA
3365: #endif // !UNICODE
3366:
3367: HANDLE
3368: WINAPI
3369: GetPropA(
3370: HWND hWnd,
3371: LPCSTR lpString);
3372: HANDLE
3373: WINAPI
3374: GetPropW(
3375: HWND hWnd,
3376: LPCWSTR lpString);
3377: #ifdef UNICODE
3378: #define GetProp GetPropW
3379: #else
3380: #define GetProp GetPropA
3381: #endif // !UNICODE
3382:
3383: HANDLE
3384: WINAPI
3385: RemovePropA(
3386: HWND hWnd,
3387: LPCSTR lpString);
3388: HANDLE
3389: WINAPI
3390: RemovePropW(
3391: HWND hWnd,
3392: LPCWSTR lpString);
3393: #ifdef UNICODE
3394: #define RemoveProp RemovePropW
3395: #else
3396: #define RemoveProp RemovePropA
3397: #endif // !UNICODE
3398:
3399: int
3400: WINAPI
3401: EnumPropsExA(
3402: HWND hWnd,
3403: PROPENUMPROC lpEnumFunc,
3404: LPARAM lParam);
3405: int
3406: WINAPI
3407: EnumPropsExW(
3408: HWND hWnd,
3409: PROPENUMPROC lpEnumFunc,
3410: LPARAM lParam);
3411: #ifdef UNICODE
3412: #define EnumPropsEx EnumPropsExW
3413: #else
3414: #define EnumPropsEx EnumPropsExA
3415: #endif // !UNICODE
3416:
3417: int
3418: WINAPI
3419: EnumPropsA(
3420: HWND hWnd,
3421: PROPENUMPROC lpEnumFunc);
3422: int
3423: WINAPI
3424: EnumPropsW(
3425: HWND hWnd,
3426: PROPENUMPROC lpEnumFunc);
3427: #ifdef UNICODE
3428: #define EnumProps EnumPropsW
3429: #else
3430: #define EnumProps EnumPropsA
3431: #endif // !UNICODE
3432:
3433: BOOL
3434: WINAPI
3435: SetWindowTextA(
3436: HWND hWnd,
3437: LPCSTR lpString);
3438: BOOL
3439: WINAPI
3440: SetWindowTextW(
3441: HWND hWnd,
3442: LPCWSTR lpString);
3443: #ifdef UNICODE
3444: #define SetWindowText SetWindowTextW
3445: #else
3446: #define SetWindowText SetWindowTextA
3447: #endif // !UNICODE
3448:
3449: int
3450: WINAPI
3451: GetWindowTextA(
3452: HWND hWnd,
3453: LPSTR lpString,
3454: int nMaxCount);
3455: int
3456: WINAPI
3457: GetWindowTextW(
3458: HWND hWnd,
3459: LPWSTR lpString,
3460: int nMaxCount);
3461: #ifdef UNICODE
3462: #define GetWindowText GetWindowTextW
3463: #else
3464: #define GetWindowText GetWindowTextA
3465: #endif // !UNICODE
3466:
3467: int
3468: WINAPI
3469: GetWindowTextLengthA(
3470: HWND hWnd);
3471: int
3472: WINAPI
3473: GetWindowTextLengthW(
3474: HWND hWnd);
3475: #ifdef UNICODE
3476: #define GetWindowTextLength GetWindowTextLengthW
3477: #else
3478: #define GetWindowTextLength GetWindowTextLengthA
3479: #endif // !UNICODE
3480:
3481: BOOL
3482: WINAPI
3483: GetClientRect(
3484: HWND hWnd,
3485: LPRECT lpRect);
3486:
3487: BOOL
3488: WINAPI
3489: GetWindowRect(
3490: HWND hWnd,
3491: LPRECT lpRect);
3492:
3493: BOOL
3494: WINAPI
3495: AdjustWindowRect(
3496: LPRECT lpRect,
3497: DWORD dwStyle,
3498: BOOL bMenu);
3499:
3500: BOOL
3501: WINAPI
3502: AdjustWindowRectEx(
3503: LPRECT lpRect,
3504: DWORD dwStyle,
3505: BOOL bMenu,
3506: DWORD dwExStyle);
3507:
3508: #ifndef NOMB
3509:
3510: /* MessageBox() Flags */
3511: #define MB_OK 0x0000L
3512: #define MB_OKCANCEL 0x0001L
3513: #define MB_ABORTRETRYIGNORE 0x0002L
3514: #define MB_YESNOCANCEL 0x0003L
3515: #define MB_YESNO 0x0004L
3516: #define MB_RETRYCANCEL 0x0005L
3517:
3518: #define MB_ICONHAND 0x0010L
3519: #define MB_ICONQUESTION 0x0020L
3520: #define MB_ICONEXCLAMATION 0x0030L
3521: #define MB_ICONASTERISK 0x0040L
3522:
3523: #define MB_ICONINFORMATION MB_ICONASTERISK
3524: #define MB_ICONSTOP MB_ICONHAND
3525:
3526: #define MB_DEFBUTTON1 0x0000L
3527: #define MB_DEFBUTTON2 0x0100L
3528: #define MB_DEFBUTTON3 0x0200L
3529:
3530: #define MB_APPLMODAL 0x0000L
3531: #define MB_SYSTEMMODAL 0x1000L
3532: #define MB_TASKMODAL 0x2000L
3533:
3534: #define MB_NOFOCUS 0x8000L
3535: #define MB_SETFOREGROUND 0x10000L
3536:
3537: #define MB_TYPEMASK 0x000FL
3538: #define MB_ICONMASK 0x00F0L
3539: #define MB_DEFMASK 0x0F00L
3540: #define MB_MODEMASK 0x3000L
3541: #define MB_MISCMASK 0xC000L
3542:
3543: int
3544: WINAPI
3545: MessageBoxExA(
3546: HWND hWnd ,
3547: LPCSTR lpText,
3548: LPCSTR lpCaption ,
3549: UINT uType,
3550: WORD wLanguageId);
3551: int
3552: WINAPI
3553: MessageBoxExW(
3554: HWND hWnd ,
3555: LPCWSTR lpText,
3556: LPCWSTR lpCaption ,
3557: UINT uType,
3558: WORD wLanguageId);
3559: #ifdef UNICODE
3560: #define MessageBoxEx MessageBoxExW
3561: #else
3562: #define MessageBoxEx MessageBoxExA
3563: #endif // !UNICODE
3564:
3565: #define MessageBoxA(hWnd, lpText, lpCaption, uType) \
3566: MessageBoxExA(hWnd, lpText, lpCaption, uType, 0)
3567: #define MessageBoxW(hWnd, lpText, lpCaption, uType) \
3568: MessageBoxExW(hWnd, lpText, lpCaption, uType, 0)
3569: #ifdef UNICODE
3570: #define MessageBox MessageBoxW
3571: #else
3572: #define MessageBox MessageBoxA
3573: #endif // !UNICODE
3574:
3575: BOOL
3576: WINAPI
3577: MessageBeep(
3578: UINT uType);
3579:
3580: #endif /* NOMB */
3581:
3582: int
3583: WINAPI
3584: ShowCursor(
3585: BOOL bShow);
3586:
3587: BOOL
3588: WINAPI
3589: SetCursorPos(
3590: int X,
3591: int Y);
3592:
3593: HCURSOR
3594: WINAPI
3595: SetCursor(
3596: HCURSOR hCursor );
3597:
3598: BOOL
3599: WINAPI
3600: GetCursorPos(
3601: LPPOINT lpPoint);
3602:
3603: BOOL
3604: WINAPI
3605: ClipCursor(
3606: CONST RECT *lpRect );
3607:
3608: BOOL
3609: WINAPI
3610: GetClipCursor(
3611: LPRECT lpRect);
3612:
3613: HCURSOR
3614: WINAPI
3615: GetCursor(
3616: VOID);
3617:
3618: BOOL
3619: WINAPI
3620: CreateCaret(
3621: HWND hWnd,
3622: HBITMAP hBitmap ,
3623: int nWidth,
3624: int nHeight);
3625:
3626: UINT
3627: WINAPI
3628: GetCaretBlinkTime(
3629: VOID);
3630:
3631: BOOL
3632: WINAPI
3633: SetCaretBlinkTime(
3634: UINT uMSeconds);
3635:
3636: BOOL
3637: WINAPI
3638: DestroyCaret(
3639: VOID);
3640:
3641: BOOL
3642: WINAPI
3643: HideCaret(
3644: HWND hWnd );
3645:
3646: BOOL
3647: WINAPI
3648: ShowCaret(
3649: HWND hWnd );
3650:
3651: BOOL
3652: WINAPI
3653: SetCaretPos(
3654: int X,
3655: int Y);
3656:
3657: BOOL
3658: WINAPI
3659: GetCaretPos(
3660: LPPOINT lpPoint);
3661:
3662: BOOL
3663: WINAPI
3664: ClientToScreen(
3665: HWND hWnd,
3666: LPPOINT lpPoint);
3667:
3668: BOOL
3669: WINAPI
3670: ScreenToClient(
3671: HWND hWnd,
3672: LPPOINT lpPoint);
3673:
3674: int
3675: WINAPI
3676: MapWindowPoints(
3677: HWND hWndFrom,
3678: HWND hWndTo,
3679: LPPOINT lpPoints,
3680: UINT cPoints);
3681:
3682: HWND
3683: WINAPI
3684: WindowFromPoint(
3685: POINT Point);
3686:
3687: HWND
3688: WINAPI
3689: ChildWindowFromPoint(
3690: HWND hWndParent,
3691: POINT Point);
3692:
3693: #ifndef NOCOLOR
3694:
3695: /* Color Types */
3696: #define CTLCOLOR_MSGBOX 0
3697: #define CTLCOLOR_EDIT 1
3698: #define CTLCOLOR_LISTBOX 2
3699: #define CTLCOLOR_BTN 3
3700: #define CTLCOLOR_DLG 4
3701: #define CTLCOLOR_SCROLLBAR 5
3702: #define CTLCOLOR_STATIC 6
3703: #define CTLCOLOR_MAX 8 /* three bits max */
3704:
3705: #define COLOR_SCROLLBAR 0
3706: #define COLOR_BACKGROUND 1
3707: #define COLOR_ACTIVECAPTION 2
3708: #define COLOR_INACTIVECAPTION 3
3709: #define COLOR_MENU 4
3710: #define COLOR_WINDOW 5
3711: #define COLOR_WINDOWFRAME 6
3712: #define COLOR_MENUTEXT 7
3713: #define COLOR_WINDOWTEXT 8
3714: #define COLOR_CAPTIONTEXT 9
3715: #define COLOR_ACTIVEBORDER 10
3716: #define COLOR_INACTIVEBORDER 11
3717: #define COLOR_APPWORKSPACE 12
3718: #define COLOR_HIGHLIGHT 13
3719: #define COLOR_HIGHLIGHTTEXT 14
3720: #define COLOR_BTNFACE 15
3721: #define COLOR_BTNSHADOW 16
3722: #define COLOR_GRAYTEXT 17
3723: #define COLOR_BTNTEXT 18
3724: #define COLOR_INACTIVECAPTIONTEXT 19
3725: #define COLOR_BTNHIGHLIGHT 20
3726: #define COLOR_ENDCOLORS COLOR_BTNHIGHLIGHT
3727: #define COLOR_MAX 20
3728:
3729: DWORD
3730: WINAPI
3731: GetSysColor(
3732: int nIndex);
3733:
3734: BOOL
3735: WINAPI
3736: SetSysColors(
3737: int,
3738: CONST INT *,
3739: CONST COLORREF *);
3740:
3741: #endif /* NOCOLOR */
3742:
3743: BOOL
3744: WINAPI
3745: DrawFocusRect(
3746: HDC,
3747: CONST RECT *);
3748:
3749: int
3750: WINAPI
3751: FillRect(
3752: HDC hdc,
3753: CONST RECT *lprc,
3754: HBRUSH hbr);
3755:
3756: int
3757: WINAPI
3758: FrameRect(
3759: HDC hdc,
3760: CONST RECT *lprc,
3761: HBRUSH hbr);
3762:
3763: BOOL
3764: WINAPI
3765: InvertRect(
3766: HDC hdc,
3767: CONST RECT *lprc);
3768:
3769: BOOL
3770: WINAPI
3771: SetRect(
3772: LPRECT,
3773: int,
3774: int,
3775: int,
3776: int);
3777:
3778: BOOL
3779: WINAPI
3780: SetRectEmpty(
3781: LPRECT);
3782:
3783: int
3784: WINAPI
3785: CopyRect(
3786: LPRECT,
3787: CONST RECT *);
3788:
3789: BOOL
3790: WINAPI
3791: InflateRect(
3792: LPRECT,
3793: int,
3794: int);
3795:
3796: int
3797: WINAPI
3798: IntersectRect(
3799: LPRECT,
3800: CONST RECT *,
3801: CONST RECT *);
3802:
3803: BOOL
3804: WINAPI
3805: UnionRect(
3806: LPRECT,
3807: CONST RECT *,
3808: CONST RECT *);
3809:
3810: BOOL
3811: WINAPI
3812: OffsetRect(
3813: LPRECT,
3814: int,
3815: int);
3816:
3817: BOOL
3818: WINAPI
3819: IsRectEmpty(
3820: CONST RECT *lprc);
3821:
3822: BOOL
3823: WINAPI
3824: EqualRect(
3825: CONST RECT *,
3826: CONST RECT *);
3827:
3828: BOOL
3829: WINAPI
3830: PtInRect(
3831: CONST RECT *,
3832: POINT);
3833:
3834: #ifndef NOWINOFFSETS
3835:
3836: WORD
3837: WINAPI
3838: GetWindowWord(
3839: HWND hWnd,
3840: int nIndex);
3841:
3842: WORD
3843: WINAPI
3844: SetWindowWord(
3845: HWND hWnd,
3846: int nIndex,
3847: WORD wNewWord);
3848:
3849: LONG
3850: WINAPI
3851: GetWindowLongA(
3852: HWND hWnd,
3853: int nIndex);
3854: LONG
3855: WINAPI
3856: GetWindowLongW(
3857: HWND hWnd,
3858: int nIndex);
3859: #ifdef UNICODE
3860: #define GetWindowLong GetWindowLongW
3861: #else
3862: #define GetWindowLong GetWindowLongA
3863: #endif // !UNICODE
3864:
3865: LONG
3866: WINAPI
3867: SetWindowLongA(
3868: HWND hWnd,
3869: int nIndex,
3870: LONG dwNewLong);
3871: LONG
3872: WINAPI
3873: SetWindowLongW(
3874: HWND hWnd,
3875: int nIndex,
3876: LONG dwNewLong);
3877: #ifdef UNICODE
3878: #define SetWindowLong SetWindowLongW
3879: #else
3880: #define SetWindowLong SetWindowLongA
3881: #endif // !UNICODE
3882:
3883: WORD
3884: WINAPI
3885: GetClassWord(
3886: HWND hWnd,
3887: int nIndex);
3888:
3889: WORD
3890: WINAPI
3891: SetClassWord(
3892: HWND hWnd,
3893: int nIndex,
3894: WORD wNewWord);
3895:
3896: DWORD
3897: WINAPI
3898: GetClassLongA(
3899: HWND hWnd,
3900: int nIndex);
3901: DWORD
3902: WINAPI
3903: GetClassLongW(
3904: HWND hWnd,
3905: int nIndex);
3906: #ifdef UNICODE
3907: #define GetClassLong GetClassLongW
3908: #else
3909: #define GetClassLong GetClassLongA
3910: #endif // !UNICODE
3911:
3912: DWORD
3913: WINAPI
3914: SetClassLongA(
3915: HWND hWnd,
3916: int nIndex,
3917: LONG dwNewLong);
3918: DWORD
3919: WINAPI
3920: SetClassLongW(
3921: HWND hWnd,
3922: int nIndex,
3923: LONG dwNewLong);
3924: #ifdef UNICODE
3925: #define SetClassLong SetClassLongW
3926: #else
3927: #define SetClassLong SetClassLongA
3928: #endif // !UNICODE
3929:
3930: HWND
3931: WINAPI
3932: GetDesktopWindow(
3933: VOID);
3934:
3935: BOOL
3936: WINAPI
3937: SetDeskWallpaper(
3938: LPSTR lpString );
3939:
3940: #endif /* NOWINOFFSETS */
3941:
3942: HWND
3943: WINAPI
3944: GetParent(
3945: HWND hWnd);
3946:
3947: HWND
3948: WINAPI
3949: SetParent(
3950: HWND hWndChild,
3951: HWND hWndNewParent);
3952:
3953: BOOL
3954: WINAPI
3955: EnumChildWindows(
3956: HWND hWndParent,
3957: WNDENUMPROC lpEnumFunc,
3958: LPARAM lParam);
3959:
3960: HWND
3961: WINAPI
3962: FindWindowA(
3963: LPCSTR lpClassName ,
3964: LPCSTR lpWindowName);
3965: HWND
3966: WINAPI
3967: FindWindowW(
3968: LPCWSTR lpClassName ,
3969: LPCWSTR lpWindowName);
3970: #ifdef UNICODE
3971: #define FindWindow FindWindowW
3972: #else
3973: #define FindWindow FindWindowA
3974: #endif // !UNICODE
3975:
3976: BOOL
3977: WINAPI
3978: EnumWindows(
3979: WNDENUMPROC lpEnumFunc,
3980: LPARAM lParam);
3981:
3982: BOOL
3983: WINAPI
3984: EnumThreadWindows(
3985: DWORD dwThreadId,
3986: WNDENUMPROC lpfn,
3987: LPARAM lParam);
3988:
3989: #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows((DWORD)hTask, lpfn, lParam)
3990:
3991: int
3992: WINAPI
3993: GetClassNameA(
3994: HWND hWnd,
3995: LPSTR lpClassName,
3996: int nMaxCount);
3997: int
3998: WINAPI
3999: GetClassNameW(
4000: HWND hWnd,
4001: LPWSTR lpClassName,
4002: int nMaxCount);
4003: #ifdef UNICODE
4004: #define GetClassName GetClassNameW
4005: #else
4006: #define GetClassName GetClassNameA
4007: #endif // !UNICODE
4008:
4009: HWND
4010: WINAPI
4011: GetTopWindow(
4012: HWND hWnd);
4013:
4014: #define GetNextWindow(hwnd, wCmd) GetWindow(hwnd, wCmd)
4015: #define GetSysModalWindow() (NULL)
4016: #define SetSysModalWindow(hwnd) (NULL)
4017:
4018: DWORD
4019: WINAPI
4020: GetWindowThreadProcessId(
4021: HWND hWnd,
4022: LPDWORD lpdwProcessId );
4023:
4024: #define GetWindowTask(hwnd)\
4025: ((HANDLE)GetWindowThreadProcessId(hwnd, NULL))
4026:
4027: HWND
4028: WINAPI
4029: GetLastActivePopup(
4030: HWND hWnd);
4031:
4032: /* GetWindow() Constants */
4033: #define GW_HWNDFIRST 0
4034: #define GW_HWNDLAST 1
4035: #define GW_HWNDNEXT 2
4036: #define GW_HWNDPREV 3
4037: #define GW_OWNER 4
4038: #define GW_CHILD 5
4039: #define GW_MAX 5
4040:
4041: HWND
4042: WINAPI
4043: GetWindow(
4044: HWND hWnd,
4045: UINT uCmd);
4046:
4047: #ifndef NOWH
4048:
4049: #ifdef STRICT
4050: HHOOK
4051: WINAPI
4052: SetWindowsHookA(
4053: int nFilterType,
4054: HOOKPROC pfnFilterProc);
4055: HHOOK
4056: WINAPI
4057: SetWindowsHookW(
4058: int nFilterType,
4059: HOOKPROC pfnFilterProc);
4060: #else
4061: HOOKPROC
4062: WINAPI
4063: SetWindowsHookA(
4064: int nFilterType,
4065: HOOKPROC pfnFilterProc);
4066: HOOKPROC
4067: WINAPI
4068: SetWindowsHookW(
4069: int nFilterType,
4070: HOOKPROC pfnFilterProc);
4071: #endif
4072: #ifdef UNICODE
4073: #define SetWindowsHook SetWindowsHookW
4074: #else
4075: #define SetWindowsHook SetWindowsHookA
4076: #endif // !UNICODE
4077:
4078: BOOL
4079: WINAPI
4080: UnhookWindowsHook(
4081: int nCode,
4082: HOOKPROC pfnFilterProc);
4083:
4084: HHOOK
4085: WINAPI
4086: SetWindowsHookExA(
4087: int idHook,
4088: HOOKPROC lpfn,
4089: HINSTANCE hmod,
4090: DWORD dwThreadId);
4091: HHOOK
4092: WINAPI
4093: SetWindowsHookExW(
4094: int idHook,
4095: HOOKPROC lpfn,
4096: HINSTANCE hmod,
4097: DWORD dwThreadId);
4098: #ifdef UNICODE
4099: #define SetWindowsHookEx SetWindowsHookExW
4100: #else
4101: #define SetWindowsHookEx SetWindowsHookExA
4102: #endif // !UNICODE
4103:
4104: BOOL
4105: WINAPI
4106: UnhookWindowsHookEx(
4107: HHOOK hhk);
4108:
4109: LRESULT
4110: WINAPI CallNextHookEx(
4111: HHOOK hhk,
4112: int nCode,
4113: WPARAM wParam,
4114: LPARAM lParam);
4115:
4116: /*
4117: * Macros for source-level compatibility with old functions.
4118: */
4119: #define DefHookProc(nCode, wParam, lParam, phhk)\
4120: CallNextHookEx(*phhk, nCode, wParam, lParam)
4121: #endif
4122:
4123: #ifndef NOMENUS
4124:
4125: /* Menu flags for Add/Check/EnableMenuItem() */
4126: #define MF_INSERT 0x00000000L
4127: #define MF_CHANGE 0x00000080L
4128: #define MF_APPEND 0x00000100L
4129: #define MF_DELETE 0x00000200L
4130: #define MF_REMOVE 0x00001000L
4131:
4132: #define MF_BYCOMMAND 0x00000000L
4133: #define MF_BYPOSITION 0x00000400L
4134:
4135:
4136: #define MF_SEPARATOR 0x00000800L
4137:
4138: #define MF_ENABLED 0x00000000L
4139: #define MF_GRAYED 0x00000001L
4140: #define MF_DISABLED 0x00000002L
4141:
4142: #define MF_UNCHECKED 0x00000000L
4143: #define MF_CHECKED 0x00000008L
4144: #define MF_USECHECKBITMAPS 0x00000200L
4145:
4146: #define MF_STRING 0x00000000L
4147: #define MF_BITMAP 0x00000004L
4148: #define MF_OWNERDRAW 0x00000100L
4149:
4150: #define MF_POPUP 0x00000010L
4151: #define MF_MENUBARBREAK 0x00000020L
4152: #define MF_MENUBREAK 0x00000040L
4153:
4154: #define MF_UNHILITE 0x00000000L
4155: #define MF_HILITE 0x00000080L
4156:
4157: #define MF_SYSMENU 0x00002000L
4158: #define MF_HELP 0x00004000L
4159: #define MF_MOUSESELECT 0x00008000L
4160:
4161: /* Menu item resource format */
4162: typedef struct {
4163: WORD versionNumber;
4164: WORD offset;
4165: } MENUITEMTEMPLATEHEADER;
4166:
4167: typedef struct {
4168: WORD mtOption;
4169: WORD mtID;
4170: char mtString[1];
4171: } MENUITEMTEMPLATE;
4172:
4173: #define MF_END 0x00000080L
4174:
4175: #endif /* NOMENUS */
4176:
4177: #ifndef NOSYSCOMMANDS
4178:
4179: /* System Menu Command Values */
4180: #define SC_SIZE 0xF000
4181: #define SC_MOVE 0xF010
4182: #define SC_MINIMIZE 0xF020
4183: #define SC_MAXIMIZE 0xF030
4184: #define SC_NEXTWINDOW 0xF040
4185: #define SC_PREVWINDOW 0xF050
4186: #define SC_CLOSE 0xF060
4187: #define SC_VSCROLL 0xF070
4188: #define SC_HSCROLL 0xF080
4189: #define SC_MOUSEMENU 0xF090
4190: #define SC_KEYMENU 0xF100
4191: #define SC_ARRANGE 0xF110
4192: #define SC_RESTORE 0xF120
4193: #define SC_TASKLIST 0xF130
4194: #define SC_SCREENSAVE 0xF140
4195: #define SC_HOTKEY 0xF150
4196:
4197: /* Obsolete names */
4198: #define SC_ICON SC_MINIMIZE
4199: #define SC_ZOOM SC_MAXIMIZE
4200:
4201: #endif /* NOSYSCOMMANDS */
4202:
4203: /* Resource Loading Routines */
4204:
4205: HBITMAP
4206: WINAPI
4207: LoadBitmapA(
4208: HINSTANCE hInstance,
4209: LPCSTR lpBitmapName);
4210: HBITMAP
4211: WINAPI
4212: LoadBitmapW(
4213: HINSTANCE hInstance,
4214: LPCWSTR lpBitmapName);
4215: #ifdef UNICODE
4216: #define LoadBitmap LoadBitmapW
4217: #else
4218: #define LoadBitmap LoadBitmapA
4219: #endif // !UNICODE
4220:
4221: HCURSOR
4222: WINAPI
4223: LoadCursorA(
4224: HINSTANCE hInstance,
4225: LPCSTR lpCursorName);
4226: HCURSOR
4227: WINAPI
4228: LoadCursorW(
4229: HINSTANCE hInstance,
4230: LPCWSTR lpCursorName);
4231: #ifdef UNICODE
4232: #define LoadCursor LoadCursorW
4233: #else
4234: #define LoadCursor LoadCursorA
4235: #endif // !UNICODE
4236:
4237: HCURSOR
4238: WINAPI
4239: CreateCursor(
4240: HINSTANCE,
4241: int,
4242: int,
4243: int,
4244: int,
4245: CONST VOID *,
4246: CONST VOID *);
4247:
4248: BOOL
4249: WINAPI
4250: DestroyCursor(
4251: HCURSOR);
4252:
4253: #define CopyCursor(pcur) ((HCURSOR)CopyIcon((HICON)(pcur)))
4254:
4255: /* Standard Cursor IDs */
4256: #define IDC_ARROW MAKEINTRESOURCE(32512)
4257: #define IDC_IBEAM MAKEINTRESOURCE(32513)
4258: #define IDC_WAIT MAKEINTRESOURCE(32514)
4259: #define IDC_CROSS MAKEINTRESOURCE(32515)
4260: #define IDC_UPARROW MAKEINTRESOURCE(32516)
4261: #define IDC_SIZE MAKEINTRESOURCE(32640)
4262: #define IDC_ICON MAKEINTRESOURCE(32641)
4263: #define IDC_SIZENWSE MAKEINTRESOURCE(32642)
4264: #define IDC_SIZENESW MAKEINTRESOURCE(32643)
4265: #define IDC_SIZEWE MAKEINTRESOURCE(32644)
4266: #define IDC_SIZENS MAKEINTRESOURCE(32645)
4267: #define IDC_SIZEALL MAKEINTRESOURCE(32646) //not in win3.1
4268: #define IDC_NO MAKEINTRESOURCE(32648) //not in win3.1
4269:
4270: typedef struct _ICONINFO {
4271: BOOL fIcon;
4272: DWORD xHotspot;
4273: DWORD yHotspot;
4274: HBITMAP hbmMask;
4275: HBITMAP hbmColor;
4276: } ICONINFO;
4277: typedef ICONINFO *PICONINFO;
4278:
4279: HICON
4280: WINAPI
4281: LoadIconA(
4282: HINSTANCE hInstance,
4283: LPCSTR lpIconName);
4284: HICON
4285: WINAPI
4286: LoadIconW(
4287: HINSTANCE hInstance,
4288: LPCWSTR lpIconName);
4289: #ifdef UNICODE
4290: #define LoadIcon LoadIconW
4291: #else
4292: #define LoadIcon LoadIconA
4293: #endif // !UNICODE
4294:
4295: HICON
4296: WINAPI
4297: CreateIcon(
4298: HINSTANCE,
4299: int,
4300: int,
4301: BYTE,
4302: BYTE,
4303: CONST BYTE *,
4304: CONST BYTE *);
4305:
4306: BOOL
4307: WINAPI
4308: DestroyIcon(
4309: HICON);
4310:
4311: int
4312: WINAPI
4313: LookupIconIdFromDirectory(
4314: PBYTE presbits,
4315: BOOL fIcon);
4316:
4317: HICON
4318: WINAPI
4319: CreateIconFromResource(
4320: PBYTE presbits,
4321: DWORD dwResSize,
4322: BOOL fIcon,
4323: DWORD dwVer);
4324:
4325: HICON
4326: WINAPI
4327: CreateIconIndirect(
4328: PICONINFO piconinfo);
4329:
4330: HICON
4331: WINAPI
4332: CopyIcon(
4333: HICON);
4334:
4335: BOOL
4336: WINAPI
4337: GetIconInfo(
4338: HICON hIcon,
4339: PICONINFO piconinfo);
4340:
4341: #ifdef OEMRESOURCE
4342:
4343: /* OEM Resource Ordinal Numbers */
4344: #define OBM_CLOSE 32754
4345: #define OBM_UPARROW 32753
4346: #define OBM_DNARROW 32752
4347: #define OBM_RGARROW 32751
4348: #define OBM_LFARROW 32750
4349: #define OBM_REDUCE 32749
4350: #define OBM_ZOOM 32748
4351: #define OBM_RESTORE 32747
4352: #define OBM_REDUCED 32746
4353: #define OBM_ZOOMD 32745
4354: #define OBM_RESTORED 32744
4355: #define OBM_UPARROWD 32743
4356: #define OBM_DNARROWD 32742
4357: #define OBM_RGARROWD 32741
4358: #define OBM_LFARROWD 32740
4359: #define OBM_MNARROW 32739
4360: #define OBM_COMBO 32738
4361: #define OBM_UPARROWI 32737
4362: #define OBM_DNARROWI 32736
4363: #define OBM_RGARROWI 32735
4364: #define OBM_LFARROWI 32734
4365:
4366: #define OBM_OLD_CLOSE 32767
4367: #define OBM_SIZE 32766
4368: #define OBM_OLD_UPARROW 32765
4369: #define OBM_OLD_DNARROW 32764
4370: #define OBM_OLD_RGARROW 32763
4371: #define OBM_OLD_LFARROW 32762
4372: #define OBM_BTSIZE 32761
4373: #define OBM_CHECK 32760
4374: #define OBM_CHECKBOXES 32759
4375: #define OBM_BTNCORNERS 32758
4376: #define OBM_OLD_REDUCE 32757
4377: #define OBM_OLD_ZOOM 32756
4378: #define OBM_OLD_RESTORE 32755
4379:
4380: #define OCR_NORMAL 32512
4381: #define OCR_IBEAM 32513
4382: #define OCR_WAIT 32514
4383: #define OCR_CROSS 32515
4384: #define OCR_UP 32516
4385: #define OCR_SIZE 32640
4386: #define OCR_ICON 32641
4387: #define OCR_SIZENWSE 32642
4388: #define OCR_SIZENESW 32643
4389: #define OCR_SIZEWE 32644
4390: #define OCR_SIZENS 32645
4391: #define OCR_SIZEALL 32646
4392: #define OCR_ICOCUR 32647
4393: #define OCR_NO 32648 //not in win3.1
4394:
4395: #define OIC_SAMPLE 32512
4396: #define OIC_HAND 32513
4397: #define OIC_QUES 32514
4398: #define OIC_BANG 32515
4399: #define OIC_NOTE 32516
4400:
4401: #endif /* OEMRESOURCE */
4402:
4403: #define ORD_LANGDRIVER 1 /* The ordinal number for the entry point of
4404: ** language drivers.
4405: */
4406:
4407: #ifndef NOICONS
4408:
4409: /* Standard Icon IDs */
4410: #define IDI_APPLICATION MAKEINTRESOURCE(32512)
4411: #define IDI_HAND MAKEINTRESOURCE(32513)
4412: #define IDI_QUESTION MAKEINTRESOURCE(32514)
4413: #define IDI_EXCLAMATION MAKEINTRESOURCE(32515)
4414: #define IDI_ASTERISK MAKEINTRESOURCE(32516)
4415:
4416: #endif /* NOICONS */
4417:
4418: int
4419: WINAPI
4420: LoadStringA(
4421: HINSTANCE hInstance,
4422: UINT uID,
4423: LPSTR lpBuffer,
4424: int nBufferMax);
4425: int
4426: WINAPI
4427: LoadStringW(
4428: HINSTANCE hInstance,
4429: UINT uID,
4430: LPWSTR lpBuffer,
4431: int nBufferMax);
4432: #ifdef UNICODE
4433: #define LoadString LoadStringW
4434: #else
4435: #define LoadString LoadStringA
4436: #endif // !UNICODE
4437:
4438: /* Dialog Box Command IDs */
4439: #define IDOK 1
4440: #define IDCANCEL 2
4441: #define IDABORT 3
4442: #define IDRETRY 4
4443: #define IDIGNORE 5
4444: #define IDYES 6
4445: #define IDNO 7
4446:
4447: #ifndef NOCTLMGR
4448:
4449: /* Control Manager Structures and Definitions */
4450:
4451: #ifndef NOWINSTYLES
4452:
4453: /* Edit Control Styles */
4454: #define ES_LEFT 0x0000L
4455: #define ES_CENTER 0x0001L
4456: #define ES_RIGHT 0x0002L
4457: #define ES_MULTILINE 0x0004L
4458: #define ES_UPPERCASE 0x0008L
4459: #define ES_LOWERCASE 0x0010L
4460: #define ES_PASSWORD 0x0020L
4461: #define ES_AUTOVSCROLL 0x0040L
4462: #define ES_AUTOHSCROLL 0x0080L
4463: #define ES_NOHIDESEL 0x0100L
4464: #define ES_OEMCONVERT 0x0400L
4465: #define ES_READONLY 0x0800L
4466: #define ES_WANTRETURN 0x1000L
4467:
4468:
4469: #endif /* NOWINSTYLES */
4470:
4471: /* Edit Control Notification Codes */
4472: #define EN_SETFOCUS 0x0100
4473: #define EN_KILLFOCUS 0x0200
4474: #define EN_CHANGE 0x0300
4475: #define EN_UPDATE 0x0400
4476: #define EN_ERRSPACE 0x0500
4477: #define EN_MAXTEXT 0x0501
4478: #define EN_HSCROLL 0x0601
4479: #define EN_VSCROLL 0x0602
4480:
4481: #ifndef NOWINMESSAGES
4482:
4483: /* Edit Control Messages */
4484: #define EM_GETSEL 0x00B0
4485: #define EM_SETSEL 0x00B1
4486: #define EM_GETRECT 0x00B2
4487: #define EM_SETRECT 0x00B3
4488: #define EM_SETRECTNP 0x00B4
4489: #define EM_SCROLL 0x00B5
4490: #define EM_LINESCROLL 0x00B6
4491: #define EM_SCROLLCARET 0x00B7
4492: #define EM_GETMODIFY 0x00B8
4493: #define EM_SETMODIFY 0x00B9
4494: #define EM_GETLINECOUNT 0x00BA
4495: #define EM_LINEINDEX 0x00BB
4496: #define EM_SETHANDLE 0x00BC
4497: #define EM_GETHANDLE 0x00BD
4498: #define EM_GETTHUMB 0x00BE
4499: #define EM_LINELENGTH 0x00C1
4500: #define EM_REPLACESEL 0x00C2
4501: #define EM_SETFONT 0x00C3
4502: #define EM_GETLINE 0x00C4
4503: #define EM_LIMITTEXT 0x00C5
4504: #define EM_CANUNDO 0x00C6
4505: #define EM_UNDO 0x00C7
4506: #define EM_FMTLINES 0x00C8
4507: #define EM_LINEFROMCHAR 0x00C9
4508: #define EM_SETWORDBREAK 0x00CA
4509: #define EM_SETTABSTOPS 0x00CB
4510: #define EM_SETPASSWORDCHAR 0x00CC
4511: #define EM_EMPTYUNDOBUFFER 0x00CD
4512: #define EM_GETFIRSTVISIBLELINE 0x00CE
4513: #define EM_SETREADONLY 0x00CF
4514: #define EM_SETWORDBREAKPROC 0x00D0
4515: #define EM_GETWORDBREAKPROC 0x00D1
4516: #define EM_GETPASSWORDCHAR 0x00D2
4517: #define EM_MSGMAX 0x00D3
4518:
4519: #endif /* NOWINMESSAGES */
4520:
4521: /* EDITWORDBREAKPROC code values */
4522: #define WB_LEFT 0
4523: #define WB_RIGHT 1
4524: #define WB_ISDELIMITER 2
4525:
4526: /* Button Control Styles */
4527: #define BS_PUSHBUTTON 0x00L
4528: #define BS_DEFPUSHBUTTON 0x01L
4529: #define BS_CHECKBOX 0x02L
4530: #define BS_AUTOCHECKBOX 0x03L
4531: #define BS_RADIOBUTTON 0x04L
4532: #define BS_3STATE 0x05L
4533: #define BS_AUTO3STATE 0x06L
4534: #define BS_GROUPBOX 0x07L
4535: #define BS_USERBUTTON 0x08L
4536: #define BS_AUTORADIOBUTTON 0x09L
4537: #define BS_PUSHBOX 0x0AL
4538: #define BS_OWNERDRAW 0x0BL
4539: #define BS_LEFTTEXT 0x20L
4540:
4541:
4542: /* User Button Notification Codes */
4543: #define BN_CLICKED 0
4544: #define BN_PAINT 1
4545: #define BN_HILITE 2
4546: #define BN_UNHILITE 3
4547: #define BN_DISABLE 4
4548: #define BN_DOUBLECLICKED 5
4549:
4550: /* Button Control Messages */
4551: #define BM_GETCHECK 0x00F0
4552: #define BM_SETCHECK 0x00F1
4553: #define BM_GETSTATE 0x00F2
4554: #define BM_SETSTATE 0x00F3
4555: #define BM_SETSTYLE 0x00F4
4556:
4557: /* Static Control Constants */
4558: #define SS_LEFT 0x00L
4559: #define SS_CENTER 0x01L
4560: #define SS_RIGHT 0x02L
4561: #define SS_ICON 0x03L
4562: #define SS_BLACKRECT 0x04L
4563: #define SS_GRAYRECT 0x05L
4564: #define SS_WHITERECT 0x06L
4565: #define SS_BLACKFRAME 0x07L
4566: #define SS_GRAYFRAME 0x08L
4567: #define SS_WHITEFRAME 0x09L
4568: #define SS_USERITEM 0x0AL
4569: #define SS_SIMPLE 0x0BL
4570: #define SS_LEFTNOWORDWRAP 0x0CL
4571: #define SS_NOPREFIX 0x80L /* Don't do "&" character translation */
4572:
4573: #ifndef NOWINMESSAGES
4574: /* Static Control Mesages */
4575: #define STM_SETICON 0x170
4576: #define STM_GETICON 0x171
4577: #define STM_MSGMAX 0x172
4578: #endif /* NOWINMESSAGES */
4579: /* Dialog Manager Routines */
4580:
4581: #ifndef NOMSG
4582: BOOL
4583: WINAPI
4584: IsDialogMessage(
4585: HWND hDlg,
4586: LPMSG lpMsg);
4587: #endif
4588:
4589: BOOL
4590: WINAPI
4591: MapDialogRect(
4592: HWND hDlg,
4593: LPRECT lpRect);
4594:
4595: int
4596: WINAPI
4597: DlgDirListA(
4598: HWND hDlg,
4599: LPSTR lpPathSpec,
4600: int nIDListBox,
4601: int nIDStaticPath,
4602: UINT uFileType);
4603: int
4604: WINAPI
4605: DlgDirListW(
4606: HWND hDlg,
4607: LPWSTR lpPathSpec,
4608: int nIDListBox,
4609: int nIDStaticPath,
4610: UINT uFileType);
4611: #ifdef UNICODE
4612: #define DlgDirList DlgDirListW
4613: #else
4614: #define DlgDirList DlgDirListA
4615: #endif // !UNICODE
4616:
4617: BOOL
4618: WINAPI
4619: DlgDirSelectExA(
4620: HWND hDlg,
4621: LPSTR lpString,
4622: int nCount,
4623: int nIDListBox);
4624: BOOL
4625: WINAPI
4626: DlgDirSelectExW(
4627: HWND hDlg,
4628: LPWSTR lpString,
4629: int nCount,
4630: int nIDListBox);
4631: #ifdef UNICODE
4632: #define DlgDirSelectEx DlgDirSelectExW
4633: #else
4634: #define DlgDirSelectEx DlgDirSelectExA
4635: #endif // !UNICODE
4636:
4637: int
4638: WINAPI
4639: DlgDirListComboBoxA(
4640: HWND hDlg,
4641: LPSTR lpPathSpec,
4642: int nIDComboBox,
4643: int nIDStaticPath,
4644: UINT uFiletype);
4645: int
4646: WINAPI
4647: DlgDirListComboBoxW(
4648: HWND hDlg,
4649: LPWSTR lpPathSpec,
4650: int nIDComboBox,
4651: int nIDStaticPath,
4652: UINT uFiletype);
4653: #ifdef UNICODE
4654: #define DlgDirListComboBox DlgDirListComboBoxW
4655: #else
4656: #define DlgDirListComboBox DlgDirListComboBoxA
4657: #endif // !UNICODE
4658:
4659: BOOL
4660: WINAPI
4661: DlgDirSelectComboBoxExA(
4662: HWND hDlg,
4663: LPSTR lpString,
4664: int nCount,
4665: int nIDComboBox);
4666: BOOL
4667: WINAPI
4668: DlgDirSelectComboBoxExW(
4669: HWND hDlg,
4670: LPWSTR lpString,
4671: int nCount,
4672: int nIDComboBox);
4673: #ifdef UNICODE
4674: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExW
4675: #else
4676: #define DlgDirSelectComboBoxEx DlgDirSelectComboBoxExA
4677: #endif // !UNICODE
4678:
4679:
4680: /* Dialog Styles */
4681: #define DS_ABSALIGN 0x01L
4682: #define DS_SYSMODAL 0x02L
4683: #define DS_LOCALEDIT 0x20L /* Edit items get Local storage. */
4684: #define DS_SETFONT 0x40L /* User specified font for Dlg controls */
4685: #define DS_MODALFRAME 0x80L /* Can be combined with WS_CAPTION */
4686: #define DS_NOIDLEMSG 0x100L /* WM_ENTERIDLE message will not be sent */
4687: #define DS_SETFOREGROUND 0x200L //not in win3.1
4688:
4689: #define DM_GETDEFID (WM_USER+0)
4690: #define DM_SETDEFID (WM_USER+1)
4691: #define DC_HASDEFID 0x534B //not in win3.1
4692:
4693: /* Dialog Codes */
4694: #define DLGC_WANTARROWS 0x0001 /* Control wants arrow keys */
4695: #define DLGC_WANTTAB 0x0002 /* Control wants tab keys */
4696: #define DLGC_WANTALLKEYS 0x0004 /* Control wants all keys */
4697: #define DLGC_WANTMESSAGE 0x0004 /* Pass message to control */
4698: #define DLGC_HASSETSEL 0x0008 /* Understands EM_SETSEL message */
4699: #define DLGC_DEFPUSHBUTTON 0x0010 /* Default pushbutton */
4700: #define DLGC_UNDEFPUSHBUTTON 0x0020 /* Non-default pushbutton */
4701: #define DLGC_RADIOBUTTON 0x0040 /* Radio button */
4702: #define DLGC_WANTCHARS 0x0080 /* Want WM_CHAR messages */
4703: #define DLGC_STATIC 0x0100 /* Static item: don't include */
4704: #define DLGC_BUTTON 0x2000 /* Button item: can be checked */
4705:
4706: #define LB_CTLCODE 0L
4707:
4708: /* Listbox Return Values */
4709: #define LB_OKAY 0
4710: #define LB_ERR (-1)
4711: #define LB_ERRSPACE (-2)
4712:
4713: /*
4714: ** The idStaticPath parameter to DlgDirList can have the following values
4715: ** ORed if the list box should show other details of the files along with
4716: ** the name of the files;
4717: */
4718: /* all other details also will be returned */
4719:
4720:
4721: /* Listbox Notification Codes */
4722: #define LBN_ERRSPACE (-2)
4723: #define LBN_SELCHANGE 1
4724: #define LBN_DBLCLK 2
4725: #define LBN_SELCANCEL 3
4726: #define LBN_SETFOCUS 4
4727: #define LBN_KILLFOCUS 5
4728:
4729:
4730:
4731: #ifndef NOWINMESSAGES
4732:
4733: /* Listbox messages */
4734: #define LB_ADDSTRING 0x0180
4735: #define LB_INSERTSTRING 0x0181
4736: #define LB_DELETESTRING 0x0182
4737: #define LB_RESETCONTENT 0x0184
4738: #define LB_SETSEL 0x0185
4739: #define LB_SETCURSEL 0x0186
4740: #define LB_GETSEL 0x0187
4741: #define LB_GETCURSEL 0x0188
4742: #define LB_GETTEXT 0x0189
4743: #define LB_GETTEXTLEN 0x018A
4744: #define LB_GETCOUNT 0x018B
4745: #define LB_SELECTSTRING 0x018C
4746: #define LB_DIR 0x018D
4747: #define LB_GETTOPINDEX 0x018E
4748: #define LB_FINDSTRING 0x018F
4749: #define LB_GETSELCOUNT 0x0190
4750: #define LB_GETSELITEMS 0x0191
4751: #define LB_SETTABSTOPS 0x0192
4752: #define LB_GETHORIZONTALEXTENT 0x0193
4753: #define LB_SETHORIZONTALEXTENT 0x0194
4754: #define LB_SETCOLUMNWIDTH 0x0195
4755: #define LB_ADDFILE 0x0196
4756: #define LB_SETTOPINDEX 0x0197
4757: #define LB_GETITEMRECT 0x0198
4758: #define LB_GETITEMDATA 0x0199
4759: #define LB_SETITEMDATA 0x019A
4760: #define LB_SELITEMRANGE 0x019B
4761: #define LB_SETANCHORINDEX 0x019C
4762: #define LB_GETANCHORINDEX 0x019D
4763: #define LB_SETCARETINDEX 0x019E
4764: #define LB_GETCARETINDEX 0x019F
4765: #define LB_SETITEMHEIGHT 0x01A0
4766: #define LB_GETITEMHEIGHT 0x01A1
4767: #define LB_FINDSTRINGEXACT 0x01A2
4768: #define LBCB_CARETON 0x01A3
4769: #define LBCB_CARETOFF 0x01A4
4770: #define LB_SETLOCALE 0x01A5
4771: #define LB_GETLOCALE 0x01A6
4772: #define LB_SETCOUNT 0x01A7
4773: #define LB_MSGMAX 0x01A8
4774:
4775: #endif /* NOWINMESSAGES */
4776:
4777: #ifndef NOWINSTYLES
4778:
4779: /* Listbox Styles */
4780: #define LBS_NOTIFY 0x0001L
4781: #define LBS_SORT 0x0002L
4782: #define LBS_NOREDRAW 0x0004L
4783: #define LBS_MULTIPLESEL 0x0008L
4784: #define LBS_OWNERDRAWFIXED 0x0010L
4785: #define LBS_OWNERDRAWVARIABLE 0x0020L
4786: #define LBS_HASSTRINGS 0x0040L
4787: #define LBS_USETABSTOPS 0x0080L
4788: #define LBS_NOINTEGRALHEIGHT 0x0100L
4789: #define LBS_MULTICOLUMN 0x0200L
4790: #define LBS_WANTKEYBOARDINPUT 0x0400L
4791: #define LBS_EXTENDEDSEL 0x0800L
4792: #define LBS_DISABLENOSCROLL 0x1000L
4793: #define LBS_NODATA 0x2000L
4794: #define LBS_STANDARD (LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER)
4795:
4796: #endif /* NOWINSTYLES */
4797:
4798:
4799: /* Combo Box return Values */
4800: #define CB_OKAY 0
4801: #define CB_ERR (-1)
4802: #define CB_ERRSPACE (-2)
4803:
4804:
4805: /* Combo Box Notification Codes */
4806: #define CBN_ERRSPACE (-1)
4807: #define CBN_SELCHANGE 1
4808: #define CBN_DBLCLK 2
4809: #define CBN_SETFOCUS 3
4810: #define CBN_KILLFOCUS 4
4811: #define CBN_EDITCHANGE 5
4812: #define CBN_EDITUPDATE 6
4813: #define CBN_DROPDOWN 7
4814: #define CBN_CLOSEUP 8
4815: #define CBN_SELENDOK 9
4816: #define CBN_SELENDCANCEL 10
4817:
4818: /* Combo Box styles */
4819: #ifndef NOWINSTYLES
4820: #define CBS_SIMPLE 0x0001L
4821: #define CBS_DROPDOWN 0x0002L
4822: #define CBS_DROPDOWNLIST 0x0003L
4823: #define CBS_OWNERDRAWFIXED 0x0010L
4824: #define CBS_OWNERDRAWVARIABLE 0x0020L
4825: #define CBS_AUTOHSCROLL 0x0040L
4826: #define CBS_OEMCONVERT 0x0080L
4827: #define CBS_SORT 0x0100L
4828: #define CBS_HASSTRINGS 0x0200L
4829: #define CBS_NOINTEGRALHEIGHT 0x0400L
4830: #define CBS_DISABLENOSCROLL 0x0800L
4831: #endif /* NOWINSTYLES */
4832:
4833:
4834: /* Combo Box messages */
4835: #ifndef NOWINMESSAGES
4836: #define CB_GETEDITSEL 0x0140
4837: #define CB_LIMITTEXT 0x0141
4838: #define CB_SETEDITSEL 0x0142
4839: #define CB_ADDSTRING 0x0143
4840: #define CB_DELETESTRING 0x0144
4841: #define CB_DIR 0x0145
4842: #define CB_GETCOUNT 0x0146
4843: #define CB_GETCURSEL 0x0147
4844: #define CB_GETLBTEXT 0x0148
4845: #define CB_GETLBTEXTLEN 0x0149
4846: #define CB_INSERTSTRING 0x014A
4847: #define CB_RESETCONTENT 0x014B
4848: #define CB_FINDSTRING 0x014C
4849: #define CB_SELECTSTRING 0x014D
4850: #define CB_SETCURSEL 0x014E
4851: #define CB_SHOWDROPDOWN 0x014F
4852: #define CB_GETITEMDATA 0x0150
4853: #define CB_SETITEMDATA 0x0151
4854: #define CB_GETDROPPEDCONTROLRECT 0x0152
4855: #define CB_SETITEMHEIGHT 0x0153
4856: #define CB_GETITEMHEIGHT 0x0154
4857: #define CB_SETEXTENDEDUI 0x0155
4858: #define CB_GETEXTENDEDUI 0x0156
4859: #define CB_GETDROPPEDSTATE 0x0157
4860: #define CB_FINDSTRINGEXACT 0x0158
4861: #define CB_SETLOCALE 0x0159
4862: #define CB_GETLOCALE 0x015a
4863: #define CB_MSGMAX 0x015b
4864: #endif /* NOWINMESSAGES */
4865:
4866:
4867:
4868: #ifndef NOWINSTYLES
4869:
4870: /* Scroll Bar Styles */
4871: #define SBS_HORZ 0x0000L
4872: #define SBS_VERT 0x0001L
4873: #define SBS_TOPALIGN 0x0002L
4874: #define SBS_LEFTALIGN 0x0002L
4875: #define SBS_BOTTOMALIGN 0x0004L
4876: #define SBS_RIGHTALIGN 0x0004L
4877: #define SBS_SIZEBOXTOPLEFTALIGN 0x0002L
4878: #define SBS_SIZEBOXBOTTOMRIGHTALIGN 0x0004L
4879: #define SBS_SIZEBOX 0x0008L
4880: #endif /* NOWINSTYLES */
4881:
4882: /* Scroll bar messages */
4883: #ifndef NOWINMESSAGES
4884: #define SBM_SETPOS 0x00E0 //not in win3.1
4885: #define SBM_GETPOS 0x00E1 //not in win3.1
4886: #define SBM_SETRANGE 0x00E2 //not in win3.1
4887: #define SBM_GETRANGE 0x00E3 //not in win3.1
4888: #define SBM_ENABLE_ARROWS 0x00E4 //not in win3.1
4889: #endif
4890: #endif /* NOCTLMGR */
4891:
4892: #ifndef NOMDI
4893:
4894: /* MDI client style bits */
4895: #define MDIS_ALLCHILDSTYLES 0x0001
4896:
4897: /* wParam Flags for WM_MDITILE and WM_MDICASCADE messages. */
4898: #define MDITILE_VERTICAL 0x0000 //not in win3.1
4899: #define MDITILE_HORIZONTAL 0x0001 //not in win3.1
4900: #define MDITILE_SKIPDISABLED 0x0002 //not in win3.1
4901:
4902: typedef struct tagMDICREATESTRUCTA {
4903: LPCSTR szClass;
4904: LPCSTR szTitle;
4905: HANDLE hOwner;
4906: int x;
4907: int y;
4908: int cx;
4909: int cy;
4910: DWORD style;
4911: LPARAM lParam; /* app-defined stuff */
4912: } MDICREATESTRUCTA, *LPMDICREATESTRUCTA;
4913: typedef struct tagMDICREATESTRUCTW {
4914: LPCWSTR szClass;
4915: LPCWSTR szTitle;
4916: HANDLE hOwner;
4917: int x;
4918: int y;
4919: int cx;
4920: int cy;
4921: DWORD style;
4922: LPARAM lParam; /* app-defined stuff */
4923: } MDICREATESTRUCTW, *LPMDICREATESTRUCTW;
4924: #ifdef UNICODE
4925: #define MDICREATESTRUCT MDICREATESTRUCTW
4926: #define LPMDICREATESTRUCT LPMDICREATESTRUCTW
4927: #else
4928: #define MDICREATESTRUCT MDICREATESTRUCTA
4929: #define LPMDICREATESTRUCT LPMDICREATESTRUCTA
4930: #endif // UNICODE
4931:
4932: typedef struct tagCLIENTCREATESTRUCT {
4933: HANDLE hWindowMenu;
4934: UINT idFirstChild;
4935: } CLIENTCREATESTRUCT, *LPCLIENTCREATESTRUCT;
4936:
4937: LRESULT
4938: WINAPI
4939: DefFrameProcA(
4940: HWND hWnd,
4941: HWND hWndMDIClient ,
4942: UINT uMsg,
4943: WPARAM wParam,
4944: LPARAM lParam);
4945: LRESULT
4946: WINAPI
4947: DefFrameProcW(
4948: HWND hWnd,
4949: HWND hWndMDIClient ,
4950: UINT uMsg,
4951: WPARAM wParam,
4952: LPARAM lParam);
4953: #ifdef UNICODE
4954: #define DefFrameProc DefFrameProcW
4955: #else
4956: #define DefFrameProc DefFrameProcA
4957: #endif // !UNICODE
4958:
4959: LRESULT
4960: WINAPI
4961: DefMDIChildProcA(
4962: HWND hWnd,
4963: UINT uMsg,
4964: WPARAM wParam,
4965: LPARAM lParam);
4966: LRESULT
4967: WINAPI
4968: DefMDIChildProcW(
4969: HWND hWnd,
4970: UINT uMsg,
4971: WPARAM wParam,
4972: LPARAM lParam);
4973: #ifdef UNICODE
4974: #define DefMDIChildProc DefMDIChildProcW
4975: #else
4976: #define DefMDIChildProc DefMDIChildProcA
4977: #endif // !UNICODE
4978:
4979: #ifndef NOMSG
4980: BOOL
4981: WINAPI
4982: TranslateMDISysAccel(
4983: HWND hWndClient,
4984: LPMSG lpMsg);
4985: #endif
4986:
4987: UINT
4988: WINAPI
4989: ArrangeIconicWindows(
4990: HWND hWnd);
4991:
4992: HWND
4993: WINAPI
4994: CreateMDIWindowA(
4995: LPSTR lpClassName,
4996: LPSTR lpWindowName,
4997: DWORD dwStyle,
4998: int X,
4999: int Y,
5000: int nWidth,
5001: int nHeight,
5002: HWND hWndParent,
5003: HINSTANCE hInstance,
5004: LONG lParam
5005: );
5006: HWND
5007: WINAPI
5008: CreateMDIWindowW(
5009: LPWSTR lpClassName,
5010: LPWSTR lpWindowName,
5011: DWORD dwStyle,
5012: int X,
5013: int Y,
5014: int nWidth,
5015: int nHeight,
5016: HWND hWndParent,
5017: HINSTANCE hInstance,
5018: LONG lParam
5019: );
5020: #ifdef UNICODE
5021: #define CreateMDIWindow CreateMDIWindowW
5022: #else
5023: #define CreateMDIWindow CreateMDIWindowA
5024: #endif // !UNICODE
5025:
5026: #endif /* NOMDI */
5027: #endif /* NOUSER */
5028:
5029: /****** Help support ********************************************************/
5030:
5031: #ifndef NOHELP
5032:
5033: typedef DWORD HELPPOLY;
5034: typedef struct tagMULTIKEYHELPA {
5035: DWORD mkSize;
5036: CHAR mkKeylist;
5037: CHAR szKeyphrase[1];
5038: } MULTIKEYHELPA, *PMULTIKEYHELPA, *LPMULTIKEYHELPA;
5039: typedef struct tagMULTIKEYHELPW {
5040: DWORD mkSize;
5041: WCHAR mkKeylist;
5042: WCHAR szKeyphrase[1];
5043: } MULTIKEYHELPW, *PMULTIKEYHELPW, *LPMULTIKEYHELPW;
5044: #ifdef UNICODE
5045: #define MULTIKEYHELP MULTIKEYHELPW
5046: #define PMULTIKEYHELP PMULTIKEYHELPW
5047: #define LPMULTIKEYHELP LPMULTIKEYHELPW
5048: #else
5049: #define MULTIKEYHELP MULTIKEYHELPA
5050: #define PMULTIKEYHELP PMULTIKEYHELPA
5051: #define LPMULTIKEYHELP LPMULTIKEYHELPA
5052: #endif // UNICODE
5053:
5054: typedef struct tagHELPWININFOA {
5055: int wStructSize;
5056: int x;
5057: int y;
5058: int dx;
5059: int dy;
5060: int wMax;
5061: CHAR rgchMember[2];
5062: } HELPWININFOA, *PHELPWININFOA, *LPHELPWININFOA;
5063: typedef struct tagHELPWININFOW {
5064: int wStructSize;
5065: int x;
5066: int y;
5067: int dx;
5068: int dy;
5069: int wMax;
5070: WCHAR rgchMember[2];
5071: } HELPWININFOW, *PHELPWININFOW, *LPHELPWININFOW;
5072: #ifdef UNICODE
5073: #define HELPWININFO HELPWININFOW
5074: #define PHELPWININFO PHELPWININFOW
5075: #define LPHELPWININFO LPHELPWININFOW
5076: #else
5077: #define HELPWININFO HELPWININFOA
5078: #define PHELPWININFO PHELPWININFOA
5079: #define LPHELPWININFO LPHELPWININFOA
5080: #endif // UNICODE
5081:
5082: //
5083: // Commands to pass WinHelp()
5084: //
5085:
5086: #define HELP_CONTEXT 0x0001L /* Display topic in ulTopic */
5087: #define HELP_QUIT 0x0002L /* Terminate help */
5088: #define HELP_INDEX 0x0003L /* Display index */
5089: #define HELP_CONTENTS 0x0003L
5090: #define HELP_HELPONHELP 0x0004L /* Display help on using help */
5091: #define HELP_SETINDEX 0x0005L /* Set current Index for multi index help */
5092: #define HELP_SETCONTENTS 0x0005L
5093: #define HELP_CONTEXTPOPUP 0x0008L
5094: #define HELP_FORCEFILE 0x0009L
5095: #define HELP_KEY 0x0101L /* Display topic for keyword in offabData */
5096: #define HELP_COMMAND 0x0102L
5097: #define HELP_PARTIALKEY 0x0105L
5098: #define HELP_MULTIKEY 0x0201L
5099: #define HELP_SETWINPOS 0x0203L
5100:
5101:
5102: BOOL
5103: WINAPI
5104: WinHelpA(
5105: HWND hwndMain,
5106: LPCSTR lpszHelp,
5107: UINT uCommand,
5108: DWORD dwData
5109: );
5110: BOOL
5111: WINAPI
5112: WinHelpW(
5113: HWND hwndMain,
5114: LPCWSTR lpszHelp,
5115: UINT uCommand,
5116: DWORD dwData
5117: );
5118: #ifdef UNICODE
5119: #define WinHelp WinHelpW
5120: #else
5121: #define WinHelp WinHelpA
5122: #endif // !UNICODE
5123:
5124: #endif /* NOHELP */
5125:
5126: #ifndef NOPROFILER
5127:
5128: /* function declarations for profiler routines contained in Windows libraries */
5129: int
5130: WINAPI
5131: ProfInsChk(
5132: VOID);
5133:
5134: VOID
5135: WINAPI
5136: ProfSetup(
5137: int,
5138: int);
5139:
5140: VOID
5141: WINAPI
5142: ProfSampRate(
5143: int,
5144: int);
5145:
5146: VOID
5147: WINAPI
5148: ProfStart(
5149: VOID);
5150:
5151: VOID
5152: WINAPI
5153: ProfStop(
5154: VOID);
5155:
5156: VOID
5157: WINAPI
5158: ProfClear(
5159: VOID);
5160:
5161: VOID
5162: WINAPI
5163: ProfFlush(
5164: VOID);
5165:
5166: VOID
5167: WINAPI
5168: ProfFinish(
5169: VOID);
5170:
5171: #endif /* NOPROFILER */
5172:
5173: #ifndef NOSYSPARAMSINFO
5174: /* Parameter for SystemParametersInfo() */
5175:
5176: #define SPI_GETBEEP 1
5177: #define SPI_SETBEEP 2
5178: #define SPI_GETMOUSE 3
5179: #define SPI_SETMOUSE 4
5180: #define SPI_GETBORDER 5
5181: #define SPI_SETBORDER 6
5182: #define SPI_TIMEOUTS 7
5183: #define SPI_GETKEYBOARDSPEED 10
5184: #define SPI_SETKEYBOARDSPEED 11
5185: #define SPI_LANGDRIVER 12
5186: #define SPI_ICONHORIZONTALSPACING 13
5187: #define SPI_GETSCREENSAVETIMEOUT 14
5188: #define SPI_SETSCREENSAVETIMEOUT 15
5189: #define SPI_GETSCREENSAVEACTIVE 16
5190: #define SPI_SETSCREENSAVEACTIVE 17
5191: #define SPI_GETGRIDGRANULARITY 18
5192: #define SPI_SETGRIDGRANULARITY 19
5193: #define SPI_SETDESKWALLPAPER 20
5194: #define SPI_SETDESKPATTERN 21
5195: #define SPI_GETKEYBOARDDELAY 22
5196: #define SPI_SETKEYBOARDDELAY 23
5197: #define SPI_ICONVERTICALSPACING 24
5198: #define SPI_GETICONTITLEWRAP 25
5199: #define SPI_SETICONTITLEWRAP 26
5200: #define SPI_GETMENUDROPALIGNMENT 27
5201: #define SPI_SETMENUDROPALIGNMENT 28
5202: #define SPI_SETDOUBLECLKWIDTH 29
5203: #define SPI_SETDOUBLECLKHEIGHT 30
5204: #define SPI_GETICONTITLELOGFONT 31
5205: #define SPI_SETDOUBLECLICKTIME 32
5206: #define SPI_SETMOUSEBUTTONSWAP 33
5207: #define SPI_SETICONTITLELOGFONT 34
5208: #define SPI_GETFASTTASKSWITCH 35
5209: #define SPI_SETFASTTASKSWITCH 36
5210: #define SPI_MAX 36
5211:
5212:
5213: BOOL
5214: WINAPI
5215: SystemParametersInfoA(
5216: UINT,
5217: UINT,
5218: PVOID,
5219: UINT);
5220: BOOL
5221: WINAPI
5222: SystemParametersInfoW(
5223: UINT,
5224: UINT,
5225: PVOID,
5226: UINT);
5227: #ifdef UNICODE
5228: #define SystemParametersInfo SystemParametersInfoW
5229: #else
5230: #define SystemParametersInfo SystemParametersInfoA
5231: #endif // !UNICODE
5232:
5233: /* Flags */
5234: #define SPIF_UPDATEINIFILE 0x0001
5235: #define SPIF_SENDWININICHANGE 0x0002
5236:
5237: #endif /* NOSYSPARAMSINFO */
5238: #endif // _WINUSER_
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.