source: trunk/src/user32/hooks.h@ 46

Last change on this file since 46 was 46, checked in by sandervl, 26 years ago

* empty log message *

File size: 6.7 KB
Line 
1/*
2 *
3 * Project Odin Software License can be found in LICENSE.TXT
4 *
5 */
6/*
7 * Win32 hook class for OS/2
8 *
9 * Copyright 1998 Sander van Leeuwen
10 *
11 */
12#ifndef __HOOKS_H__
13#define __HOOKS_H__
14
15class HkWindow
16{
17public:
18 HkWindow(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
19 ~HkWindow();
20
21 static HOOKPROC_O32 GetOS2Hook();
22 static BOOL UnHookWindowsHook(HHOOK hook);
23 static HHOOK FindHookProc(HOOKPROC hkprc);
24
25private:
26
27 HOOKPROC pCallback;
28 HHOOK hhook;
29 HINSTANCE hinst;
30 DWORD dwThreadId;
31 BOOL fRecursive;
32
33 static HkWindow *hooks;
34 HkWindow *next;
35
36 friend static LRESULT EXPENTRY_O32 OS2HkWindowProc(int code, WPARAM wParam, LPARAM lParam);
37
38};
39
40class HkCBT
41{
42public:
43 HkCBT(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
44 ~HkCBT();
45
46 static HOOKPROC_O32 GetOS2Hook();
47 static BOOL UnHookWindowsHook(HHOOK hook);
48 static HHOOK FindHookProc(HOOKPROC hkprc);
49 static HkCBT *FindHook(HHOOK hhook);
50 static LRESULT OS2HkCBTProc(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam);
51
52 LRESULT CallNextHook(HHOOK hhook, int nCode, WPARAM wParam, LPARAM lParam);
53 LRESULT CBTCallback(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);
54
55private:
56
57 HOOKPROC pCallback;
58 HHOOK hhook;
59 HINSTANCE hinst;
60 DWORD dwThreadId;
61 BOOL fRecursive;
62
63 //Original parameters of GetMessage hook (TODO: NOT REENTRANT!!)
64 HWND orghwnd;
65 UINT orgMsg;
66 WPARAM orgwParam;
67 LPARAM orglParam;
68
69 static HkCBT *hooks;
70 HkCBT *next;
71};
72
73class HkDebug
74{
75public:
76 HkDebug(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
77 ~HkDebug();
78
79 static HOOKPROC_O32 GetOS2Hook();
80 static BOOL UnHookWindowsHook(HHOOK hook);
81 static HHOOK FindHookProc(HOOKPROC hkprc);
82
83private:
84
85 HOOKPROC pCallback;
86 HHOOK hhook;
87 HINSTANCE hinst;
88 DWORD dwThreadId;
89 BOOL fRecursive;
90
91 static HkDebug *hooks;
92 HkDebug *next;
93
94 friend static LRESULT EXPENTRY_O32 OS2HkDebugProc(int code, WPARAM wParam, LPARAM lParam);
95
96};
97
98class HkGetMessage
99{
100public:
101 HkGetMessage(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
102 ~HkGetMessage();
103
104 static HOOKPROC_O32 GetOS2Hook();
105 static BOOL UnHookWindowsHook(HHOOK hook);
106 static HHOOK FindHookProc(HOOKPROC hkprc);
107
108private:
109
110 HOOKPROC pCallback;
111 HHOOK hhook;
112 HINSTANCE hinst;
113 DWORD dwThreadId;
114 BOOL fRecursive;
115
116 static HkGetMessage *hooks;
117 HkGetMessage *next;
118
119 friend static LRESULT EXPENTRY_O32 OS2HkGetMessageProc(int code, WPARAM wParam, LPARAM lParam);
120};
121
122class HkJrnlPlayback
123{
124public:
125 HkJrnlPlayback(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
126 ~HkJrnlPlayback();
127
128 static HOOKPROC_O32 GetOS2Hook();
129 static BOOL UnHookWindowsHook(HHOOK hook);
130 static HHOOK FindHookProc(HOOKPROC hkprc);
131
132private:
133
134 HOOKPROC pCallback;
135 HHOOK hhook;
136 HINSTANCE hinst;
137 DWORD dwThreadId;
138 BOOL fRecursive;
139
140 static HkJrnlPlayback *hooks;
141 HkJrnlPlayback *next;
142
143 friend static LRESULT EXPENTRY_O32 OS2HkJrnlPlaybackProc(int code, WPARAM wParam, LPARAM lParam);
144};
145
146class HkJrnlRecord
147{
148public:
149 HkJrnlRecord(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
150 ~HkJrnlRecord();
151
152 static HOOKPROC_O32 GetOS2Hook();
153 static BOOL UnHookWindowsHook(HHOOK hook);
154 static HHOOK FindHookProc(HOOKPROC hkprc);
155
156private:
157
158 HOOKPROC pCallback;
159 HHOOK hhook;
160 HINSTANCE hinst;
161 DWORD dwThreadId;
162 BOOL fRecursive;
163
164 static HkJrnlRecord *hooks;
165 HkJrnlRecord *next;
166
167 friend static LRESULT EXPENTRY_O32 OS2HkJrnlRecordProc(int code, WPARAM wParam, LPARAM lParam);
168};
169
170
171class HkKeyboard
172{
173public:
174 HkKeyboard(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
175 ~HkKeyboard();
176
177 static HOOKPROC_O32 GetOS2Hook();
178 static BOOL UnHookWindowsHook(HHOOK hook);
179 static HHOOK FindHookProc(HOOKPROC hkprc);
180
181private:
182
183 HOOKPROC pCallback;
184 HHOOK hhook;
185 HINSTANCE hinst;
186 DWORD dwThreadId;
187 BOOL fRecursive;
188
189 static HkKeyboard *hooks;
190 HkKeyboard *next;
191
192 friend static LRESULT EXPENTRY_O32 OS2HkKeyboardProc(int code, WPARAM wParam, LPARAM lParam);
193};
194
195class HkMouse
196{
197public:
198 HkMouse(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
199 ~HkMouse();
200
201 static HOOKPROC_O32 GetOS2Hook();
202 static BOOL UnHookWindowsHook(HHOOK hook);
203 static HHOOK FindHookProc(HOOKPROC hkprc);
204
205private:
206
207 HOOKPROC pCallback;
208 HHOOK hhook;
209 HINSTANCE hinst;
210 DWORD dwThreadId;
211 BOOL fRecursive;
212
213 static HkMouse *hooks;
214 HkMouse *next;
215 friend static LRESULT EXPENTRY_O32 OS2HkMouseProc(int code, WPARAM wParam, LPARAM lParam);
216};
217
218class HkMsgFilter
219{
220public:
221 HkMsgFilter(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
222 ~HkMsgFilter();
223
224 static HOOKPROC_O32 GetOS2Hook();
225 static BOOL UnHookWindowsHook(HHOOK hook);
226 static HHOOK FindHookProc(HOOKPROC hkprc);
227
228private:
229
230 HOOKPROC pCallback;
231 HHOOK hhook;
232 HINSTANCE hinst;
233 DWORD dwThreadId;
234 BOOL fRecursive;
235
236 static HkMsgFilter *hooks;
237 HkMsgFilter *next;
238 friend static LRESULT EXPENTRY_O32 OS2HkMsgFilterProc(int code, WPARAM wParam, LPARAM lParam);
239};
240
241class HkShell
242{
243public:
244 HkShell(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
245 ~HkShell();
246
247 static HOOKPROC_O32 GetOS2Hook();
248 static BOOL UnHookWindowsHook(HHOOK hook);
249 static HHOOK FindHookProc(HOOKPROC hkprc);
250
251private:
252
253 HOOKPROC pCallback;
254 HHOOK hhook;
255 HINSTANCE hinst;
256 DWORD dwThreadId;
257 BOOL fRecursive;
258
259 static HkShell *hooks;
260 HkShell *next;
261
262 friend static LRESULT EXPENTRY_O32 OS2HkShellProc(int code, WPARAM wParam, LPARAM lParam);
263};
264
265class HkSysMsgFilter
266{
267public:
268 HkSysMsgFilter(HHOOK hook, HOOKPROC pUserCallback, HINSTANCE hinst, DWORD dwThreadId);
269 ~HkSysMsgFilter();
270
271 static HOOKPROC_O32 GetOS2Hook();
272 static BOOL UnHookWindowsHook(HHOOK hook);
273 static HHOOK FindHookProc(HOOKPROC hkprc);
274
275private:
276
277 HOOKPROC pCallback;
278 HHOOK hhook;
279 HINSTANCE hinst;
280 DWORD dwThreadId;
281 BOOL fRecursive;
282
283 static HkSysMsgFilter *hooks;
284 HkSysMsgFilter *next;
285
286 friend static LRESULT EXPENTRY_O32 OS2HkSysMsgFilterProc(int code, WPARAM wParam, LPARAM lParam);
287};
288
289
290#endif
Note: See TracBrowser for help on using the repository browser.