0228293531d3faa4fb980a6d733191ea4940e502
[reactos.git] / reactos / w32api / include / winable.h
1 #ifndef _WINABLE_H
2 #define _WINABLE_H
3 #if __GNUC__ >=3
4 #pragma GCC system_header
5 #endif
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10
11 #if (_WIN32_WINNT < 0x0403)
12 #define INPUT_MOUSE 0x00000000
13 #define INPUT_KEYBOARD 0x00000001
14 #define INPUT_HARDWARE 0x00000002
15 #endif /* (_WIN32_WINNT < 0x04030) */
16 #if (WINVER < 0x0500)
17 #define CHILDID_SELF 0
18 #define OBJID_WINDOW 0x00000000
19 #define OBJID_SYSMENU 0xFFFFFFFF
20 #define OBJID_TITLEBAR 0xFFFFFFFE
21 #define OBJID_MENU 0xFFFFFFFD
22 #define OBJID_CLIENT 0xFFFFFFFC
23 #define OBJID_VSCROLL 0xFFFFFFFB
24 #define OBJID_HSCROLL 0xFFFFFFFA
25 #define OBJID_SIZEGRIP 0xFFFFFFF9
26 #define OBJID_CARET 0xFFFFFFF8
27 #define OBJID_CURSOR 0xFFFFFFF7
28 #define OBJID_ALERT 0xFFFFFFF6
29 #define OBJID_SOUND 0xFFFFFFF5
30 #define GUI_CARETBLINKING 0x00000001
31 #define GUI_INMOVESIZE 0x00000002
32 #define GUI_INMENUMODE 0x00000004
33 #define GUI_SYSTEMMENUMODE 0x00000008
34 #define GUI_POPUPMENUMODE 0x00000010
35 #define WINEVENT_OUTOFCONTEXT 0x0000
36 #define WINEVENT_SKIPOWNTHREAD 0x0001
37 #define WINEVENT_SKIPOWNPROCESS 0x0002
38 #define WINEVENT_INCONTEXT 0x0004
39 #endif /* (WINVER < 0x0500) */
40 #if (_WIN32_WINNT < 0x0403)
41 typedef struct tagMOUSEINPUT {
42 LONG dx;
43 LONG dy;
44 DWORD mouseData;
45 DWORD dwFlags;
46 DWORD time;
47 ULONG_PTR dwExtraInfo;
48 } MOUSEINPUT,*PMOUSEINPUT;
49 typedef struct tagKEYBDINPUT {
50 WORD wVk;
51 WORD wScan;
52 DWORD dwFlags;
53 DWORD time;
54 ULONG_PTR dwExtraInfo;
55 } KEYBDINPUT,*PKEYBDINPUT;
56 typedef struct tagHARDWAREINPUT {
57 DWORD uMsg;
58 WORD wParamL;
59 WORD wParamH;
60 } HARDWAREINPUT,*PHARDWAREINPUT;
61 typedef struct tagINPUT {
62 DWORD type;
63 _ANONYMOUS_UNION union {
64 MOUSEINPUT mi;
65 KEYBDINPUT ki;
66 HARDWAREINPUT hi;
67 } DUMMYUNIONNAME;
68 } INPUT,*PINPUT,*LPINPUT;
69 #endif /* (_WIN32_WINNT < 0x0403) */
70 #if (WINVER < 0x0500)
71 typedef VOID (*WINEVENTPROC)(HWINEVENTHOOK,DWORD,HWND,LONG,LONG,DWORD,DWORD);
72 typedef struct tagGUITHREADINFO {
73 DWORD cbSize;
74 DWORD flags;
75 HWND hwndActive;
76 HWND hwndFocus;
77 HWND hwndCapture;
78 HWND hwndMenuOwner;
79 HWND hwndMoveSize;
80 HWND hwndCaret;
81 RECT rcCaret;
82 } GUITHREADINFO,*PGUITHREADINFO,*LPGUITHREADINFO;
83 #endif /* (WINVER < 0x0500) */
84
85 BOOL WINAPI BlockInput(BOOL);
86 #if (_WIN32_WINNT < 0x0403)
87 UINT WINAPI SendInput(UINT,LPINPUT,int);
88 #endif
89 #if (WINVER < 0x0500)
90 BOOL WINAPI GetGUIThreadInfo(DWORD,LPGUITHREADINFO);
91 void WINAPI NotifyWinEvent(DWORD,HWND,LONG,LONG);
92 HWINEVENTHOOK WINAPI SetWinEventHook(UINT,UINT,HMODULE,WINEVENTPROC,DWORD,DWORD,UINT);
93 BOOL WINAPI UnhookWinEvent(HWINEVENTHOOK);
94 #endif /* (WINVER < 0x0500) */
95
96 #ifdef __cplusplus
97 }
98 #endif
99 #endif