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

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

Moved new user32 here

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