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

Last change on this file since 4 was 4, checked in by ktk, 26 years ago

Import

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