| 1 | /* $Id: wndproc.cpp,v 1.1 1999-05-24 20:20:00 ktk 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 DEBUG1
|
|---|
| 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;
|
|---|