1 | /* $Id: wndproc.cpp,v 1.4 1999-06-10 16:50:37 phaller Exp $ */
|
---|
2 |
|
---|
3 | /*
|
---|
4 | *
|
---|
5 | * Project Odin Software License can be found in LICENSE.TXT
|
---|
6 | *
|
---|
7 | */
|
---|
8 | /*
|
---|
9 | * Win32 window procedure class for OS/2
|
---|
10 | *
|
---|
11 | * Copyright 1998 Sander van Leeuwen
|
---|
12 | *
|
---|
13 | */
|
---|
14 | #include <os2win.h>
|
---|
15 | #include <dde.h>
|
---|
16 | #include <stdio.h>
|
---|
17 | #include <string.h>
|
---|
18 | #include <stdarg.h>
|
---|
19 | #include <assert.h>
|
---|
20 | #include "misc.h"
|
---|
21 | #include "user32.h"
|
---|
22 | #include "wndproc.h"
|
---|
23 | #include "wndsubproc.h"
|
---|
24 | #include "wndclass.h"
|
---|
25 | #include "dlgconvert.h"
|
---|
26 | #include "hooks.h"
|
---|
27 |
|
---|
28 | #ifdef DEBUG
|
---|
29 | char *GetMsgText(int Msg);
|
---|
30 | #endif
|
---|
31 |
|
---|
32 | //******************************************************************************
|
---|
33 | //******************************************************************************
|
---|
34 | Win32WindowProc *SYSTEM CreateWindowProc(WNDPROC pUserCallback)
|
---|
35 | {
|
---|
36 | return new Win32WindowProc(pUserCallback);
|
---|
37 | }
|
---|
38 | //******************************************************************************
|
---|
39 | //******************************************************************************
|
---|
40 | Win32WindowProc::Win32WindowProc(WNDPROC pUserCallback)
|
---|
41 | : hwnd(0), next(NULL), os2dlg(NULL), win32class(0)
|
---|
42 | {
|
---|
43 | //Insert it in front of the rest
|
---|
44 | next = windows;
|
---|
45 | windows = this;
|
---|
46 | threadid = (DWORD)GetCurrentThreadId();
|
---|
47 |
|
---|
48 | pCallback = pUserCallback;
|
---|
49 | fIsWindow = TRUE;
|
---|
50 | }
|
---|
51 | //******************************************************************************
|
---|
52 | //******************************************************************************
|
---|
53 | Win32WindowProc::Win32WindowProc(WNDPROC pUserCallback, DLGTEMPLATE *os2dlg)
|
---|
54 | : hwnd(0), next(NULL), os2dlg(NULL), win32class(0)
|
---|
55 | {
|
---|
56 | //Insert it in front of the rest
|
---|
57 | next = windows;
|
---|
58 | windows = this;
|
---|
59 | threadid = (DWORD)GetCurrentThreadId();
|
---|
60 | this->os2dlg = os2dlg; //delete on destruction
|
---|
61 |
|
---|
62 | pCallback = pUserCallback;
|
---|
63 | fIsWindow = FALSE;
|
---|
64 | }
|
---|
65 | //******************************************************************************
|
---|
66 | //******************************************************************************
|
---|
67 | Win32WindowProc::Win32WindowProc(HINSTANCE hinst, LPCSTR lpszClassName)
|
---|
68 | : hwnd(0), next(NULL), os2dlg(NULL)
|
---|
69 | {
|
---|
70 | WNDCLASSA wc;
|
---|
71 |
|
---|
72 | assert(GetClassInfoA(hinst, lpszClassName, &wc) == TRUE);
|
---|
73 | // pCallback = Win32WindowClass::GetClassCallback(hinst, (LPSTR)wc.lpszClassName);
|
---|
74 | pCallback = Win32WindowClass::GetClassCallback((LPSTR)wc.lpszClassName);
|
---|
75 | //test (8nov)
|
---|
76 | if(pCallback == NULL) {//system class
|
---|
77 | pCallback = (WNDPROC)wc.lpfnWndProc;
|
---|
78 | }
|
---|
79 | // assert(pCallback != NULL);
|
---|
80 |
|
---|
81 | //Insert it in front of the rest
|
---|
82 | next = windows;
|
---|
83 | windows = this;
|
---|
84 | threadid = (DWORD)GetCurrentThreadId();
|
---|
85 |
|
---|
86 | fIsWindow = TRUE;
|
---|
87 |
|
---|
88 | win32class = Win32WindowClass::FindClass((LPSTR)lpszClassName);
|
---|
89 |
|
---|
90 | }
|
---|
91 | //******************************************************************************
|
---|
92 | //******************************************************************************
|
---|
93 | Win32WindowProc::~Win32WindowProc()
|
---|
94 | {
|
---|
95 | Win32WindowProc *window = Win32WindowProc::windows;
|
---|
96 |
|
---|
97 | /* @@@PH 98/07/13 what's this whole code good for ? */
|
---|
98 | if(window == this)
|
---|
99 | {
|
---|
100 | windows = next;
|
---|
101 | }
|
---|
102 | else
|
---|
103 | {
|
---|
104 | /* @@@PH 98/07/13 window can be NULL */
|
---|
105 | if (window != NULL)
|
---|
106 | while(window->next != NULL)
|
---|
107 | {
|
---|
108 | if(window->next == this)
|
---|
109 | {
|
---|
110 | window->next = next;
|
---|
111 | break;
|
---|
112 | }
|
---|
113 | window = window->next;
|
---|
114 | }
|
---|
115 | }
|
---|
116 |
|
---|
117 | if(os2dlg)
|
---|
118 | {
|
---|
119 | DeleteWin32DlgTemplate(os2dlg);
|
---|
120 | os2dlg = NULL;
|
---|
121 | }
|
---|
122 | }
|
---|
123 | //******************************************************************************
|
---|
124 | //******************************************************************************
|
---|
125 | BOOL Win32WindowProc::FindWindowProc(Win32WindowProc *wndproc)
|
---|
126 | {
|
---|
127 | Win32WindowProc *window = Win32WindowProc::windows;
|
---|
128 |
|
---|
129 | while(window != NULL) {
|
---|
130 | if(window == wndproc) {
|
---|
131 | return(TRUE);
|
---|
132 | }
|
---|
133 | window = window->next;
|
---|
134 | }
|
---|
135 | return(FALSE);
|
---|
136 | }
|
---|
137 | //******************************************************************************
|
---|
138 | //******************************************************************************
|
---|
139 | WNDPROC_O32 Win32WindowProc::GetOS2Callback()
|
---|
140 | {
|
---|
141 | return(WndCallback);
|
---|
142 | }
|
---|
143 | //******************************************************************************
|
---|
144 | //******************************************************************************
|
---|
145 | Win32WindowProc *Win32WindowProc::FindProc(HWND hwnd)
|
---|
146 | {
|
---|
147 | Win32WindowProc *window = Win32WindowProc::windows;
|
---|
148 |
|
---|
149 | while(window != NULL) {
|
---|
150 | if(window->hwnd == hwnd) {
|
---|
151 | return(window);
|
---|
152 | }
|
---|
153 | window = window->next;
|
---|
154 | }
|
---|
155 | dprintf(("Win32WindowProc::FindProc, can't find window %X!\n", hwnd));
|
---|
156 | return(NULL);
|
---|
157 | }
|
---|
158 | //******************************************************************************
|
---|
159 | //******************************************************************************
|
---|
160 | void Win32WindowProc::DeleteWindow(HWND hwnd)
|
---|
161 | {
|
---|
162 | Win32WindowProc *window = FindProc(hwnd);
|
---|
163 |
|
---|
164 | #ifdef DEBUG
|
---|
165 | WriteLog("::DeleteWindow, destroy window/dialog %X!!\n", hwnd);
|
---|
166 | #endif
|
---|
167 | if(window) {
|
---|
168 | delete(window);
|
---|
169 | return;
|
---|
170 | }
|
---|
171 | #ifdef DEBUG
|
---|
172 | WriteLog("::DeleteWindow, can't find window %X!!\n", hwnd);
|
---|
173 | #endif
|
---|
174 | }
|
---|
175 | //******************************************************************************
|
---|
176 | //******************************************************************************
|
---|
177 | DWORD MapOEMToRealKey(DWORD wParam, DWORD lParam)
|
---|
178 | {
|
---|
179 | switch(wParam) {
|
---|
180 | case VK_PRIOR: //page up
|
---|
181 | lParam &= 0xFF00FFFF;
|
---|
182 | lParam |= 0x00510000;
|
---|
183 | break;
|
---|
184 | case VK_NEXT: //page down
|
---|
185 | lParam &= 0xFF00FFFF;
|
---|
186 | lParam |= 0x00490000;
|
---|
187 | break;
|
---|
188 | case VK_END:
|
---|
189 | lParam &= 0xFF00FFFF;
|
---|
190 | lParam |= 0x004F0000;
|
---|
191 | break;
|
---|
192 | case VK_HOME:
|
---|
193 | lParam &= 0xFF00FFFF;
|
---|
194 | lParam |= 0x00470000;
|
---|
195 | break;
|
---|
196 | case VK_UP:
|
---|
197 | lParam &= 0xFF00FFFF;
|
---|
198 | lParam |= 0x00480000;
|
---|
199 | break;
|
---|
200 | case VK_LEFT:
|
---|
201 | lParam &= 0xFF00FFFF;
|
---|
202 | lParam |= 0x004B0000;
|
---|
203 | break;
|
---|
204 | case VK_DOWN:
|
---|
205 | lParam &= 0xFF00FFFF;
|
---|
206 | lParam |= 0x00500000;
|
---|
207 | break;
|
---|
208 | case VK_RIGHT:
|
---|
209 | lParam &= 0xFF00FFFF;
|
---|
210 | lParam |= 0x004D0000;
|
---|
211 | break;
|
---|
212 | case VK_DELETE:
|
---|
213 | lParam &= 0xFF00FFFF;
|
---|
214 | lParam |= 0x00530000;
|
---|
215 | break;
|
---|
216 | case VK_INSERT:
|
---|
217 | lParam &= 0xFF00FFFF;
|
---|
218 | lParam |= 0x00520000;
|
---|
219 | break;
|
---|
220 | }
|
---|
221 | return(lParam);
|
---|
222 | }
|
---|
223 | //******************************************************************************
|
---|
224 | //#undef DEBUG
|
---|
225 | //#define DEBUG1
|
---|
226 | //******************************************************************************
|
---|
227 | LRESULT EXPENTRY_O32 WndCallback(HWND hwnd, UINT Msg, WPARAM wParam, LPARAM lParam)
|
---|
228 | {
|
---|
229 | Win32WindowProc *curwnd = Win32WindowProc::windows;
|
---|
230 | LRESULT rc;
|
---|
231 |
|
---|
232 | if(HkCBT::OS2HkCBTProc(hwnd, Msg, wParam, lParam) == TRUE) {//hook swallowed msg
|
---|
233 | return(0);
|
---|
234 | }
|
---|
235 | while(curwnd != NULL) {
|
---|
236 | if(curwnd->hwnd == hwnd) {
|
---|
237 | //SvL: Correct Open32 key mapping bug
|
---|
238 | if(Msg == WM_KEYDOWN || Msg == WM_KEYUP || Msg == WM_CHAR) {
|
---|
239 | // dprintf(("WM_KEYDOWN %X %08X\n", wParam, lParam));
|
---|
240 | lParam = MapOEMToRealKey(wParam, lParam);
|
---|
241 | }
|
---|
242 | #ifdef DEBUG
|
---|
243 | WriteLog("***************Message %s for window/dialog %X\n", GetMsgText(Msg), hwnd);
|
---|
244 | #endif
|
---|
245 | // if(Msg == WM_CREATE || Msg == WM_INITDIALOG) {//Open32 isn't sending WM_NCCREATE messages!!
|
---|
246 | if(Msg == WM_CREATE) {//Open32 isn't sending WM_NCCREATE messages!!
|
---|
247 | #ifdef DEBUG1
|
---|
248 | WriteLog("WM_NCCREATE\n");
|
---|
249 | #endif
|
---|
250 | if(curwnd->pCallback(hwnd, WM_NCCREATE, 0, lParam) == 0) {
|
---|
251 | dprintf(("WM_NCCREATE returned FALSE\n"));
|
---|
252 | return(-1); //don't create window
|
---|
253 | }
|
---|
254 | //TODO
|
---|
255 | #if 0
|
---|
256 | if(curwnd->pCallback(hwnd, WM_NCCALCSIZE, 0, lParam) == 0) {
|
---|
257 | #ifdef DEBUG1
|
---|
258 | WriteLog("WM_NCCREATE returned FALSE\n");
|
---|
259 | #endif
|
---|
260 | return(-1); //don't create window
|
---|
261 | }
|
---|
262 | #endif
|
---|
263 | #ifdef DEBUG1
|
---|
264 | WriteLog("WM_NCCREATE, continue window creation\n");
|
---|
265 | #endif
|
---|
266 | }
|
---|
267 | #if 1
|
---|
268 | if(Msg == WM_ACTIVATE && LOWORD(wParam) != WA_INACTIVE)
|
---|
269 | {//SvL: Bugfix, Open32 is NOT sending this to the window (messes up Solitaire)
|
---|
270 | HDC hdc = GetDC(hwnd);
|
---|
271 |
|
---|
272 | curwnd->pCallback(hwnd, WM_ERASEBKGND, hdc, 0);
|
---|
273 | ReleaseDC(hwnd, hdc);
|
---|
274 | }
|
---|
275 | #endif
|
---|
276 | rc = curwnd->pCallback(hwnd, Msg, wParam, lParam);
|
---|
277 | #ifdef DEBUG1
|
---|
278 | WriteLog("***************Message processed rc = %d\n", rc);
|
---|
279 | #endif
|
---|
280 | if(Msg == WM_NCDESTROY) {
|
---|
281 | dprintf(("WM_NCDESTROY received for window/dialog %X\n", curwnd->hwnd));
|
---|
282 | Win32WindowSubProc::DeleteSubWindow(hwnd); //if present
|
---|
283 | delete curwnd;
|
---|
284 | }
|
---|
285 | return rc;
|
---|
286 | }
|
---|
287 | curwnd = curwnd->next;
|
---|
288 | }
|
---|
289 | //Message for window/dialog that's just been created
|
---|
290 | //TODO: This should be thread safe, right?
|
---|
291 | DWORD threadid = (DWORD)GetCurrentThreadId();
|
---|
292 | curwnd = (Win32WindowProc *)Win32WindowProc::windows;
|
---|
293 | while(curwnd != NULL) {
|
---|
294 | if(curwnd->hwnd == 0 && curwnd->threadid == threadid) {
|
---|
295 | #ifdef DEBUG1
|
---|
296 | WriteLog("***************First message %s for window/dialog %X\n", GetMsgText(Msg), hwnd);
|
---|
297 | #endif
|
---|
298 | curwnd->SetWindowHandle(hwnd);
|
---|
299 | // if(Msg == WM_CREATE || Msg == WM_INITDIALOG) {//Open32 isn't sending WM_NCCREATE messages!!
|
---|
300 | if(Msg == WM_CREATE) {//Open32 isn't sending WM_NCCREATE messages!!
|
---|
301 | #ifdef DEBUG1
|
---|
302 | WriteLog("WM_NCCREATE\n");
|
---|
303 | #endif
|
---|
304 | if(curwnd->pCallback(hwnd, WM_NCCREATE, 0, lParam) == 0) {
|
---|
305 | dprintf(("WM_NCCREATE returned FALSE\n"));
|
---|
306 | return(-1); //don't create window
|
---|
307 | }
|
---|
308 | #ifdef DEBUG1
|
---|
309 | WriteLog("WM_NCCREATE, continue window creation\n");
|
---|
310 | #endif
|
---|
311 | }
|
---|
312 | rc = curwnd->pCallback(hwnd, Msg, wParam, lParam);
|
---|
313 | if(Msg == WM_NCDESTROY) {
|
---|
314 | dprintf(("WM_NCDESTROY received for window/dialog %X\n", curwnd->hwnd));
|
---|
315 | Win32WindowSubProc::DeleteSubWindow(hwnd); //if present
|
---|
316 | delete curwnd;
|
---|
317 | }
|
---|
318 | return rc;
|
---|
319 | }
|
---|
320 | curwnd = curwnd->next;
|
---|
321 | }
|
---|
322 | #ifdef DEBUG1
|
---|
323 | WriteLog("Dialog control??\n");
|
---|
324 | #endif
|
---|
325 | //Could be a dialog control using a registered class, so check this:
|
---|
326 | char szClass[128];
|
---|
327 | Win32WindowClass *wclass;
|
---|
328 | Win32WindowProc *wnd;
|
---|
329 |
|
---|
330 | if(GetClassNameA(hwnd, szClass, sizeof(szClass))) {
|
---|
331 | wclass = Win32WindowClass::FindClass(szClass);
|
---|
332 | if(wclass) {
|
---|
333 | wnd = new Win32WindowProc(wclass->GetClassCallback(szClass));
|
---|
334 | wnd->SetWindowHandle(hwnd);
|
---|
335 | return(WndCallback(hwnd, Msg, wParam, lParam));
|
---|
336 | }
|
---|
337 | }
|
---|
338 | dprintf(("wnd Callback, can't find window %X %d!!!!\n", hwnd, Msg));
|
---|
339 | return 0;
|
---|
340 | }
|
---|
341 | //******************************************************************************
|
---|
342 | //******************************************************************************
|
---|
343 | #ifdef DEBUG
|
---|
344 | typedef struct
|
---|
345 | {
|
---|
346 | LPSTR pszMsg;
|
---|
347 | UINT msg;
|
---|
348 | UINT Flags;
|
---|
349 | } MSGDESC, *PMSGDESC;
|
---|
350 |
|
---|
351 | //
|
---|
352 | // Message Table Flags
|
---|
353 | //
|
---|
354 | #define MTF_SELECTED 0x00000001
|
---|
355 |
|
---|
356 | #define MTF_TYPE_MOUSE 0x00010000
|
---|
357 | #define MTF_TYPE_DDE 0x00020000
|
---|
358 | #define MTF_TYPE_CLIP 0x00040000
|
---|
359 | #define MTF_TYPE_NC 0x00080000
|
---|
360 | #define MTF_TYPE_KEYBD 0x00100000
|
---|
361 | #define MTF_TYPE_LB 0x00200000
|
---|
362 | #define MTF_TYPE_BM 0x00400000
|
---|
363 | #define MTF_TYPE_STM 0x00800000
|
---|
364 | #define MTF_TYPE_CB 0x01000000
|
---|
365 | #define MTF_TYPE_EM 0x02000000
|
---|
366 | #ifdef FE_IME
|
---|
367 | #define MTF_TYPE_IME 0x04000000
|
---|
368 | #endif
|
---|
369 |
|
---|
370 | //
|
---|
371 | // Message description table. Describes each message that can be spied on.
|
---|
372 | // This table must be kept in sorted order.
|
---|
373 | //
|
---|
374 | MSGDESC gaMsgs[] =
|
---|
375 | {
|
---|
376 | { "WM_NULL", WM_NULL, // 0x0000
|
---|
377 | 0},
|
---|
378 | { "WM_CREATE", WM_CREATE, // 0x0001
|
---|
379 | 0},
|
---|
380 | { "WM_DESTROY", WM_DESTROY, // 0x0002
|
---|
381 | 0},
|
---|
382 | { "WM_MOVE", WM_MOVE, // 0x0003
|
---|
383 | 0},
|
---|
384 | { "WM_SIZE", WM_SIZE, // 0x0005
|
---|
385 | 0},
|
---|
386 | { "WM_ACTIVATE", WM_ACTIVATE, // 0x0006
|
---|
387 | 0},
|
---|
388 | { "WM_SETFOCUS", WM_SETFOCUS, // 0x0007
|
---|
389 | 0},
|
---|
390 | { "WM_KILLFOCUS", WM_KILLFOCUS, // 0x0008
|
---|
391 | 0},
|
---|
392 | { "WM_ENABLE", WM_ENABLE, // 0x000A
|
---|
393 | 0},
|
---|
394 | { "WM_SETREDRAW", WM_SETREDRAW, // 0x000B
|
---|
395 | 0},
|
---|
396 | { "WM_SETTEXT", WM_SETTEXT, // 0x000C
|
---|
397 | 0},
|
---|
398 | { "WM_GETTEXT", WM_GETTEXT, // 0x000D
|
---|
399 | 0},
|
---|
400 | { "WM_GETTEXTLENGTH", WM_GETTEXTLENGTH, // 0x000E
|
---|
401 | 0},
|
---|
402 | { "WM_PAINT", WM_PAINT, // 0x000F
|
---|
403 | 0},
|
---|
404 | { "WM_CLOSE", WM_CLOSE, // 0x0010
|
---|
405 | 0},
|
---|
406 | { "WM_QUERYENDSESSION", WM_QUERYENDSESSION, // 0x0011
|
---|
407 | 0},
|
---|
408 | { "WM_QUIT", WM_QUIT, // 0x0012
|
---|
409 | 0},
|
---|
410 | { "WM_QUERYOPEN", WM_QUERYOPEN, // 0x0013
|
---|
411 | 0},
|
---|
412 | { "WM_ERASEBKGND", WM_ERASEBKGND, // 0x0014
|
---|
413 | 0},
|
---|
414 | { "WM_SYSCOLORCHANGE", WM_SYSCOLORCHANGE, // 0x0015
|
---|
415 | 0},
|
---|
416 | { "WM_ENDSESSION", WM_ENDSESSION, // 0x0016
|
---|
417 | 0},
|
---|
418 | { "WM_SHOWWINDOW", WM_SHOWWINDOW, // 0x0018
|
---|
419 | 0},
|
---|
420 | { "WM_WININICHANGE", WM_WININICHANGE, // 0x001A
|
---|
421 | 0},
|
---|
422 | { "WM_DEVMODECHANGE", WM_DEVMODECHANGE, // 0x001B
|
---|
423 | 0},
|
---|
424 | { "WM_ACTIVATEAPP", WM_ACTIVATEAPP, // 0x001C
|
---|
425 | 0},
|
---|
426 | { "WM_FONTCHANGE", WM_FONTCHANGE, // 0x001D
|
---|
427 | 0},
|
---|
428 | { "WM_TIMECHANGE", WM_TIMECHANGE, // 0x001E
|
---|
429 | 0},
|
---|
430 | { "WM_CANCELMODE", WM_CANCELMODE, // 0x001F
|
---|
431 | 0},
|
---|
432 | { "WM_SETCURSOR", WM_SETCURSOR, // 0x0020
|
---|
433 | MTF_TYPE_MOUSE},
|
---|
434 | { "WM_MOUSEACTIVATE", WM_MOUSEACTIVATE, // 0x0021
|
---|
435 | MTF_TYPE_MOUSE},
|
---|
436 | { "WM_CHILDACTIVATE", WM_CHILDACTIVATE, // 0x0022
|
---|
437 | 0},
|
---|
438 | { "WM_QUEUESYNC", WM_QUEUESYNC, // 0x0023
|
---|
439 | 0},
|
---|
440 | { "WM_GETMINMAXINFO", WM_GETMINMAXINFO, // 0x0024
|
---|
441 | 0},
|
---|
442 | { "WM_PAINTICON", WM_PAINTICON, // 0x0026
|
---|
443 | 0},
|
---|
444 | { "WM_ICONERASEBKGND", WM_ICONERASEBKGND, // 0x0027
|
---|
445 | 0},
|
---|
446 | { "WM_NEXTDLGCTL", WM_NEXTDLGCTL, // 0x0028
|
---|
447 | 0},
|
---|
448 | { "WM_SPOOLERSTATUS", WM_SPOOLERSTATUS, // 0x002A
|
---|
449 | 0},
|
---|
450 | { "WM_DRAWITEM", WM_DRAWITEM, // 0x002B
|
---|
451 | 0},
|
---|
452 | { "WM_MEASUREITEM", WM_MEASUREITEM, // 0x002C
|
---|
453 | 0},
|
---|
454 | { "WM_DELETEITEM", WM_DELETEITEM, // 0x002D
|
---|
455 | 0},
|
---|
456 | { "WM_VKEYTOITEM", WM_VKEYTOITEM, // 0x002E
|
---|
457 | MTF_TYPE_KEYBD},
|
---|
458 | { "WM_CHARTOITEM", WM_CHARTOITEM, // 0x002F
|
---|
459 | MTF_TYPE_KEYBD},
|
---|
460 | { "WM_SETFONT", WM_SETFONT, // 0x0030
|
---|
461 | 0},
|
---|
462 | { "WM_GETFONT", WM_GETFONT, // 0x0031
|
---|
463 | 0},
|
---|
464 | { "WM_SETHOTKEY", WM_SETHOTKEY, // 0x0032
|
---|
465 | MTF_TYPE_KEYBD},
|
---|
466 | { "WM_GETHOTKEY", WM_GETHOTKEY, // 0x0033
|
---|
467 | MTF_TYPE_KEYBD},
|
---|
468 | { "WM_QUERYDRAGICON", WM_QUERYDRAGICON, // 0x0037
|
---|
469 | 0},
|
---|
470 | { "WM_COMPAREITEM", WM_COMPAREITEM, // 0x0039
|
---|
471 | 0},
|
---|
472 | { "WM_COMPACTING", WM_COMPACTING, // 0x0041
|
---|
473 | 0},
|
---|
474 | { "WM_WINDOWPOSCHANGING", WM_WINDOWPOSCHANGING, // 0x0046
|
---|
475 | 0},
|
---|
476 | { "WM_WINDOWPOSCHANGED", WM_WINDOWPOSCHANGED, // 0x0047
|
---|
477 | 0},
|
---|
478 | { "WM_POWER", WM_POWER, // 0x0048
|
---|
479 | 0},
|
---|
480 | { "WM_COPYDATA", WM_COPYDATA, // 0x004A
|
---|
481 | 0},
|
---|
482 | { "WM_CANCELJOURNAL", WM_CANCELJOURNAL, // 0x004B
|
---|
483 | 0},
|
---|
484 | { "WM_NOTIFY", WM_NOTIFY, 0}, // 0x4E
|
---|
485 | { "WM_INPUTLANGCHANGEREQUEST", WM_INPUTLANGCHANGEREQUEST, 0}, //0x50
|
---|
486 | { "WM_INPUTLANGCHANGE", WM_INPUTLANGCHANGE, 0}, // 0x51
|
---|
487 | { "WM_TCARD", WM_TCARD, 0}, // 0x52
|
---|
488 | { "WM_HELP", WM_HELP, 0}, // 0x53
|
---|
489 | { "WM_USERCHANGED", WM_USERCHANGED, 0}, // 0x54
|
---|
490 | { "WM_NOTIFYFORMAT", WM_NOTIFYFORMAT, 0}, // 0x55
|
---|
491 | { "WM_NCCREATE", WM_NCCREATE, // 0x0081
|
---|
492 | MTF_TYPE_NC},
|
---|
493 | { "WM_NCDESTROY", WM_NCDESTROY, // 0x0082
|
---|
494 | MTF_TYPE_NC},
|
---|
495 | { "WM_NCCALCSIZE", WM_NCCALCSIZE, // 0x0083
|
---|
496 | MTF_TYPE_NC},
|
---|
497 | { "WM_NCHITTEST", WM_NCHITTEST, // 0x0084
|
---|
498 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
499 | { "WM_NCPAINT", WM_NCPAINT, // 0x0085
|
---|
500 | MTF_TYPE_NC},
|
---|
501 | { "WM_NCACTIVATE", WM_NCACTIVATE, // 0x0086
|
---|
502 | MTF_TYPE_NC},
|
---|
503 | { "WM_GETDLGCODE", WM_GETDLGCODE, // 0x0087
|
---|
504 | 0},
|
---|
505 | { "WM_NCMOUSEMOVE", WM_NCMOUSEMOVE, // 0x00A0
|
---|
506 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
507 | { "WM_NCLBUTTONDOWN", WM_NCLBUTTONDOWN, // 0x00A1
|
---|
508 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
509 | { "WM_NCLBUTTONUP", WM_NCLBUTTONUP, // 0x00A2
|
---|
510 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
511 | { "WM_NCLBUTTONDBLCLK", WM_NCLBUTTONDBLCLK, // 0x00A3
|
---|
512 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
513 | { "WM_NCRBUTTONDOWN", WM_NCRBUTTONDOWN, // 0x00A4
|
---|
514 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
515 | { "WM_NCRBUTTONUP", WM_NCRBUTTONUP, // 0x00A5
|
---|
516 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
517 | { "WM_NCRBUTTONDBLCLK", WM_NCRBUTTONDBLCLK, // 0x00A6
|
---|
518 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
519 | { "WM_NCMBUTTONDOWN", WM_NCMBUTTONDOWN, // 0x00A7
|
---|
520 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
521 | { "WM_NCMBUTTONUP", WM_NCMBUTTONUP, // 0x00A8
|
---|
522 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
523 | { "WM_NCMBUTTONDBLCLK", WM_NCMBUTTONDBLCLK, // 0x00A9
|
---|
524 | MTF_TYPE_NC | MTF_TYPE_MOUSE},
|
---|
525 | { "EM_GETSEL", EM_GETSEL, // 0x00B0
|
---|
526 | MTF_TYPE_EM},
|
---|
527 | { "EM_SETSEL", EM_SETSEL, // 0x00B1
|
---|
528 | MTF_TYPE_EM},
|
---|
529 | { "EM_GETRECT", EM_GETRECT, // 0x00B2
|
---|
530 | MTF_TYPE_EM},
|
---|
531 | { "EM_SETRECT", EM_SETRECT, // 0x00B3
|
---|
532 | MTF_TYPE_EM},
|
---|
533 | { "EM_SETRECTNP", EM_SETRECTNP, // 0x00B4
|
---|
534 | MTF_TYPE_EM},
|
---|
535 | { "EM_SCROLL", EM_SCROLL, // 0x00B5
|
---|
536 | MTF_TYPE_EM},
|
---|
537 | { "EM_LINESCROLL", EM_LINESCROLL, // 0x00B6
|
---|
538 | MTF_TYPE_EM},
|
---|
539 | { "EM_SCROLLCARET", EM_SCROLLCARET, // 0x00B7
|
---|
540 | MTF_TYPE_EM},
|
---|
541 | { "EM_GETMODIFY", EM_GETMODIFY, // 0x00B8
|
---|
542 | MTF_TYPE_EM},
|
---|
543 | { "EM_SETMODIFY", EM_SETMODIFY, // 0x00B9
|
---|
544 | MTF_TYPE_EM},
|
---|
545 | { "EM_GETLINECOUNT", EM_GETLINECOUNT, // 0x00BA
|
---|
546 | MTF_TYPE_EM},
|
---|
547 | { "EM_LINEINDEX", EM_LINEINDEX, // 0x00BB
|
---|
548 | MTF_TYPE_EM},
|
---|
549 | { "EM_SETHANDLE", EM_SETHANDLE, // 0x00BC
|
---|
550 | MTF_TYPE_EM},
|
---|
551 | { "EM_GETHANDLE", EM_GETHANDLE, // 0x00BD
|
---|
552 | MTF_TYPE_EM},
|
---|
553 | { "EM_GETTHUMB", EM_GETTHUMB, // 0x00BE
|
---|
554 | MTF_TYPE_EM},
|
---|
555 | { "EM_LINELENGTH", EM_LINELENGTH, // 0x00C1
|
---|
556 | MTF_TYPE_EM},
|
---|
557 | { "EM_REPLACESEL", EM_REPLACESEL, // 0x00C2
|
---|
558 | MTF_TYPE_EM},
|
---|
559 | { "EM_GETLINE", EM_GETLINE, // 0x00C4
|
---|
560 | MTF_TYPE_EM},
|
---|
561 | { "EM_LIMITTEXT", EM_LIMITTEXT, // 0x00C5
|
---|
562 | MTF_TYPE_EM},
|
---|
563 | { "EM_CANUNDO", EM_CANUNDO, // 0x00C6
|
---|
564 | MTF_TYPE_EM},
|
---|
565 | { "EM_UNDO", EM_UNDO, // 0x00C7
|
---|
566 | MTF_TYPE_EM},
|
---|
567 | { "EM_FMTLINES", EM_FMTLINES, // 0x00C8
|
---|
568 | MTF_TYPE_EM},
|
---|
569 | { "EM_LINEFROMCHAR", EM_LINEFROMCHAR, // 0x00C9
|
---|
570 | MTF_TYPE_EM},
|
---|
571 | { "EM_SETTABSTOPS", EM_SETTABSTOPS, // 0x00CB
|
---|
572 | MTF_TYPE_EM},
|
---|
573 | { "EM_SETPASSWORDCHAR", EM_SETPASSWORDCHAR, // 0x00CC
|
---|
574 | MTF_TYPE_EM},
|
---|
575 | { "EM_EMPTYUNDOBUFFER", EM_EMPTYUNDOBUFFER, // 0x00CD
|
---|
576 | MTF_TYPE_EM},
|
---|
577 | { "EM_GETFIRSTVISIBLELINE", EM_GETFIRSTVISIBLELINE, // 0x00CE
|
---|
578 | MTF_TYPE_EM},
|
---|
579 | { "EM_SETREADONLY", EM_SETREADONLY, // 0x00CF
|
---|
580 | MTF_TYPE_EM},
|
---|
581 | { "EM_SETWORDBREAKPROC", EM_SETWORDBREAKPROC, // 0x00D0
|
---|
582 | MTF_TYPE_EM},
|
---|
583 | { "EM_GETWORDBREAKPROC", EM_GETWORDBREAKPROC, // 0x00D1
|
---|
584 | MTF_TYPE_EM},
|
---|
585 | { "EM_GETPASSWORDCHAR", EM_GETPASSWORDCHAR, // 0x00D2
|
---|
586 | MTF_TYPE_EM},
|
---|
587 | { "SBM_SETPOS", SBM_SETPOS, // 0x00E0
|
---|
588 | 0},
|
---|
589 | { "SBM_GETPOS", SBM_GETPOS, // 0x00E1
|
---|
590 | 0},
|
---|
591 | { "SBM_SETRANGE", SBM_SETRANGE, // 0x00E2
|
---|
592 | 0},
|
---|
593 | { "SBM_GETRANGE", SBM_GETRANGE, // 0x00E3
|
---|
594 | 0},
|
---|
595 | { "SBM_ENABLE_ARROWS", SBM_ENABLE_ARROWS, // 0x00E4
|
---|
596 | 0},
|
---|
597 | { "SBM_SETRANGEREDRAW", SBM_SETRANGEREDRAW, // 0x00E6
|
---|
598 | 0},
|
---|
599 | { "BM_GETCHECK", BM_GETCHECK, // 0x00F0
|
---|
600 | MTF_TYPE_BM},
|
---|
601 | { "BM_SETCHECK", BM_SETCHECK, // 0x00F1
|
---|
602 | MTF_TYPE_BM},
|
---|
603 | { "BM_GETSTATE", BM_GETSTATE, // 0x00F2
|
---|
604 | MTF_TYPE_BM},
|
---|
605 | { "BM_SETSTATE", BM_SETSTATE, // 0x00F3
|
---|
606 | MTF_TYPE_BM},
|
---|
607 | { "BM_SETSTYLE", BM_SETSTYLE, // 0x00F4
|
---|
608 | MTF_TYPE_BM},
|
---|
609 | { "WM_KEYDOWN", WM_KEYDOWN, // 0x0100
|
---|
610 | MTF_TYPE_KEYBD},
|
---|
611 | { "WM_KEYUP", WM_KEYUP, // 0x0101
|
---|
612 | MTF_TYPE_KEYBD},
|
---|
613 | { "WM_CHAR", WM_CHAR, // 0x0102
|
---|
614 | MTF_TYPE_KEYBD},
|
---|
615 | { "WM_DEADCHAR", WM_DEADCHAR, // 0x0103
|
---|
616 | MTF_TYPE_KEYBD},
|
---|
617 | { "WM_SYSKEYDOWN", WM_SYSKEYDOWN, // 0x0104
|
---|
618 | MTF_TYPE_KEYBD},
|
---|
619 | { "WM_SYSKEYUP", WM_SYSKEYUP, // 0x0105
|
---|
620 | MTF_TYPE_KEYBD},
|
---|
621 | { "WM_SYSCHAR", WM_SYSCHAR, // 0x0106
|
---|
622 | MTF_TYPE_KEYBD},
|
---|
623 | { "WM_SYSDEADCHAR", WM_SYSDEADCHAR, // 0x0107
|
---|
624 | MTF_TYPE_KEYBD},
|
---|
625 | #ifdef FE_IME
|
---|
626 | { "WM_WNT_CONVERTREQUESTEX", WM_WNT_CONVERTREQUESTEX, // 0x0109
|
---|
627 | MTF_TYPE_IME},
|
---|
628 | { "WM_CONVERTREQUEST", WM_CONVERTREQUEST, // 0x010A
|
---|
629 | MTF_TYPE_IME},
|
---|
630 | { "WM_CONVERTRESULT", WM_CONVERTRESULT, // 0x010B
|
---|
631 | MTF_TYPE_IME},
|
---|
632 | { "WM_INTERIM", WM_INTERIM, // 0x010C
|
---|
633 | MTF_TYPE_IME},
|
---|
634 | # define TMP_MTF_TYPE_IME MTF_TYPE_IME
|
---|
635 | #else // not FE_IME
|
---|
636 | # define TMP_MTF_TYPE_IME 0
|
---|
637 | #endif
|
---|
638 | { "WM_IME_STARTCOMPOSITION", WM_IME_STARTCOMPOSITION, // 0x010D
|
---|
639 | TMP_MTF_TYPE_IME},
|
---|
640 | { "WM_IME_ENDCOMPOSITION", WM_IME_ENDCOMPOSITION, // 0x010E
|
---|
641 | TMP_MTF_TYPE_IME},
|
---|
642 | { "WM_IME_COMPOSITION", WM_IME_COMPOSITION, // 0x010F
|
---|
643 | TMP_MTF_TYPE_IME},
|
---|
644 | { "WM_INITDIALOG", WM_INITDIALOG, // 0x0110
|
---|
645 | 0},
|
---|
646 | { "WM_COMMAND", WM_COMMAND, // 0x0111
|
---|
647 | 0},
|
---|
648 | { "WM_SYSCOMMAND", WM_SYSCOMMAND, // 0x0112
|
---|
649 | 0},
|
---|
650 | { "WM_TIMER", WM_TIMER, // 0x0113
|
---|
651 | 0},
|
---|
652 | { "WM_HSCROLL", WM_HSCROLL, // 0x0114
|
---|
653 | 0},
|
---|
654 | { "WM_VSCROLL", WM_VSCROLL, // 0x0115
|
---|
655 | 0},
|
---|
656 | { "WM_INITMENU", WM_INITMENU, // 0x0116
|
---|
657 | 0},
|
---|
658 | { "WM_INITMENUPOPUP", WM_INITMENUPOPUP, // 0x0117
|
---|
659 | 0},
|
---|
660 | { "WM_MENUSELECT", WM_MENUSELECT, // 0x011F
|
---|
661 | 0},
|
---|
662 | { "WM_MENUCHAR", WM_MENUCHAR, // 0x0120
|
---|
663 | 0},
|
---|
664 | { "WM_ENTERIDLE", WM_ENTERIDLE, // 0x0121
|
---|
665 | 0},
|
---|
666 | { "WM_CTLCOLORMSGBOX", WM_CTLCOLORMSGBOX, // 0x0132
|
---|
667 | 0},
|
---|
668 | { "WM_CTLCOLOREDIT", WM_CTLCOLOREDIT, // 0x0133
|
---|
669 | 0},
|
---|
670 | { "WM_CTLCOLORLISTBOX", WM_CTLCOLORLISTBOX, // 0x0134
|
---|
671 | 0},
|
---|
672 | { "WM_CTLCOLORBTN", WM_CTLCOLORBTN, // 0x0135
|
---|
673 | 0},
|
---|
674 | { "WM_CTLCOLORDLG", WM_CTLCOLORDLG, // 0x0136
|
---|
675 | 0},
|
---|
676 | { "WM_CTLCOLORSCROLLBAR", WM_CTLCOLORSCROLLBAR, // 0x0137
|
---|
677 | 0},
|
---|
678 | { "WM_CTLCOLORSTATIC", WM_CTLCOLORSTATIC, // 0x0138
|
---|
679 | 0},
|
---|
680 | { "CB_GETEDITSEL", CB_GETEDITSEL, // 0x0140
|
---|
681 | MTF_TYPE_CB},
|
---|
682 | { "CB_LIMITTEXT", CB_LIMITTEXT, // 0x0141
|
---|
683 | MTF_TYPE_CB},
|
---|
684 | { "CB_SETEDITSEL", CB_SETEDITSEL, // 0x0142
|
---|
685 | MTF_TYPE_CB},
|
---|
686 | { "CB_ADDSTRING", CB_ADDSTRING, // 0x0143
|
---|
687 | MTF_TYPE_CB},
|
---|
688 | { "CB_DELETESTRING", CB_DELETESTRING, // 0x0144
|
---|
689 | MTF_TYPE_CB},
|
---|
690 | { "CB_DIR", CB_DIR, // 0x0145
|
---|
691 | MTF_TYPE_CB},
|
---|
692 | { "CB_GETCOUNT", CB_GETCOUNT, // 0x0146
|
---|
693 | MTF_TYPE_CB},
|
---|
694 | { "CB_GETCURSEL", CB_GETCURSEL, // 0x0147
|
---|
695 | MTF_TYPE_CB},
|
---|
696 | { "CB_GETLBTEXT", CB_GETLBTEXT, // 0x0148
|
---|
697 | MTF_TYPE_CB},
|
---|
698 | { "CB_GETLBTEXTLEN", CB_GETLBTEXTLEN, // 0x0149
|
---|
699 | MTF_TYPE_CB},
|
---|
700 | { "CB_INSERTSTRING", CB_INSERTSTRING, // 0x014A
|
---|
701 | MTF_TYPE_CB},
|
---|
702 | { "CB_RESETCONTENT", CB_RESETCONTENT, // 0x014B
|
---|
703 | MTF_TYPE_CB},
|
---|
704 | { "CB_FINDSTRING", CB_FINDSTRING, // 0x014C
|
---|
705 | MTF_TYPE_CB},
|
---|
706 | { "CB_SELECTSTRING", CB_SELECTSTRING, // 0x014D
|
---|
707 | MTF_TYPE_CB},
|
---|
708 | { "CB_SETCURSEL", CB_SETCURSEL, // 0x014E
|
---|
709 | MTF_TYPE_CB},
|
---|
710 | { "CB_SHOWDROPDOWN", CB_SHOWDROPDOWN, // 0x014F
|
---|
711 | MTF_TYPE_CB},
|
---|
712 | { "CB_GETITEMDATA", CB_GETITEMDATA, // 0x0150
|
---|
713 | MTF_TYPE_CB},
|
---|
714 | { "CB_SETITEMDATA", CB_SETITEMDATA, // 0x0151
|
---|
715 | MTF_TYPE_CB},
|
---|
716 | { "CB_GETDROPPEDCONTROLRECT", CB_GETDROPPEDCONTROLRECT, // 0x0152
|
---|
717 | MTF_TYPE_CB},
|
---|
718 | { "CB_SETITEMHEIGHT", CB_SETITEMHEIGHT, // 0x0153
|
---|
719 | MTF_TYPE_CB},
|
---|
720 | { "CB_GETITEMHEIGHT", CB_GETITEMHEIGHT, // 0x0154
|
---|
721 | MTF_TYPE_CB},
|
---|
722 | { "CB_SETEXTENDEDUI", CB_SETEXTENDEDUI, // 0x0155
|
---|
723 | MTF_TYPE_CB},
|
---|
724 | { "CB_GETEXTENDEDUI", CB_GETEXTENDEDUI, // 0x0156
|
---|
725 | MTF_TYPE_CB},
|
---|
726 | { "CB_GETDROPPEDSTATE", CB_GETDROPPEDSTATE, // 0x0157
|
---|
727 | MTF_TYPE_CB},
|
---|
728 | { "CB_FINDSTRINGEXACT", CB_FINDSTRINGEXACT, // 0x0158
|
---|
729 | MTF_TYPE_CB},
|
---|
730 | { "CB_SETLOCALE", CB_SETLOCALE, // 0x0159
|
---|
731 | MTF_TYPE_CB},
|
---|
732 | { "CB_GETLOCALE", CB_GETLOCALE, // 0x015A
|
---|
733 | MTF_TYPE_CB},
|
---|
734 | { "STM_SETICON", STM_SETICON, // 0x0170
|
---|
735 | MTF_TYPE_STM},
|
---|
736 | { "STM_GETICON", STM_GETICON, // 0x0171
|
---|
737 | MTF_TYPE_STM},
|
---|
738 | { "LB_ADDSTRING", LB_ADDSTRING, // 0x0180
|
---|
739 | MTF_TYPE_LB},
|
---|
740 | { "LB_INSERTSTRING", LB_INSERTSTRING, // 0x0181
|
---|
741 | MTF_TYPE_LB},
|
---|
742 | { "LB_DELETESTRING", LB_DELETESTRING, // 0x0182
|
---|
743 | MTF_TYPE_LB},
|
---|
744 | { "LB_SELITEMRANGEEX", LB_SELITEMRANGEEX, // 0x0183
|
---|
745 | MTF_TYPE_LB},
|
---|
746 | { "LB_RESETCONTENT", LB_RESETCONTENT, // 0x0184
|
---|
747 | MTF_TYPE_LB},
|
---|
748 | { "LB_SETSEL", LB_SETSEL, // 0x0185
|
---|
749 | MTF_TYPE_LB},
|
---|
750 | { "LB_SETCURSEL", LB_SETCURSEL, // 0x0186
|
---|
751 | MTF_TYPE_LB},
|
---|
752 | { "LB_GETSEL", LB_GETSEL, // 0x0187
|
---|
753 | MTF_TYPE_LB},
|
---|
754 | { "LB_GETCURSEL", LB_GETCURSEL, // 0x0188
|
---|
755 | MTF_TYPE_LB},
|
---|
756 | { "LB_GETTEXT", LB_GETTEXT, // 0x0189
|
---|
757 | MTF_TYPE_LB},
|
---|
758 | { "LB_GETTEXTLEN", LB_GETTEXTLEN, // 0x018A
|
---|
759 | MTF_TYPE_LB},
|
---|
760 | { "LB_GETCOUNT", LB_GETCOUNT, // 0x018B
|
---|
761 | MTF_TYPE_LB},
|
---|
762 | { "LB_SELECTSTRING", LB_SELECTSTRING, // 0x018C
|
---|
763 | MTF_TYPE_LB},
|
---|
764 | { "LB_DIR", LB_DIR, // 0x018D
|
---|
765 | MTF_TYPE_LB},
|
---|
766 | { "LB_GETTOPINDEX", LB_GETTOPINDEX, // 0x018E
|
---|
767 | MTF_TYPE_LB},
|
---|
768 | { "LB_FINDSTRING", LB_FINDSTRING, // 0x018F
|
---|
769 | MTF_TYPE_LB},
|
---|
770 | { "LB_GETSELCOUNT", LB_GETSELCOUNT, // 0x0190
|
---|
771 | MTF_TYPE_LB},
|
---|
772 | { "LB_GETSELITEMS", LB_GETSELITEMS, // 0x0191
|
---|
773 | MTF_TYPE_LB},
|
---|
774 | { "LB_SETTABSTOPS", LB_SETTABSTOPS, // 0x0192
|
---|
775 | MTF_TYPE_LB},
|
---|
776 | { "LB_GETHORIZONTALEXTENT", LB_GETHORIZONTALEXTENT, // 0x0193
|
---|
777 | MTF_TYPE_LB},
|
---|
778 | { "LB_SETHORIZONTALEXTENT", LB_SETHORIZONTALEXTENT, // 0x0194
|
---|
779 | MTF_TYPE_LB},
|
---|
780 | { "LB_SETCOLUMNWIDTH", LB_SETCOLUMNWIDTH, // 0x0195
|
---|
781 | MTF_TYPE_LB},
|
---|
782 | { "LB_ADDFILE", LB_ADDFILE, // 0x0196
|
---|
783 | MTF_TYPE_LB},
|
---|
784 | { "LB_SETTOPINDEX", LB_SETTOPINDEX, // 0x0197
|
---|
785 | MTF_TYPE_LB},
|
---|
786 | { "LB_GETITEMRECT", LB_GETITEMRECT, // 0x0198
|
---|
787 | MTF_TYPE_LB},
|
---|
788 | { "LB_GETITEMDATA", LB_GETITEMDATA, // 0x0199
|
---|
789 | MTF_TYPE_LB},
|
---|
790 | { "LB_SETITEMDATA", LB_SETITEMDATA, // 0x019A
|
---|
791 | MTF_TYPE_LB},
|
---|
792 | { "LB_SELITEMRANGE", LB_SELITEMRANGE, // 0x019B
|
---|
793 | MTF_TYPE_LB},
|
---|
794 | { "LB_SETANCHORINDEX", LB_SETANCHORINDEX, // 0x019C
|
---|
795 | MTF_TYPE_LB},
|
---|
796 | { "LB_GETANCHORINDEX", LB_GETANCHORINDEX, // 0x019D
|
---|
797 | MTF_TYPE_LB},
|
---|
798 | { "LB_SETCARETINDEX", LB_SETCARETINDEX, // 0x019E
|
---|
799 | MTF_TYPE_LB},
|
---|
800 | { "LB_GETCARETINDEX", LB_GETCARETINDEX, // 0x019F
|
---|
801 | MTF_TYPE_LB},
|
---|
802 | { "LB_SETITEMHEIGHT", LB_SETITEMHEIGHT, // 0x01A0
|
---|
803 | MTF_TYPE_LB},
|
---|
804 | { "LB_GETITEMHEIGHT", LB_GETITEMHEIGHT, // 0x01A1
|
---|
805 | MTF_TYPE_LB},
|
---|
806 | { "LB_FINDSTRINGEXACT", LB_FINDSTRINGEXACT, // 0x01A2
|
---|
807 | MTF_TYPE_LB},
|
---|
808 | { "LB_SETLOCALE", LB_SETLOCALE, // 0x01A5
|
---|
809 | MTF_TYPE_LB},
|
---|
810 | { "LB_GETLOCALE", LB_GETLOCALE, // 0x01A6
|
---|
811 | MTF_TYPE_LB},
|
---|
812 | { "LB_SETCOUNT", LB_SETCOUNT, // 0x01A7
|
---|
813 | MTF_TYPE_LB},
|
---|
814 | { "WM_MOUSEMOVE", WM_MOUSEMOVE, // 0x0200
|
---|
815 | MTF_TYPE_MOUSE},
|
---|
816 | { "WM_LBUTTONDOWN", WM_LBUTTONDOWN, // 0x0201
|
---|
817 | MTF_TYPE_MOUSE},
|
---|
818 | { "WM_LBUTTONUP", WM_LBUTTONUP, // 0x0202
|
---|
819 | MTF_TYPE_MOUSE},
|
---|
820 | { "WM_LBUTTONDBLCLK", WM_LBUTTONDBLCLK, // 0x0203
|
---|
821 | MTF_TYPE_MOUSE},
|
---|
822 | { "WM_RBUTTONDOWN", WM_RBUTTONDOWN, // 0x0204
|
---|
823 | MTF_TYPE_MOUSE},
|
---|
824 | { "WM_RBUTTONUP", WM_RBUTTONUP, // 0x0205
|
---|
825 | MTF_TYPE_MOUSE},
|
---|
826 | { "WM_RBUTTONDBLCLK", WM_RBUTTONDBLCLK, // 0x0206
|
---|
827 | MTF_TYPE_MOUSE},
|
---|
828 | { "WM_MBUTTONDOWN", WM_MBUTTONDOWN, // 0x0207
|
---|
829 | MTF_TYPE_MOUSE},
|
---|
830 | { "WM_MBUTTONUP", WM_MBUTTONUP, // 0x0208
|
---|
831 | MTF_TYPE_MOUSE},
|
---|
832 | { "WM_MBUTTONDBLCLK", WM_MBUTTONDBLCLK, // 0x0209
|
---|
833 | MTF_TYPE_MOUSE},
|
---|
834 | { "WM_PARENTNOTIFY", WM_PARENTNOTIFY, // 0x0210
|
---|
835 | MTF_TYPE_MOUSE},
|
---|
836 | { "WM_ENTERMENULOOP", WM_ENTERMENULOOP, // 0x0211
|
---|
837 | 0},
|
---|
838 | { "WM_EXITMENULOOP", WM_EXITMENULOOP, // 0x0212
|
---|
839 | 0},
|
---|
840 | { "WM_MDICREATE", WM_MDICREATE, // 0x0220
|
---|
841 | 0},
|
---|
842 | { "WM_MDIDESTROY", WM_MDIDESTROY, // 0x0221
|
---|
843 | 0},
|
---|
844 | { "WM_MDIACTIVATE", WM_MDIACTIVATE, // 0x0222
|
---|
845 | 0},
|
---|
846 | { "WM_MDIRESTORE", WM_MDIRESTORE, // 0x0223
|
---|
847 | 0},
|
---|
848 | { "WM_MDINEXT", WM_MDINEXT, // 0x0224
|
---|
849 | 0},
|
---|
850 | { "WM_MDIMAXIMIZE", WM_MDIMAXIMIZE, // 0x0225
|
---|
851 | 0},
|
---|
852 | { "WM_MDITILE", WM_MDITILE, // 0x0226
|
---|
853 | 0},
|
---|
854 | { "WM_MDICASCADE", WM_MDICASCADE, // 0x0227
|
---|
855 | 0},
|
---|
856 | { "WM_MDIICONARRANGE", WM_MDIICONARRANGE, // 0x0228
|
---|
857 | 0},
|
---|
858 | { "WM_MDIGETACTIVE", WM_MDIGETACTIVE, // 0x0229
|
---|
859 | 0},
|
---|
860 | { "WM_MDISETMENU", WM_MDISETMENU, // 0x0230
|
---|
861 | 0},
|
---|
862 | { "WM_ENTERSIZEMOVE", WM_ENTERSIZEMOVE, // 0x0231
|
---|
863 | 0},
|
---|
864 | { "WM_EXITSIZEMOVE", WM_EXITSIZEMOVE, // 0x0232
|
---|
865 | 0},
|
---|
866 | { "WM_DROPFILES", WM_DROPFILES, // 0x0233
|
---|
867 | 0},
|
---|
868 | { "WM_MDIREFRESHMENU", WM_MDIREFRESHMENU, // 0x0234
|
---|
869 | 0},
|
---|
870 | #ifdef FE_IME
|
---|
871 | { "WM_IME_REPORT", WM_IME_REPORT, // 0x0280
|
---|
872 | MTF_TYPE_IME},
|
---|
873 | #endif
|
---|
874 | { "WM_IME_SETCONTEXT", WM_IME_SETCONTEXT, // 0x0281
|
---|
875 | TMP_MTF_TYPE_IME},
|
---|
876 | { "WM_IME_NOTIFY", WM_IME_NOTIFY, // 0x0282
|
---|
877 | TMP_MTF_TYPE_IME},
|
---|
878 | { "WM_IME_CONTROL", WM_IME_CONTROL, // 0x0283
|
---|
879 | TMP_MTF_TYPE_IME},
|
---|
880 | { "WM_IME_COMPOSITIONFULL", WM_IME_COMPOSITIONFULL, // 0x0284
|
---|
881 | TMP_MTF_TYPE_IME},
|
---|
882 | { "WM_IME_SELECT", WM_IME_SELECT, // 0x0285
|
---|
883 | TMP_MTF_TYPE_IME},
|
---|
884 | { "WM_IME_CHAR", WM_IME_CHAR, // 0x0286
|
---|
885 | TMP_MTF_TYPE_IME},
|
---|
886 | #ifdef FE_IME
|
---|
887 | { "WM_IMEKEYDOWN", WM_IMEKEYDOWN, // 0x0290
|
---|
888 | MTF_TYPE_IME},
|
---|
889 | { "WM_IMEKEYUP", WM_IMEKEYUP, // 0x0291
|
---|
890 | MTF_TYPE_IME},
|
---|
891 | #endif
|
---|
892 | { "WM_CUT", WM_CUT, // 0x0300
|
---|
893 | MTF_TYPE_CLIP},
|
---|
894 | { "WM_COPY", WM_COPY, // 0x0301
|
---|
895 | MTF_TYPE_CLIP},
|
---|
896 | { "WM_PASTE", WM_PASTE, // 0x0302
|
---|
897 | MTF_TYPE_CLIP},
|
---|
898 | { "WM_CLEAR", WM_CLEAR, // 0x0303
|
---|
899 | MTF_TYPE_CLIP},
|
---|
900 | { "WM_UNDO", WM_UNDO, // 0x0304
|
---|
901 | MTF_TYPE_CLIP},
|
---|
902 | { "WM_RENDERFORMAT", WM_RENDERFORMAT, // 0x0305
|
---|
903 | MTF_TYPE_CLIP},
|
---|
904 | { "WM_RENDERALLFORMATS", WM_RENDERALLFORMATS, // 0x0306
|
---|
905 | MTF_TYPE_CLIP},
|
---|
906 | { "WM_DESTROYCLIPBOARD", WM_DESTROYCLIPBOARD, // 0x0307
|
---|
907 | MTF_TYPE_CLIP},
|
---|
908 | { "WM_DRAWCLIPBOARD", WM_DRAWCLIPBOARD, // 0x0308
|
---|
909 | MTF_TYPE_CLIP},
|
---|
910 | { "WM_PAINTCLIPBOARD", WM_PAINTCLIPBOARD, // 0x0309
|
---|
911 | MTF_TYPE_CLIP},
|
---|
912 | { "WM_VSCROLLCLIPBOARD", WM_VSCROLLCLIPBOARD, // 0x030A
|
---|
913 | MTF_TYPE_CLIP},
|
---|
914 | { "WM_SIZECLIPBOARD", WM_SIZECLIPBOARD, // 0x030B
|
---|
915 | MTF_TYPE_CLIP},
|
---|
916 | { "WM_ASKCBFORMATNAME", WM_ASKCBFORMATNAME, // 0x030C
|
---|
917 | MTF_TYPE_CLIP},
|
---|
918 | { "WM_CHANGECBCHAIN", WM_CHANGECBCHAIN, // 0x030D
|
---|
919 | MTF_TYPE_CLIP},
|
---|
920 | { "WM_HSCROLLCLIPBOARD", WM_HSCROLLCLIPBOARD, // 0x030E
|
---|
921 | MTF_TYPE_CLIP},
|
---|
922 | { "WM_QUERYNEWPALETTE", WM_QUERYNEWPALETTE, // 0x030F
|
---|
923 | 0},
|
---|
924 | { "WM_PALETTEISCHANGING", WM_PALETTEISCHANGING, // 0x0310
|
---|
925 | 0},
|
---|
926 | { "WM_PALETTECHANGED", WM_PALETTECHANGED, // 0x0311
|
---|
927 | 0},
|
---|
928 | { "WM_HOTKEY", WM_HOTKEY, // 0x0312
|
---|
929 | MTF_TYPE_KEYBD},
|
---|
930 | { "WM_DDE_INITIATE", WM_DDE_INITIATE, // 0x03E0
|
---|
931 | MTF_TYPE_DDE},
|
---|
932 | { "WM_DDE_TERMINATE", WM_DDE_TERMINATE, // 0x03E1
|
---|
933 | MTF_TYPE_DDE},
|
---|
934 | { "WM_DDE_ADVISE", WM_DDE_ADVISE, // 0x03E2
|
---|
935 | MTF_TYPE_DDE},
|
---|
936 | { "WM_DDE_UNADVISE", WM_DDE_UNADVISE, // 0x03E3
|
---|
937 | MTF_TYPE_DDE},
|
---|
938 | { "WM_DDE_ACK", WM_DDE_ACK, // 0x03E4
|
---|
939 | MTF_TYPE_DDE},
|
---|
940 | { "WM_DDE_DATA", WM_DDE_DATA, // 0x03E5
|
---|
941 | MTF_TYPE_DDE},
|
---|
942 | { "WM_DDE_REQUEST", WM_DDE_REQUEST, // 0x03E6
|
---|
943 | MTF_TYPE_DDE},
|
---|
944 | { "WM_DDE_POKE", WM_DDE_POKE, // 0x03E7
|
---|
945 | MTF_TYPE_DDE},
|
---|
946 | { "WM_DDE_EXECUTE", WM_DDE_EXECUTE, // 0x03E8
|
---|
947 | MTF_TYPE_DDE}
|
---|
948 | };
|
---|
949 |
|
---|
950 | INT gcMessages = sizeof(gaMsgs) / sizeof(MSGDESC);
|
---|
951 |
|
---|
952 |
|
---|
953 | char *GetMsgText(int Msg)
|
---|
954 | {
|
---|
955 | static char msgtxt[64];
|
---|
956 | int i;
|
---|
957 |
|
---|
958 | for(i=0;i<gcMessages;i++) {
|
---|
959 | if(gaMsgs[i].msg == Msg)
|
---|
960 | return(gaMsgs[i].pszMsg);
|
---|
961 | }
|
---|
962 | sprintf(msgtxt, "%s %X ", "Unknown Message ", Msg);
|
---|
963 | return(msgtxt);
|
---|
964 | }
|
---|
965 | #endif
|
---|
966 | //******************************************************************************
|
---|
967 | //******************************************************************************
|
---|
968 | Win32WindowProc *Win32WindowProc::windows = NULL;
|
---|