OLD | NEW |
(Empty) | |
| 1 // Windows Template Library - WTL version 8.0 |
| 2 // Copyright (C) Microsoft Corporation. All rights reserved. |
| 3 // |
| 4 // This file is a part of the Windows Template Library. |
| 5 // The use and distribution terms for this software are covered by the |
| 6 // Microsoft Permissive License (Ms-PL) which can be found in the file |
| 7 // Ms-PL.txt at the root of this distribution. |
| 8 |
| 9 #ifndef __ATLCRACK_H__ |
| 10 #define __ATLCRACK_H__ |
| 11 |
| 12 #pragma once |
| 13 |
| 14 |
| 15 /////////////////////////////////////////////////////////////////////////////// |
| 16 // Message map macro for cracked handlers |
| 17 |
| 18 // Note about message maps with cracked handlers: |
| 19 // For ATL 3.0, a message map using cracked handlers MUST use BEGIN_MSG_MAP_EX. |
| 20 // For ATL 7.0 or higher, you can use BEGIN_MSG_MAP for CWindowImpl/CDialogImpl
derived classes, |
| 21 // but must use BEGIN_MSG_MAP_EX for classes that don't derive from CWindowImpl/
CDialogImpl. |
| 22 |
| 23 #define BEGIN_MSG_MAP_EX(theClass) \ |
| 24 public: \ |
| 25 BOOL m_bMsgHandled; \ |
| 26 /* "handled" management for cracked handlers */ \ |
| 27 BOOL IsMsgHandled() const \ |
| 28 { \ |
| 29 return m_bMsgHandled; \ |
| 30 } \ |
| 31 void SetMsgHandled(BOOL bHandled) \ |
| 32 { \ |
| 33 m_bMsgHandled = bHandled; \ |
| 34 } \ |
| 35 BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lP
aram, LRESULT& lResult, DWORD dwMsgMapID = 0) \ |
| 36 { \ |
| 37 BOOL bOldMsgHandled = m_bMsgHandled; \ |
| 38 BOOL bRet = _ProcessWindowMessage(hWnd, uMsg, wParam, lParam, lR
esult, dwMsgMapID); \ |
| 39 m_bMsgHandled = bOldMsgHandled; \ |
| 40 return bRet; \ |
| 41 } \ |
| 42 BOOL _ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM l
Param, LRESULT& lResult, DWORD dwMsgMapID) \ |
| 43 { \ |
| 44 BOOL bHandled = TRUE; \ |
| 45 hWnd; \ |
| 46 uMsg; \ |
| 47 wParam; \ |
| 48 lParam; \ |
| 49 lResult; \ |
| 50 bHandled; \ |
| 51 switch(dwMsgMapID) \ |
| 52 { \ |
| 53 case 0: |
| 54 |
| 55 |
| 56 /////////////////////////////////////////////////////////////////////////////// |
| 57 // Standard Windows message macros |
| 58 |
| 59 // int OnCreate(LPCREATESTRUCT lpCreateStruct) |
| 60 #define MSG_WM_CREATE(func) \ |
| 61 if (uMsg == WM_CREATE) \ |
| 62 { \ |
| 63 SetMsgHandled(TRUE); \ |
| 64 lResult = (LRESULT)func((LPCREATESTRUCT)lParam); \ |
| 65 if(IsMsgHandled()) \ |
| 66 return TRUE; \ |
| 67 } |
| 68 |
| 69 // BOOL OnInitDialog(CWindow wndFocus, LPARAM lInitParam) |
| 70 #define MSG_WM_INITDIALOG(func) \ |
| 71 if (uMsg == WM_INITDIALOG) \ |
| 72 { \ |
| 73 SetMsgHandled(TRUE); \ |
| 74 lResult = (LRESULT)func((HWND)wParam, lParam); \ |
| 75 if(IsMsgHandled()) \ |
| 76 return TRUE; \ |
| 77 } |
| 78 |
| 79 // BOOL OnCopyData(CWindow wnd, PCOPYDATASTRUCT pCopyDataStruct) |
| 80 #define MSG_WM_COPYDATA(func) \ |
| 81 if (uMsg == WM_COPYDATA) \ |
| 82 { \ |
| 83 SetMsgHandled(TRUE); \ |
| 84 lResult = (LRESULT)func((HWND)wParam, (PCOPYDATASTRUCT)lParam);
\ |
| 85 if(IsMsgHandled()) \ |
| 86 return TRUE; \ |
| 87 } |
| 88 |
| 89 // void OnDestroy() |
| 90 #define MSG_WM_DESTROY(func) \ |
| 91 if (uMsg == WM_DESTROY) \ |
| 92 { \ |
| 93 SetMsgHandled(TRUE); \ |
| 94 func(); \ |
| 95 lResult = 0; \ |
| 96 if(IsMsgHandled()) \ |
| 97 return TRUE; \ |
| 98 } |
| 99 |
| 100 // void OnMove(CPoint ptPos) |
| 101 #define MSG_WM_MOVE(func) \ |
| 102 if (uMsg == WM_MOVE) \ |
| 103 { \ |
| 104 SetMsgHandled(TRUE); \ |
| 105 func(_WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lPara
m))); \ |
| 106 lResult = 0; \ |
| 107 if(IsMsgHandled()) \ |
| 108 return TRUE; \ |
| 109 } |
| 110 |
| 111 // void OnSize(UINT nType, CSize size) |
| 112 #define MSG_WM_SIZE(func) \ |
| 113 if (uMsg == WM_SIZE) \ |
| 114 { \ |
| 115 SetMsgHandled(TRUE); \ |
| 116 func((UINT)wParam, _WTYPES_NS::CSize(GET_X_LPARAM(lParam), GET_Y
_LPARAM(lParam))); \ |
| 117 lResult = 0; \ |
| 118 if(IsMsgHandled()) \ |
| 119 return TRUE; \ |
| 120 } |
| 121 |
| 122 // void OnActivate(UINT nState, BOOL bMinimized, CWindow wndOther) |
| 123 #define MSG_WM_ACTIVATE(func) \ |
| 124 if (uMsg == WM_ACTIVATE) \ |
| 125 { \ |
| 126 SetMsgHandled(TRUE); \ |
| 127 func((UINT)LOWORD(wParam), (BOOL)HIWORD(wParam), (HWND)lParam);
\ |
| 128 lResult = 0; \ |
| 129 if(IsMsgHandled()) \ |
| 130 return TRUE; \ |
| 131 } |
| 132 |
| 133 // void OnSetFocus(CWindow wndOld) |
| 134 #define MSG_WM_SETFOCUS(func) \ |
| 135 if (uMsg == WM_SETFOCUS) \ |
| 136 { \ |
| 137 SetMsgHandled(TRUE); \ |
| 138 func((HWND)wParam); \ |
| 139 lResult = 0; \ |
| 140 if(IsMsgHandled()) \ |
| 141 return TRUE; \ |
| 142 } |
| 143 |
| 144 // void OnKillFocus(CWindow wndFocus) |
| 145 #define MSG_WM_KILLFOCUS(func) \ |
| 146 if (uMsg == WM_KILLFOCUS) \ |
| 147 { \ |
| 148 SetMsgHandled(TRUE); \ |
| 149 func((HWND)wParam); \ |
| 150 lResult = 0; \ |
| 151 if(IsMsgHandled()) \ |
| 152 return TRUE; \ |
| 153 } |
| 154 |
| 155 // void OnEnable(BOOL bEnable) |
| 156 #define MSG_WM_ENABLE(func) \ |
| 157 if (uMsg == WM_ENABLE) \ |
| 158 { \ |
| 159 SetMsgHandled(TRUE); \ |
| 160 func((BOOL)wParam); \ |
| 161 lResult = 0; \ |
| 162 if(IsMsgHandled()) \ |
| 163 return TRUE; \ |
| 164 } |
| 165 |
| 166 // void OnPaint(CDCHandle dc) |
| 167 #define MSG_WM_PAINT(func) \ |
| 168 if (uMsg == WM_PAINT) \ |
| 169 { \ |
| 170 SetMsgHandled(TRUE); \ |
| 171 func((HDC)wParam); \ |
| 172 lResult = 0; \ |
| 173 if(IsMsgHandled()) \ |
| 174 return TRUE; \ |
| 175 } |
| 176 |
| 177 // void OnClose() |
| 178 #define MSG_WM_CLOSE(func) \ |
| 179 if (uMsg == WM_CLOSE) \ |
| 180 { \ |
| 181 SetMsgHandled(TRUE); \ |
| 182 func(); \ |
| 183 lResult = 0; \ |
| 184 if(IsMsgHandled()) \ |
| 185 return TRUE; \ |
| 186 } |
| 187 |
| 188 // BOOL OnQueryEndSession(UINT nSource, UINT uLogOff) |
| 189 #define MSG_WM_QUERYENDSESSION(func) \ |
| 190 if (uMsg == WM_QUERYENDSESSION) \ |
| 191 { \ |
| 192 SetMsgHandled(TRUE); \ |
| 193 lResult = (LRESULT)func((UINT)wParam, (UINT)lParam); \ |
| 194 if(IsMsgHandled()) \ |
| 195 return TRUE; \ |
| 196 } |
| 197 |
| 198 // BOOL OnQueryOpen() |
| 199 #define MSG_WM_QUERYOPEN(func) \ |
| 200 if (uMsg == WM_QUERYOPEN) \ |
| 201 { \ |
| 202 SetMsgHandled(TRUE); \ |
| 203 lResult = (LRESULT)func(); \ |
| 204 if(IsMsgHandled()) \ |
| 205 return TRUE; \ |
| 206 } |
| 207 |
| 208 // BOOL OnEraseBkgnd(CDCHandle dc) |
| 209 #define MSG_WM_ERASEBKGND(func) \ |
| 210 if (uMsg == WM_ERASEBKGND) \ |
| 211 { \ |
| 212 SetMsgHandled(TRUE); \ |
| 213 lResult = (LRESULT)func((HDC)wParam); \ |
| 214 if(IsMsgHandled()) \ |
| 215 return TRUE; \ |
| 216 } |
| 217 |
| 218 // void OnSysColorChange() |
| 219 #define MSG_WM_SYSCOLORCHANGE(func) \ |
| 220 if (uMsg == WM_SYSCOLORCHANGE) \ |
| 221 { \ |
| 222 SetMsgHandled(TRUE); \ |
| 223 func(); \ |
| 224 lResult = 0; \ |
| 225 if(IsMsgHandled()) \ |
| 226 return TRUE; \ |
| 227 } |
| 228 |
| 229 // void OnEndSession(BOOL bEnding, UINT uLogOff) |
| 230 #define MSG_WM_ENDSESSION(func) \ |
| 231 if (uMsg == WM_ENDSESSION) \ |
| 232 { \ |
| 233 SetMsgHandled(TRUE); \ |
| 234 func((BOOL)wParam, (UINT)lParam); \ |
| 235 lResult = 0; \ |
| 236 if(IsMsgHandled()) \ |
| 237 return TRUE; \ |
| 238 } |
| 239 |
| 240 // void OnShowWindow(BOOL bShow, UINT nStatus) |
| 241 #define MSG_WM_SHOWWINDOW(func) \ |
| 242 if (uMsg == WM_SHOWWINDOW) \ |
| 243 { \ |
| 244 SetMsgHandled(TRUE); \ |
| 245 func((BOOL)wParam, (int)lParam); \ |
| 246 lResult = 0; \ |
| 247 if(IsMsgHandled()) \ |
| 248 return TRUE; \ |
| 249 } |
| 250 |
| 251 // HBRUSH OnCtlColorEdit(CDCHandle dc, CEdit edit) |
| 252 #define MSG_WM_CTLCOLOREDIT(func) \ |
| 253 if (uMsg == WM_CTLCOLOREDIT) \ |
| 254 { \ |
| 255 SetMsgHandled(TRUE); \ |
| 256 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 257 if(IsMsgHandled()) \ |
| 258 return TRUE; \ |
| 259 } |
| 260 |
| 261 // HBRUSH OnCtlColorListBox(CDCHandle dc, CListBox listBox) |
| 262 #define MSG_WM_CTLCOLORLISTBOX(func) \ |
| 263 if (uMsg == WM_CTLCOLORLISTBOX) \ |
| 264 { \ |
| 265 SetMsgHandled(TRUE); \ |
| 266 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 267 if(IsMsgHandled()) \ |
| 268 return TRUE; \ |
| 269 } |
| 270 |
| 271 // HBRUSH OnCtlColorBtn(CDCHandle dc, CButton button) |
| 272 #define MSG_WM_CTLCOLORBTN(func) \ |
| 273 if (uMsg == WM_CTLCOLORBTN) \ |
| 274 { \ |
| 275 SetMsgHandled(TRUE); \ |
| 276 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 277 if(IsMsgHandled()) \ |
| 278 return TRUE; \ |
| 279 } |
| 280 |
| 281 // HBRUSH OnCtlColorDlg(CDCHandle dc, CWindow wnd) |
| 282 #define MSG_WM_CTLCOLORDLG(func) \ |
| 283 if (uMsg == WM_CTLCOLORDLG) \ |
| 284 { \ |
| 285 SetMsgHandled(TRUE); \ |
| 286 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 287 if(IsMsgHandled()) \ |
| 288 return TRUE; \ |
| 289 } |
| 290 |
| 291 // HBRUSH OnCtlColorScrollBar(CDCHandle dc, CScrollBar scrollBar) |
| 292 #define MSG_WM_CTLCOLORSCROLLBAR(func) \ |
| 293 if (uMsg == WM_CTLCOLORSCROLLBAR) \ |
| 294 { \ |
| 295 SetMsgHandled(TRUE); \ |
| 296 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 297 if(IsMsgHandled()) \ |
| 298 return TRUE; \ |
| 299 } |
| 300 |
| 301 // HBRUSH OnCtlColorStatic(CDCHandle dc, CStatic wndStatic) |
| 302 #define MSG_WM_CTLCOLORSTATIC(func) \ |
| 303 if (uMsg == WM_CTLCOLORSTATIC) \ |
| 304 { \ |
| 305 SetMsgHandled(TRUE); \ |
| 306 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 307 if(IsMsgHandled()) \ |
| 308 return TRUE; \ |
| 309 } |
| 310 |
| 311 // void OnSettingChange(UINT uFlags, LPCTSTR lpszSection) |
| 312 #define MSG_WM_SETTINGCHANGE(func) \ |
| 313 if (uMsg == WM_SETTINGCHANGE) \ |
| 314 { \ |
| 315 SetMsgHandled(TRUE); \ |
| 316 func((UINT)wParam, (LPCTSTR)lParam); \ |
| 317 lResult = 0; \ |
| 318 if(IsMsgHandled()) \ |
| 319 return TRUE; \ |
| 320 } |
| 321 |
| 322 // void OnDevModeChange(LPCTSTR lpDeviceName) |
| 323 #define MSG_WM_DEVMODECHANGE(func) \ |
| 324 if (uMsg == WM_DEVMODECHANGE) \ |
| 325 { \ |
| 326 SetMsgHandled(TRUE); \ |
| 327 func((LPCTSTR)lParam); \ |
| 328 lResult = 0; \ |
| 329 if(IsMsgHandled()) \ |
| 330 return TRUE; \ |
| 331 } |
| 332 |
| 333 // void OnActivateApp(BOOL bActive, DWORD dwThreadID) |
| 334 #define MSG_WM_ACTIVATEAPP(func) \ |
| 335 if (uMsg == WM_ACTIVATEAPP) \ |
| 336 { \ |
| 337 SetMsgHandled(TRUE); \ |
| 338 func((BOOL)wParam, (DWORD)lParam); \ |
| 339 lResult = 0; \ |
| 340 if(IsMsgHandled()) \ |
| 341 return TRUE; \ |
| 342 } |
| 343 |
| 344 // void OnFontChange() |
| 345 #define MSG_WM_FONTCHANGE(func) \ |
| 346 if (uMsg == WM_FONTCHANGE) \ |
| 347 { \ |
| 348 SetMsgHandled(TRUE); \ |
| 349 func(); \ |
| 350 lResult = 0; \ |
| 351 if(IsMsgHandled()) \ |
| 352 return TRUE; \ |
| 353 } |
| 354 |
| 355 // void OnTimeChange() |
| 356 #define MSG_WM_TIMECHANGE(func) \ |
| 357 if (uMsg == WM_TIMECHANGE) \ |
| 358 { \ |
| 359 SetMsgHandled(TRUE); \ |
| 360 func(); \ |
| 361 lResult = 0; \ |
| 362 if(IsMsgHandled()) \ |
| 363 return TRUE; \ |
| 364 } |
| 365 |
| 366 // void OnCancelMode() |
| 367 #define MSG_WM_CANCELMODE(func) \ |
| 368 if (uMsg == WM_CANCELMODE) \ |
| 369 { \ |
| 370 SetMsgHandled(TRUE); \ |
| 371 func(); \ |
| 372 lResult = 0; \ |
| 373 if(IsMsgHandled()) \ |
| 374 return TRUE; \ |
| 375 } |
| 376 |
| 377 // BOOL OnSetCursor(CWindow wnd, UINT nHitTest, UINT message) |
| 378 #define MSG_WM_SETCURSOR(func) \ |
| 379 if (uMsg == WM_SETCURSOR) \ |
| 380 { \ |
| 381 SetMsgHandled(TRUE); \ |
| 382 lResult = (LRESULT)func((HWND)wParam, (UINT)LOWORD(lParam), (UIN
T)HIWORD(lParam)); \ |
| 383 if(IsMsgHandled()) \ |
| 384 return TRUE; \ |
| 385 } |
| 386 |
| 387 // int OnMouseActivate(CWindow wndTopLevel, UINT nHitTest, UINT message) |
| 388 #define MSG_WM_MOUSEACTIVATE(func) \ |
| 389 if (uMsg == WM_MOUSEACTIVATE) \ |
| 390 { \ |
| 391 SetMsgHandled(TRUE); \ |
| 392 lResult = (LRESULT)func((HWND)wParam, (UINT)LOWORD(lParam), (UIN
T)HIWORD(lParam)); \ |
| 393 if(IsMsgHandled()) \ |
| 394 return TRUE; \ |
| 395 } |
| 396 |
| 397 // void OnChildActivate() |
| 398 #define MSG_WM_CHILDACTIVATE(func) \ |
| 399 if (uMsg == WM_CHILDACTIVATE) \ |
| 400 { \ |
| 401 SetMsgHandled(TRUE); \ |
| 402 func(); \ |
| 403 lResult = 0; \ |
| 404 if(IsMsgHandled()) \ |
| 405 return TRUE; \ |
| 406 } |
| 407 |
| 408 // void OnGetMinMaxInfo(LPMINMAXINFO lpMMI) |
| 409 #define MSG_WM_GETMINMAXINFO(func) \ |
| 410 if (uMsg == WM_GETMINMAXINFO) \ |
| 411 { \ |
| 412 SetMsgHandled(TRUE); \ |
| 413 func((LPMINMAXINFO)lParam); \ |
| 414 lResult = 0; \ |
| 415 if(IsMsgHandled()) \ |
| 416 return TRUE; \ |
| 417 } |
| 418 |
| 419 // void OnIconEraseBkgnd(CDCHandle dc) |
| 420 #define MSG_WM_ICONERASEBKGND(func) \ |
| 421 if (uMsg == WM_ICONERASEBKGND) \ |
| 422 { \ |
| 423 SetMsgHandled(TRUE); \ |
| 424 func((HDC)wParam); \ |
| 425 lResult = 0; \ |
| 426 if(IsMsgHandled()) \ |
| 427 return TRUE; \ |
| 428 } |
| 429 |
| 430 // void OnSpoolerStatus(UINT nStatus, UINT nJobs) |
| 431 #define MSG_WM_SPOOLERSTATUS(func) \ |
| 432 if (uMsg == WM_SPOOLERSTATUS) \ |
| 433 { \ |
| 434 SetMsgHandled(TRUE); \ |
| 435 func((UINT)wParam, (UINT)LOWORD(lParam)); \ |
| 436 lResult = 0; \ |
| 437 if(IsMsgHandled()) \ |
| 438 return TRUE; \ |
| 439 } |
| 440 |
| 441 // void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) |
| 442 #define MSG_WM_DRAWITEM(func) \ |
| 443 if (uMsg == WM_DRAWITEM) \ |
| 444 { \ |
| 445 SetMsgHandled(TRUE); \ |
| 446 func((UINT)wParam, (LPDRAWITEMSTRUCT)lParam); \ |
| 447 lResult = TRUE; \ |
| 448 if(IsMsgHandled()) \ |
| 449 return TRUE; \ |
| 450 } |
| 451 |
| 452 // void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct) |
| 453 #define MSG_WM_MEASUREITEM(func) \ |
| 454 if (uMsg == WM_MEASUREITEM) \ |
| 455 { \ |
| 456 SetMsgHandled(TRUE); \ |
| 457 func((UINT)wParam, (LPMEASUREITEMSTRUCT)lParam); \ |
| 458 lResult = TRUE; \ |
| 459 if(IsMsgHandled()) \ |
| 460 return TRUE; \ |
| 461 } |
| 462 |
| 463 // void OnDeleteItem(int nIDCtl, LPDELETEITEMSTRUCT lpDeleteItemStruct) |
| 464 #define MSG_WM_DELETEITEM(func) \ |
| 465 if (uMsg == WM_DELETEITEM) \ |
| 466 { \ |
| 467 SetMsgHandled(TRUE); \ |
| 468 func((UINT)wParam, (LPDELETEITEMSTRUCT)lParam); \ |
| 469 lResult = TRUE; \ |
| 470 if(IsMsgHandled()) \ |
| 471 return TRUE; \ |
| 472 } |
| 473 |
| 474 //int OnCharToItem(UINT nChar, UINT nIndex, CListBox listBox) |
| 475 #define MSG_WM_CHARTOITEM(func) \ |
| 476 if (uMsg == WM_CHARTOITEM) \ |
| 477 { \ |
| 478 SetMsgHandled(TRUE); \ |
| 479 lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wPara
m), (HWND)lParam); \ |
| 480 if(IsMsgHandled()) \ |
| 481 return TRUE; \ |
| 482 } |
| 483 |
| 484 // int OnVKeyToItem(UINT nKey, UINT nIndex, CListBox listBox) |
| 485 #define MSG_WM_VKEYTOITEM(func) \ |
| 486 if (uMsg == WM_VKEYTOITEM) \ |
| 487 { \ |
| 488 SetMsgHandled(TRUE); \ |
| 489 lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wPara
m), (HWND)lParam); \ |
| 490 if(IsMsgHandled()) \ |
| 491 return TRUE; \ |
| 492 } |
| 493 |
| 494 // HCURSOR OnQueryDragIcon() |
| 495 #define MSG_WM_QUERYDRAGICON(func) \ |
| 496 if (uMsg == WM_QUERYDRAGICON) \ |
| 497 { \ |
| 498 SetMsgHandled(TRUE); \ |
| 499 lResult = (LRESULT)func(); \ |
| 500 if(IsMsgHandled()) \ |
| 501 return TRUE; \ |
| 502 } |
| 503 |
| 504 // int OnCompareItem(int nIDCtl, LPCOMPAREITEMSTRUCT lpCompareItemStruct) |
| 505 #define MSG_WM_COMPAREITEM(func) \ |
| 506 if (uMsg == WM_COMPAREITEM) \ |
| 507 { \ |
| 508 SetMsgHandled(TRUE); \ |
| 509 lResult = (LRESULT)func((UINT)wParam, (LPCOMPAREITEMSTRUCT)lPara
m); \ |
| 510 if(IsMsgHandled()) \ |
| 511 return TRUE; \ |
| 512 } |
| 513 |
| 514 // void OnCompacting(UINT nCpuTime) |
| 515 #define MSG_WM_COMPACTING(func) \ |
| 516 if (uMsg == WM_COMPACTING) \ |
| 517 { \ |
| 518 SetMsgHandled(TRUE); \ |
| 519 func((UINT)wParam); \ |
| 520 lResult = 0; \ |
| 521 if(IsMsgHandled()) \ |
| 522 return TRUE; \ |
| 523 } |
| 524 |
| 525 // BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct) |
| 526 #define MSG_WM_NCCREATE(func) \ |
| 527 if (uMsg == WM_NCCREATE) \ |
| 528 { \ |
| 529 SetMsgHandled(TRUE); \ |
| 530 lResult = (LRESULT)func((LPCREATESTRUCT)lParam); \ |
| 531 if(IsMsgHandled()) \ |
| 532 return TRUE; \ |
| 533 } |
| 534 |
| 535 // void OnNcDestroy() |
| 536 #define MSG_WM_NCDESTROY(func) \ |
| 537 if (uMsg == WM_NCDESTROY) \ |
| 538 { \ |
| 539 SetMsgHandled(TRUE); \ |
| 540 func(); \ |
| 541 lResult = 0; \ |
| 542 if(IsMsgHandled()) \ |
| 543 return TRUE; \ |
| 544 } |
| 545 |
| 546 // LRESULT OnNcCalcSize(BOOL bCalcValidRects, LPARAM lParam) |
| 547 #define MSG_WM_NCCALCSIZE(func) \ |
| 548 if (uMsg == WM_NCCALCSIZE) \ |
| 549 { \ |
| 550 SetMsgHandled(TRUE); \ |
| 551 lResult = func((BOOL)wParam, lParam); \ |
| 552 if(IsMsgHandled()) \ |
| 553 return TRUE; \ |
| 554 } |
| 555 |
| 556 // UINT OnNcHitTest(CPoint point) |
| 557 #define MSG_WM_NCHITTEST(func) \ |
| 558 if (uMsg == WM_NCHITTEST) \ |
| 559 { \ |
| 560 SetMsgHandled(TRUE); \ |
| 561 lResult = (LRESULT)func(_WTYPES_NS::CPoint(GET_X_LPARAM(lParam),
GET_Y_LPARAM(lParam))); \ |
| 562 if(IsMsgHandled()) \ |
| 563 return TRUE; \ |
| 564 } |
| 565 |
| 566 // void OnNcPaint(CRgn rgn) |
| 567 #define MSG_WM_NCPAINT(func) \ |
| 568 if (uMsg == WM_NCPAINT) \ |
| 569 { \ |
| 570 SetMsgHandled(TRUE); \ |
| 571 func((HRGN)wParam); \ |
| 572 lResult = 0; \ |
| 573 if(IsMsgHandled()) \ |
| 574 return TRUE; \ |
| 575 } |
| 576 |
| 577 // BOOL OnNcActivate(BOOL bActive) |
| 578 #define MSG_WM_NCACTIVATE(func) \ |
| 579 if (uMsg == WM_NCACTIVATE) \ |
| 580 { \ |
| 581 SetMsgHandled(TRUE); \ |
| 582 lResult = (LRESULT)func((BOOL)wParam); \ |
| 583 if(IsMsgHandled()) \ |
| 584 return TRUE; \ |
| 585 } |
| 586 |
| 587 // UINT OnGetDlgCode(LPMSG lpMsg) |
| 588 #define MSG_WM_GETDLGCODE(func) \ |
| 589 if (uMsg == WM_GETDLGCODE) \ |
| 590 { \ |
| 591 SetMsgHandled(TRUE); \ |
| 592 lResult = (LRESULT)func((LPMSG)lParam); \ |
| 593 if(IsMsgHandled()) \ |
| 594 return TRUE; \ |
| 595 } |
| 596 |
| 597 // void OnNcMouseMove(UINT nHitTest, CPoint point) |
| 598 #define MSG_WM_NCMOUSEMOVE(func) \ |
| 599 if (uMsg == WM_NCMOUSEMOVE) \ |
| 600 { \ |
| 601 SetMsgHandled(TRUE); \ |
| 602 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 603 lResult = 0; \ |
| 604 if(IsMsgHandled()) \ |
| 605 return TRUE; \ |
| 606 } |
| 607 |
| 608 // void OnNcLButtonDown(UINT nHitTest, CPoint point) |
| 609 #define MSG_WM_NCLBUTTONDOWN(func) \ |
| 610 if (uMsg == WM_NCLBUTTONDOWN) \ |
| 611 { \ |
| 612 SetMsgHandled(TRUE); \ |
| 613 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 614 lResult = 0; \ |
| 615 if(IsMsgHandled()) \ |
| 616 return TRUE; \ |
| 617 } |
| 618 |
| 619 // void OnNcLButtonUp(UINT nHitTest, CPoint point) |
| 620 #define MSG_WM_NCLBUTTONUP(func) \ |
| 621 if (uMsg == WM_NCLBUTTONUP) \ |
| 622 { \ |
| 623 SetMsgHandled(TRUE); \ |
| 624 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 625 lResult = 0; \ |
| 626 if(IsMsgHandled()) \ |
| 627 return TRUE; \ |
| 628 } |
| 629 |
| 630 // void OnNcLButtonDblClk(UINT nHitTest, CPoint point) |
| 631 #define MSG_WM_NCLBUTTONDBLCLK(func) \ |
| 632 if (uMsg == WM_NCLBUTTONDBLCLK) \ |
| 633 { \ |
| 634 SetMsgHandled(TRUE); \ |
| 635 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 636 lResult = 0; \ |
| 637 if(IsMsgHandled()) \ |
| 638 return TRUE; \ |
| 639 } |
| 640 |
| 641 // void OnNcRButtonDown(UINT nHitTest, CPoint point) |
| 642 #define MSG_WM_NCRBUTTONDOWN(func) \ |
| 643 if (uMsg == WM_NCRBUTTONDOWN) \ |
| 644 { \ |
| 645 SetMsgHandled(TRUE); \ |
| 646 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 647 lResult = 0; \ |
| 648 if(IsMsgHandled()) \ |
| 649 return TRUE; \ |
| 650 } |
| 651 |
| 652 // void OnNcRButtonUp(UINT nHitTest, CPoint point) |
| 653 #define MSG_WM_NCRBUTTONUP(func) \ |
| 654 if (uMsg == WM_NCRBUTTONUP) \ |
| 655 { \ |
| 656 SetMsgHandled(TRUE); \ |
| 657 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 658 lResult = 0; \ |
| 659 if(IsMsgHandled()) \ |
| 660 return TRUE; \ |
| 661 } |
| 662 |
| 663 // void OnNcRButtonDblClk(UINT nHitTest, CPoint point) |
| 664 #define MSG_WM_NCRBUTTONDBLCLK(func) \ |
| 665 if (uMsg == WM_NCRBUTTONDBLCLK) \ |
| 666 { \ |
| 667 SetMsgHandled(TRUE); \ |
| 668 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 669 lResult = 0; \ |
| 670 if(IsMsgHandled()) \ |
| 671 return TRUE; \ |
| 672 } |
| 673 |
| 674 // void OnNcMButtonDown(UINT nHitTest, CPoint point) |
| 675 #define MSG_WM_NCMBUTTONDOWN(func) \ |
| 676 if (uMsg == WM_NCMBUTTONDOWN) \ |
| 677 { \ |
| 678 SetMsgHandled(TRUE); \ |
| 679 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 680 lResult = 0; \ |
| 681 if(IsMsgHandled()) \ |
| 682 return TRUE; \ |
| 683 } |
| 684 |
| 685 // void OnNcMButtonUp(UINT nHitTest, CPoint point) |
| 686 #define MSG_WM_NCMBUTTONUP(func) \ |
| 687 if (uMsg == WM_NCMBUTTONUP) \ |
| 688 { \ |
| 689 SetMsgHandled(TRUE); \ |
| 690 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 691 lResult = 0; \ |
| 692 if(IsMsgHandled()) \ |
| 693 return TRUE; \ |
| 694 } |
| 695 |
| 696 // void OnNcMButtonDblClk(UINT nHitTest, CPoint point) |
| 697 #define MSG_WM_NCMBUTTONDBLCLK(func) \ |
| 698 if (uMsg == WM_NCMBUTTONDBLCLK) \ |
| 699 { \ |
| 700 SetMsgHandled(TRUE); \ |
| 701 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 702 lResult = 0; \ |
| 703 if(IsMsgHandled()) \ |
| 704 return TRUE; \ |
| 705 } |
| 706 |
| 707 // void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) |
| 708 #define MSG_WM_KEYDOWN(func) \ |
| 709 if (uMsg == WM_KEYDOWN) \ |
| 710 { \ |
| 711 SetMsgHandled(TRUE); \ |
| 712 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFF
FF0000) >> 16)); \ |
| 713 lResult = 0; \ |
| 714 if(IsMsgHandled()) \ |
| 715 return TRUE; \ |
| 716 } |
| 717 |
| 718 // void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) |
| 719 #define MSG_WM_KEYUP(func) \ |
| 720 if (uMsg == WM_KEYUP) \ |
| 721 { \ |
| 722 SetMsgHandled(TRUE); \ |
| 723 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFF
FF0000) >> 16)); \ |
| 724 lResult = 0; \ |
| 725 if(IsMsgHandled()) \ |
| 726 return TRUE; \ |
| 727 } |
| 728 |
| 729 // void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags) |
| 730 #define MSG_WM_CHAR(func) \ |
| 731 if (uMsg == WM_CHAR) \ |
| 732 { \ |
| 733 SetMsgHandled(TRUE); \ |
| 734 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFF
FF0000) >> 16)); \ |
| 735 lResult = 0; \ |
| 736 if(IsMsgHandled()) \ |
| 737 return TRUE; \ |
| 738 } |
| 739 |
| 740 // void OnDeadChar(UINT nChar, UINT nRepCnt, UINT nFlags) |
| 741 #define MSG_WM_DEADCHAR(func) \ |
| 742 if (uMsg == WM_DEADCHAR) \ |
| 743 { \ |
| 744 SetMsgHandled(TRUE); \ |
| 745 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFF
FF0000) >> 16)); \ |
| 746 lResult = 0; \ |
| 747 if(IsMsgHandled()) \ |
| 748 return TRUE; \ |
| 749 } |
| 750 |
| 751 // void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) |
| 752 #define MSG_WM_SYSKEYDOWN(func) \ |
| 753 if (uMsg == WM_SYSKEYDOWN) \ |
| 754 { \ |
| 755 SetMsgHandled(TRUE); \ |
| 756 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFF
FF0000) >> 16)); \ |
| 757 lResult = 0; \ |
| 758 if(IsMsgHandled()) \ |
| 759 return TRUE; \ |
| 760 } |
| 761 |
| 762 // void OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) |
| 763 #define MSG_WM_SYSKEYUP(func) \ |
| 764 if (uMsg == WM_SYSKEYUP) \ |
| 765 { \ |
| 766 SetMsgHandled(TRUE); \ |
| 767 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFF
FF0000) >> 16)); \ |
| 768 lResult = 0; \ |
| 769 if(IsMsgHandled()) \ |
| 770 return TRUE; \ |
| 771 } |
| 772 |
| 773 // void OnSysChar(UINT nChar, UINT nRepCnt, UINT nFlags) |
| 774 #define MSG_WM_SYSCHAR(func) \ |
| 775 if (uMsg == WM_SYSCHAR) \ |
| 776 { \ |
| 777 SetMsgHandled(TRUE); \ |
| 778 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFF
FF0000) >> 16)); \ |
| 779 lResult = 0; \ |
| 780 if(IsMsgHandled()) \ |
| 781 return TRUE; \ |
| 782 } |
| 783 |
| 784 // void OnSysDeadChar(UINT nChar, UINT nRepCnt, UINT nFlags) |
| 785 #define MSG_WM_SYSDEADCHAR(func) \ |
| 786 if (uMsg == WM_SYSDEADCHAR) \ |
| 787 { \ |
| 788 SetMsgHandled(TRUE); \ |
| 789 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFF
FF0000) >> 16)); \ |
| 790 lResult = 0; \ |
| 791 if(IsMsgHandled()) \ |
| 792 return TRUE; \ |
| 793 } |
| 794 |
| 795 // void OnSysCommand(UINT nID, LPARAM lParam) |
| 796 #define MSG_WM_SYSCOMMAND(func) \ |
| 797 if (uMsg == WM_SYSCOMMAND) \ |
| 798 { \ |
| 799 SetMsgHandled(TRUE); \ |
| 800 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 801 lResult = 0; \ |
| 802 if(IsMsgHandled()) \ |
| 803 return TRUE; \ |
| 804 } |
| 805 |
| 806 // void OnTCard(UINT idAction, DWORD dwActionData) |
| 807 #define MSG_WM_TCARD(func) \ |
| 808 if (uMsg == WM_TCARD) \ |
| 809 { \ |
| 810 SetMsgHandled(TRUE); \ |
| 811 func((UINT)wParam, (DWORD)lParam); \ |
| 812 lResult = 0; \ |
| 813 if(IsMsgHandled()) \ |
| 814 return TRUE; \ |
| 815 } |
| 816 |
| 817 // void OnTimer(UINT_PTR nIDEvent) |
| 818 #define MSG_WM_TIMER(func) \ |
| 819 if (uMsg == WM_TIMER) \ |
| 820 { \ |
| 821 SetMsgHandled(TRUE); \ |
| 822 func((UINT_PTR)wParam); \ |
| 823 lResult = 0; \ |
| 824 if(IsMsgHandled()) \ |
| 825 return TRUE; \ |
| 826 } |
| 827 |
| 828 // void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar) |
| 829 #define MSG_WM_HSCROLL(func) \ |
| 830 if (uMsg == WM_HSCROLL) \ |
| 831 { \ |
| 832 SetMsgHandled(TRUE); \ |
| 833 func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam);
\ |
| 834 lResult = 0; \ |
| 835 if(IsMsgHandled()) \ |
| 836 return TRUE; \ |
| 837 } |
| 838 |
| 839 // void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar) |
| 840 #define MSG_WM_VSCROLL(func) \ |
| 841 if (uMsg == WM_VSCROLL) \ |
| 842 { \ |
| 843 SetMsgHandled(TRUE); \ |
| 844 func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam);
\ |
| 845 lResult = 0; \ |
| 846 if(IsMsgHandled()) \ |
| 847 return TRUE; \ |
| 848 } |
| 849 |
| 850 // void OnInitMenu(CMenu menu) |
| 851 #define MSG_WM_INITMENU(func) \ |
| 852 if (uMsg == WM_INITMENU) \ |
| 853 { \ |
| 854 SetMsgHandled(TRUE); \ |
| 855 func((HMENU)wParam); \ |
| 856 lResult = 0; \ |
| 857 if(IsMsgHandled()) \ |
| 858 return TRUE; \ |
| 859 } |
| 860 |
| 861 // void OnInitMenuPopup(CMenu menuPopup, UINT nIndex, BOOL bSysMenu) |
| 862 #define MSG_WM_INITMENUPOPUP(func) \ |
| 863 if (uMsg == WM_INITMENUPOPUP) \ |
| 864 { \ |
| 865 SetMsgHandled(TRUE); \ |
| 866 func((HMENU)wParam, (UINT)LOWORD(lParam), (BOOL)HIWORD(lParam));
\ |
| 867 lResult = 0; \ |
| 868 if(IsMsgHandled()) \ |
| 869 return TRUE; \ |
| 870 } |
| 871 |
| 872 // void OnMenuSelect(UINT nItemID, UINT nFlags, CMenu menu) |
| 873 #define MSG_WM_MENUSELECT(func) \ |
| 874 if (uMsg == WM_MENUSELECT) \ |
| 875 { \ |
| 876 SetMsgHandled(TRUE); \ |
| 877 func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HMENU)lParam);
\ |
| 878 lResult = 0; \ |
| 879 if(IsMsgHandled()) \ |
| 880 return TRUE; \ |
| 881 } |
| 882 |
| 883 // LRESULT OnMenuChar(UINT nChar, UINT nFlags, CMenu menu) |
| 884 #define MSG_WM_MENUCHAR(func) \ |
| 885 if (uMsg == WM_MENUCHAR) \ |
| 886 { \ |
| 887 SetMsgHandled(TRUE); \ |
| 888 lResult = func((TCHAR)LOWORD(wParam), (UINT)HIWORD(wParam), (HME
NU)lParam); \ |
| 889 if(IsMsgHandled()) \ |
| 890 return TRUE; \ |
| 891 } |
| 892 |
| 893 // LRESULT OnNotify(int idCtrl, LPNMHDR pnmh) |
| 894 #define MSG_WM_NOTIFY(func) \ |
| 895 if (uMsg == WM_NOTIFY) \ |
| 896 { \ |
| 897 SetMsgHandled(TRUE); \ |
| 898 lResult = func((int)wParam, (LPNMHDR)lParam); \ |
| 899 if(IsMsgHandled()) \ |
| 900 return TRUE; \ |
| 901 } |
| 902 |
| 903 // void OnEnterIdle(UINT nWhy, CWindow wndWho) |
| 904 #define MSG_WM_ENTERIDLE(func) \ |
| 905 if (uMsg == WM_ENTERIDLE) \ |
| 906 { \ |
| 907 SetMsgHandled(TRUE); \ |
| 908 func((UINT)wParam, (HWND)lParam); \ |
| 909 lResult = 0; \ |
| 910 if(IsMsgHandled()) \ |
| 911 return TRUE; \ |
| 912 } |
| 913 |
| 914 // void OnMouseMove(UINT nFlags, CPoint point) |
| 915 #define MSG_WM_MOUSEMOVE(func) \ |
| 916 if (uMsg == WM_MOUSEMOVE) \ |
| 917 { \ |
| 918 SetMsgHandled(TRUE); \ |
| 919 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 920 lResult = 0; \ |
| 921 if(IsMsgHandled()) \ |
| 922 return TRUE; \ |
| 923 } |
| 924 |
| 925 // BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) |
| 926 #define MSG_WM_MOUSEWHEEL(func) \ |
| 927 if (uMsg == WM_MOUSEWHEEL) \ |
| 928 { \ |
| 929 SetMsgHandled(TRUE); \ |
| 930 lResult = (LRESULT)func((UINT)LOWORD(wParam), (short)HIWORD(wPar
am), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \ |
| 931 if(IsMsgHandled()) \ |
| 932 return TRUE; \ |
| 933 } |
| 934 |
| 935 // void OnLButtonDown(UINT nFlags, CPoint point) |
| 936 #define MSG_WM_LBUTTONDOWN(func) \ |
| 937 if (uMsg == WM_LBUTTONDOWN) \ |
| 938 { \ |
| 939 SetMsgHandled(TRUE); \ |
| 940 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 941 lResult = 0; \ |
| 942 if(IsMsgHandled()) \ |
| 943 return TRUE; \ |
| 944 } |
| 945 |
| 946 // void OnLButtonUp(UINT nFlags, CPoint point) |
| 947 #define MSG_WM_LBUTTONUP(func) \ |
| 948 if (uMsg == WM_LBUTTONUP) \ |
| 949 { \ |
| 950 SetMsgHandled(TRUE); \ |
| 951 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 952 lResult = 0; \ |
| 953 if(IsMsgHandled()) \ |
| 954 return TRUE; \ |
| 955 } |
| 956 |
| 957 // void OnLButtonDblClk(UINT nFlags, CPoint point) |
| 958 #define MSG_WM_LBUTTONDBLCLK(func) \ |
| 959 if (uMsg == WM_LBUTTONDBLCLK) \ |
| 960 { \ |
| 961 SetMsgHandled(TRUE); \ |
| 962 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 963 lResult = 0; \ |
| 964 if(IsMsgHandled()) \ |
| 965 return TRUE; \ |
| 966 } |
| 967 |
| 968 // void OnRButtonDown(UINT nFlags, CPoint point) |
| 969 #define MSG_WM_RBUTTONDOWN(func) \ |
| 970 if (uMsg == WM_RBUTTONDOWN) \ |
| 971 { \ |
| 972 SetMsgHandled(TRUE); \ |
| 973 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 974 lResult = 0; \ |
| 975 if(IsMsgHandled()) \ |
| 976 return TRUE; \ |
| 977 } |
| 978 |
| 979 // void OnRButtonUp(UINT nFlags, CPoint point) |
| 980 #define MSG_WM_RBUTTONUP(func) \ |
| 981 if (uMsg == WM_RBUTTONUP) \ |
| 982 { \ |
| 983 SetMsgHandled(TRUE); \ |
| 984 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 985 lResult = 0; \ |
| 986 if(IsMsgHandled()) \ |
| 987 return TRUE; \ |
| 988 } |
| 989 |
| 990 // void OnRButtonDblClk(UINT nFlags, CPoint point) |
| 991 #define MSG_WM_RBUTTONDBLCLK(func) \ |
| 992 if (uMsg == WM_RBUTTONDBLCLK) \ |
| 993 { \ |
| 994 SetMsgHandled(TRUE); \ |
| 995 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 996 lResult = 0; \ |
| 997 if(IsMsgHandled()) \ |
| 998 return TRUE; \ |
| 999 } |
| 1000 |
| 1001 // void OnMButtonDown(UINT nFlags, CPoint point) |
| 1002 #define MSG_WM_MBUTTONDOWN(func) \ |
| 1003 if (uMsg == WM_MBUTTONDOWN) \ |
| 1004 { \ |
| 1005 SetMsgHandled(TRUE); \ |
| 1006 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 1007 lResult = 0; \ |
| 1008 if(IsMsgHandled()) \ |
| 1009 return TRUE; \ |
| 1010 } |
| 1011 |
| 1012 // void OnMButtonUp(UINT nFlags, CPoint point) |
| 1013 #define MSG_WM_MBUTTONUP(func) \ |
| 1014 if (uMsg == WM_MBUTTONUP) \ |
| 1015 { \ |
| 1016 SetMsgHandled(TRUE); \ |
| 1017 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 1018 lResult = 0; \ |
| 1019 if(IsMsgHandled()) \ |
| 1020 return TRUE; \ |
| 1021 } |
| 1022 |
| 1023 // void OnMButtonDblClk(UINT nFlags, CPoint point) |
| 1024 #define MSG_WM_MBUTTONDBLCLK(func) \ |
| 1025 if (uMsg == WM_MBUTTONDBLCLK) \ |
| 1026 { \ |
| 1027 SetMsgHandled(TRUE); \ |
| 1028 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 1029 lResult = 0; \ |
| 1030 if(IsMsgHandled()) \ |
| 1031 return TRUE; \ |
| 1032 } |
| 1033 |
| 1034 // void OnParentNotify(UINT message, UINT nChildID, LPARAM lParam) |
| 1035 #define MSG_WM_PARENTNOTIFY(func) \ |
| 1036 if (uMsg == WM_PARENTNOTIFY) \ |
| 1037 { \ |
| 1038 SetMsgHandled(TRUE); \ |
| 1039 func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), lParam); \ |
| 1040 lResult = 0; \ |
| 1041 if(IsMsgHandled()) \ |
| 1042 return TRUE; \ |
| 1043 } |
| 1044 |
| 1045 // void OnMDIActivate(CWindow wndActivate, CWindow wndDeactivate) |
| 1046 #define MSG_WM_MDIACTIVATE(func) \ |
| 1047 if (uMsg == WM_MDIACTIVATE) \ |
| 1048 { \ |
| 1049 SetMsgHandled(TRUE); \ |
| 1050 func((HWND)wParam, (HWND)lParam); \ |
| 1051 lResult = 0; \ |
| 1052 if(IsMsgHandled()) \ |
| 1053 return TRUE; \ |
| 1054 } |
| 1055 |
| 1056 // void OnRenderFormat(UINT nFormat) |
| 1057 #define MSG_WM_RENDERFORMAT(func) \ |
| 1058 if (uMsg == WM_RENDERFORMAT) \ |
| 1059 { \ |
| 1060 SetMsgHandled(TRUE); \ |
| 1061 func((UINT)wParam); \ |
| 1062 lResult = 0; \ |
| 1063 if(IsMsgHandled()) \ |
| 1064 return TRUE; \ |
| 1065 } |
| 1066 |
| 1067 // void OnRenderAllFormats() |
| 1068 #define MSG_WM_RENDERALLFORMATS(func) \ |
| 1069 if (uMsg == WM_RENDERALLFORMATS) \ |
| 1070 { \ |
| 1071 SetMsgHandled(TRUE); \ |
| 1072 func(); \ |
| 1073 lResult = 0; \ |
| 1074 if(IsMsgHandled()) \ |
| 1075 return TRUE; \ |
| 1076 } |
| 1077 |
| 1078 // void OnDestroyClipboard() |
| 1079 #define MSG_WM_DESTROYCLIPBOARD(func) \ |
| 1080 if (uMsg == WM_DESTROYCLIPBOARD) \ |
| 1081 { \ |
| 1082 SetMsgHandled(TRUE); \ |
| 1083 func(); \ |
| 1084 lResult = 0; \ |
| 1085 if(IsMsgHandled()) \ |
| 1086 return TRUE; \ |
| 1087 } |
| 1088 |
| 1089 // void OnDrawClipboard() |
| 1090 #define MSG_WM_DRAWCLIPBOARD(func) \ |
| 1091 if (uMsg == WM_DRAWCLIPBOARD) \ |
| 1092 { \ |
| 1093 SetMsgHandled(TRUE); \ |
| 1094 func(); \ |
| 1095 lResult = 0; \ |
| 1096 if(IsMsgHandled()) \ |
| 1097 return TRUE; \ |
| 1098 } |
| 1099 |
| 1100 // void OnPaintClipboard(CWindow wndViewer, const LPPAINTSTRUCT lpPaintStruct) |
| 1101 #define MSG_WM_PAINTCLIPBOARD(func) \ |
| 1102 if (uMsg == WM_PAINTCLIPBOARD) \ |
| 1103 { \ |
| 1104 SetMsgHandled(TRUE); \ |
| 1105 func((HWND)wParam, (const LPPAINTSTRUCT)::GlobalLock((HGLOBAL)lP
aram)); \ |
| 1106 ::GlobalUnlock((HGLOBAL)lParam); \ |
| 1107 lResult = 0; \ |
| 1108 if(IsMsgHandled()) \ |
| 1109 return TRUE; \ |
| 1110 } |
| 1111 |
| 1112 // void OnVScrollClipboard(CWindow wndViewer, UINT nSBCode, UINT nPos) |
| 1113 #define MSG_WM_VSCROLLCLIPBOARD(func) \ |
| 1114 if (uMsg == WM_VSCROLLCLIPBOARD) \ |
| 1115 { \ |
| 1116 SetMsgHandled(TRUE); \ |
| 1117 func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam));
\ |
| 1118 lResult = 0; \ |
| 1119 if(IsMsgHandled()) \ |
| 1120 return TRUE; \ |
| 1121 } |
| 1122 |
| 1123 // void OnContextMenu(CWindow wnd, CPoint point) |
| 1124 #define MSG_WM_CONTEXTMENU(func) \ |
| 1125 if (uMsg == WM_CONTEXTMENU) \ |
| 1126 { \ |
| 1127 SetMsgHandled(TRUE); \ |
| 1128 func((HWND)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_
Y_LPARAM(lParam))); \ |
| 1129 lResult = 0; \ |
| 1130 if(IsMsgHandled()) \ |
| 1131 return TRUE; \ |
| 1132 } |
| 1133 |
| 1134 // void OnSizeClipboard(CWindow wndViewer, const LPRECT lpRect) |
| 1135 #define MSG_WM_SIZECLIPBOARD(func) \ |
| 1136 if (uMsg == WM_SIZECLIPBOARD) \ |
| 1137 { \ |
| 1138 SetMsgHandled(TRUE); \ |
| 1139 func((HWND)wParam, (const LPRECT)::GlobalLock((HGLOBAL)lParam));
\ |
| 1140 ::GlobalUnlock((HGLOBAL)lParam); \ |
| 1141 lResult = 0; \ |
| 1142 if(IsMsgHandled()) \ |
| 1143 return TRUE; \ |
| 1144 } |
| 1145 |
| 1146 // void OnAskCbFormatName(UINT nMaxCount, LPTSTR lpszString) |
| 1147 #define MSG_WM_ASKCBFORMATNAME(func) \ |
| 1148 if (uMsg == WM_ASKCBFORMATNAME) \ |
| 1149 { \ |
| 1150 SetMsgHandled(TRUE); \ |
| 1151 func((DWORD)wParam, (LPTSTR)lParam); \ |
| 1152 lResult = 0; \ |
| 1153 if(IsMsgHandled()) \ |
| 1154 return TRUE; \ |
| 1155 } |
| 1156 |
| 1157 // void OnChangeCbChain(CWindow wndRemove, CWindow wndAfter) |
| 1158 #define MSG_WM_CHANGECBCHAIN(func) \ |
| 1159 if (uMsg == WM_CHANGECBCHAIN) \ |
| 1160 { \ |
| 1161 SetMsgHandled(TRUE); \ |
| 1162 func((HWND)wParam, (HWND)lParam); \ |
| 1163 lResult = 0; \ |
| 1164 if(IsMsgHandled()) \ |
| 1165 return TRUE; \ |
| 1166 } |
| 1167 |
| 1168 // void OnHScrollClipboard(CWindow wndViewer, UINT nSBCode, UINT nPos) |
| 1169 #define MSG_WM_HSCROLLCLIPBOARD(func) \ |
| 1170 if (uMsg == WM_HSCROLLCLIPBOARD) \ |
| 1171 { \ |
| 1172 SetMsgHandled(TRUE); \ |
| 1173 func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam));
\ |
| 1174 lResult = 0; \ |
| 1175 if(IsMsgHandled()) \ |
| 1176 return TRUE; \ |
| 1177 } |
| 1178 |
| 1179 // BOOL OnQueryNewPalette() |
| 1180 #define MSG_WM_QUERYNEWPALETTE(func) \ |
| 1181 if (uMsg == WM_QUERYNEWPALETTE) \ |
| 1182 { \ |
| 1183 SetMsgHandled(TRUE); \ |
| 1184 lResult = (LRESULT)func(); \ |
| 1185 if(IsMsgHandled()) \ |
| 1186 return TRUE; \ |
| 1187 } |
| 1188 |
| 1189 // void OnPaletteChanged(CWindow wndFocus) |
| 1190 #define MSG_WM_PALETTECHANGED(func) \ |
| 1191 if (uMsg == WM_PALETTECHANGED) \ |
| 1192 { \ |
| 1193 SetMsgHandled(TRUE); \ |
| 1194 func((HWND)wParam); \ |
| 1195 lResult = 0; \ |
| 1196 if(IsMsgHandled()) \ |
| 1197 return TRUE; \ |
| 1198 } |
| 1199 |
| 1200 // void OnPaletteIsChanging(CWindow wndPalChg) |
| 1201 #define MSG_WM_PALETTEISCHANGING(func) \ |
| 1202 if (uMsg == WM_PALETTEISCHANGING) \ |
| 1203 { \ |
| 1204 SetMsgHandled(TRUE); \ |
| 1205 func((HWND)wParam); \ |
| 1206 lResult = 0; \ |
| 1207 if(IsMsgHandled()) \ |
| 1208 return TRUE; \ |
| 1209 } |
| 1210 |
| 1211 // void OnDropFiles(HDROP hDropInfo) |
| 1212 #define MSG_WM_DROPFILES(func) \ |
| 1213 if (uMsg == WM_DROPFILES) \ |
| 1214 { \ |
| 1215 SetMsgHandled(TRUE); \ |
| 1216 func((HDROP)wParam); \ |
| 1217 lResult = 0; \ |
| 1218 if(IsMsgHandled()) \ |
| 1219 return TRUE; \ |
| 1220 } |
| 1221 |
| 1222 // void OnWindowPosChanging(LPWINDOWPOS lpWndPos) |
| 1223 #define MSG_WM_WINDOWPOSCHANGING(func) \ |
| 1224 if (uMsg == WM_WINDOWPOSCHANGING) \ |
| 1225 { \ |
| 1226 SetMsgHandled(TRUE); \ |
| 1227 func((LPWINDOWPOS)lParam); \ |
| 1228 lResult = 0; \ |
| 1229 if(IsMsgHandled()) \ |
| 1230 return TRUE; \ |
| 1231 } |
| 1232 |
| 1233 // void OnWindowPosChanged(LPWINDOWPOS lpWndPos) |
| 1234 #define MSG_WM_WINDOWPOSCHANGED(func) \ |
| 1235 if (uMsg == WM_WINDOWPOSCHANGED) \ |
| 1236 { \ |
| 1237 SetMsgHandled(TRUE); \ |
| 1238 func((LPWINDOWPOS)lParam); \ |
| 1239 lResult = 0; \ |
| 1240 if(IsMsgHandled()) \ |
| 1241 return TRUE; \ |
| 1242 } |
| 1243 |
| 1244 // void OnExitMenuLoop(BOOL fIsTrackPopupMenu) |
| 1245 #define MSG_WM_EXITMENULOOP(func) \ |
| 1246 if (uMsg == WM_EXITMENULOOP) \ |
| 1247 { \ |
| 1248 SetMsgHandled(TRUE); \ |
| 1249 func((BOOL)wParam); \ |
| 1250 lResult = 0; \ |
| 1251 if(IsMsgHandled()) \ |
| 1252 return TRUE; \ |
| 1253 } |
| 1254 |
| 1255 // void OnEnterMenuLoop(BOOL fIsTrackPopupMenu) |
| 1256 #define MSG_WM_ENTERMENULOOP(func) \ |
| 1257 if (uMsg == WM_ENTERMENULOOP) \ |
| 1258 { \ |
| 1259 SetMsgHandled(TRUE); \ |
| 1260 func((BOOL)wParam); \ |
| 1261 lResult = 0; \ |
| 1262 if(IsMsgHandled()) \ |
| 1263 return TRUE; \ |
| 1264 } |
| 1265 |
| 1266 // void OnStyleChanged(int nStyleType, LPSTYLESTRUCT lpStyleStruct) |
| 1267 #define MSG_WM_STYLECHANGED(func) \ |
| 1268 if (uMsg == WM_STYLECHANGED) \ |
| 1269 { \ |
| 1270 SetMsgHandled(TRUE); \ |
| 1271 func((UINT)wParam, (LPSTYLESTRUCT)lParam); \ |
| 1272 lResult = 0; \ |
| 1273 if(IsMsgHandled()) \ |
| 1274 return TRUE; \ |
| 1275 } |
| 1276 |
| 1277 // void OnStyleChanging(int nStyleType, LPSTYLESTRUCT lpStyleStruct) |
| 1278 #define MSG_WM_STYLECHANGING(func) \ |
| 1279 if (uMsg == WM_STYLECHANGING) \ |
| 1280 { \ |
| 1281 SetMsgHandled(TRUE); \ |
| 1282 func((UINT)wParam, (LPSTYLESTRUCT)lParam); \ |
| 1283 lResult = 0; \ |
| 1284 if(IsMsgHandled()) \ |
| 1285 return TRUE; \ |
| 1286 } |
| 1287 |
| 1288 // void OnSizing(UINT fwSide, LPRECT pRect) |
| 1289 #define MSG_WM_SIZING(func) \ |
| 1290 if (uMsg == WM_SIZING) \ |
| 1291 { \ |
| 1292 SetMsgHandled(TRUE); \ |
| 1293 func((UINT)wParam, (LPRECT)lParam); \ |
| 1294 lResult = TRUE; \ |
| 1295 if(IsMsgHandled()) \ |
| 1296 return TRUE; \ |
| 1297 } |
| 1298 |
| 1299 // void OnMoving(UINT fwSide, LPRECT pRect) |
| 1300 #define MSG_WM_MOVING(func) \ |
| 1301 if (uMsg == WM_MOVING) \ |
| 1302 { \ |
| 1303 SetMsgHandled(TRUE); \ |
| 1304 func((UINT)wParam, (LPRECT)lParam); \ |
| 1305 lResult = TRUE; \ |
| 1306 if(IsMsgHandled()) \ |
| 1307 return TRUE; \ |
| 1308 } |
| 1309 |
| 1310 // void OnCaptureChanged(CWindow wnd) |
| 1311 #define MSG_WM_CAPTURECHANGED(func) \ |
| 1312 if (uMsg == WM_CAPTURECHANGED) \ |
| 1313 { \ |
| 1314 SetMsgHandled(TRUE); \ |
| 1315 func((HWND)lParam); \ |
| 1316 lResult = 0; \ |
| 1317 if(IsMsgHandled()) \ |
| 1318 return TRUE; \ |
| 1319 } |
| 1320 |
| 1321 // BOOL OnDeviceChange(UINT nEventType, DWORD dwData) |
| 1322 #define MSG_WM_DEVICECHANGE(func) \ |
| 1323 if (uMsg == WM_DEVICECHANGE) \ |
| 1324 { \ |
| 1325 SetMsgHandled(TRUE); \ |
| 1326 lResult = (LRESULT)func((UINT)wParam, (DWORD)lParam); \ |
| 1327 if(IsMsgHandled()) \ |
| 1328 return TRUE; \ |
| 1329 } |
| 1330 |
| 1331 // void OnCommand(UINT uNotifyCode, int nID, CWindow wndCtl) |
| 1332 #define MSG_WM_COMMAND(func) \ |
| 1333 if (uMsg == WM_COMMAND) \ |
| 1334 { \ |
| 1335 SetMsgHandled(TRUE); \ |
| 1336 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 1337 lResult = 0; \ |
| 1338 if(IsMsgHandled()) \ |
| 1339 return TRUE; \ |
| 1340 } |
| 1341 |
| 1342 // void OnDisplayChange(UINT uBitsPerPixel, CSize sizeScreen) |
| 1343 #define MSG_WM_DISPLAYCHANGE(func) \ |
| 1344 if (uMsg == WM_DISPLAYCHANGE) \ |
| 1345 { \ |
| 1346 SetMsgHandled(TRUE); \ |
| 1347 func((UINT)wParam, _WTYPES_NS::CSize(GET_X_LPARAM(lParam), GET_Y
_LPARAM(lParam))); \ |
| 1348 lResult = 0; \ |
| 1349 if(IsMsgHandled()) \ |
| 1350 return TRUE; \ |
| 1351 } |
| 1352 |
| 1353 // void OnEnterSizeMove() |
| 1354 #define MSG_WM_ENTERSIZEMOVE(func) \ |
| 1355 if (uMsg == WM_ENTERSIZEMOVE) \ |
| 1356 { \ |
| 1357 SetMsgHandled(TRUE); \ |
| 1358 func(); \ |
| 1359 lResult = 0; \ |
| 1360 if(IsMsgHandled()) \ |
| 1361 return TRUE; \ |
| 1362 } |
| 1363 |
| 1364 // void OnExitSizeMove() |
| 1365 #define MSG_WM_EXITSIZEMOVE(func) \ |
| 1366 if (uMsg == WM_EXITSIZEMOVE) \ |
| 1367 { \ |
| 1368 SetMsgHandled(TRUE); \ |
| 1369 func(); \ |
| 1370 lResult = 0; \ |
| 1371 if(IsMsgHandled()) \ |
| 1372 return TRUE; \ |
| 1373 } |
| 1374 |
| 1375 // HFONT OnGetFont() |
| 1376 #define MSG_WM_GETFONT(func) \ |
| 1377 if (uMsg == WM_GETFONT) \ |
| 1378 { \ |
| 1379 SetMsgHandled(TRUE); \ |
| 1380 lResult = (LRESULT)func(); \ |
| 1381 if(IsMsgHandled()) \ |
| 1382 return TRUE; \ |
| 1383 } |
| 1384 |
| 1385 // LRESULT OnGetHotKey() |
| 1386 #define MSG_WM_GETHOTKEY(func) \ |
| 1387 if (uMsg == WM_GETHOTKEY) \ |
| 1388 { \ |
| 1389 SetMsgHandled(TRUE); \ |
| 1390 lResult = func(); \ |
| 1391 if(IsMsgHandled()) \ |
| 1392 return TRUE; \ |
| 1393 } |
| 1394 |
| 1395 // HICON OnGetIcon() |
| 1396 #define MSG_WM_GETICON(func) \ |
| 1397 if (uMsg == WM_GETICON) \ |
| 1398 { \ |
| 1399 SetMsgHandled(TRUE); \ |
| 1400 lResult = (LRESULT)func((UINT)wParam); \ |
| 1401 if(IsMsgHandled()) \ |
| 1402 return TRUE; \ |
| 1403 } |
| 1404 |
| 1405 // int OnGetText(int cchTextMax, LPTSTR lpszText) |
| 1406 #define MSG_WM_GETTEXT(func) \ |
| 1407 if (uMsg == WM_GETTEXT) \ |
| 1408 { \ |
| 1409 SetMsgHandled(TRUE); \ |
| 1410 lResult = (LRESULT)func((int)wParam, (LPTSTR)lParam); \ |
| 1411 if(IsMsgHandled()) \ |
| 1412 return TRUE; \ |
| 1413 } |
| 1414 |
| 1415 // int OnGetTextLength() |
| 1416 #define MSG_WM_GETTEXTLENGTH(func) \ |
| 1417 if (uMsg == WM_GETTEXTLENGTH) \ |
| 1418 { \ |
| 1419 SetMsgHandled(TRUE); \ |
| 1420 lResult = (LRESULT)func(); \ |
| 1421 if(IsMsgHandled()) \ |
| 1422 return TRUE; \ |
| 1423 } |
| 1424 |
| 1425 // void OnHelp(LPHELPINFO lpHelpInfo) |
| 1426 #define MSG_WM_HELP(func) \ |
| 1427 if (uMsg == WM_HELP) \ |
| 1428 { \ |
| 1429 SetMsgHandled(TRUE); \ |
| 1430 func((LPHELPINFO)lParam); \ |
| 1431 lResult = TRUE; \ |
| 1432 if(IsMsgHandled()) \ |
| 1433 return TRUE; \ |
| 1434 } |
| 1435 |
| 1436 // void OnHotKey(int nHotKeyID, UINT uModifiers, UINT uVirtKey) |
| 1437 #define MSG_WM_HOTKEY(func) \ |
| 1438 if (uMsg == WM_HOTKEY) \ |
| 1439 { \ |
| 1440 SetMsgHandled(TRUE); \ |
| 1441 func((int)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \ |
| 1442 lResult = 0; \ |
| 1443 if(IsMsgHandled()) \ |
| 1444 return TRUE; \ |
| 1445 } |
| 1446 |
| 1447 // void OnInputLangChange(DWORD dwCharSet, HKL hKbdLayout) |
| 1448 #define MSG_WM_INPUTLANGCHANGE(func) \ |
| 1449 if (uMsg == WM_INPUTLANGCHANGE) \ |
| 1450 { \ |
| 1451 SetMsgHandled(TRUE); \ |
| 1452 func((DWORD)wParam, (HKL)lParam); \ |
| 1453 lResult = TRUE; \ |
| 1454 if(IsMsgHandled()) \ |
| 1455 return TRUE; \ |
| 1456 } |
| 1457 |
| 1458 // void OnInputLangChangeRequest(BOOL bSysCharSet, HKL hKbdLayout) |
| 1459 #define MSG_WM_INPUTLANGCHANGEREQUEST(func) \ |
| 1460 if (uMsg == WM_INPUTLANGCHANGEREQUEST) \ |
| 1461 { \ |
| 1462 SetMsgHandled(TRUE); \ |
| 1463 func((BOOL)wParam, (HKL)lParam); \ |
| 1464 lResult = 0; \ |
| 1465 if(IsMsgHandled()) \ |
| 1466 return TRUE; \ |
| 1467 } |
| 1468 |
| 1469 // void OnNextDlgCtl(BOOL bHandle, WPARAM wCtlFocus) |
| 1470 #define MSG_WM_NEXTDLGCTL(func) \ |
| 1471 if (uMsg == WM_NEXTDLGCTL) \ |
| 1472 { \ |
| 1473 SetMsgHandled(TRUE); \ |
| 1474 func((BOOL)LOWORD(lParam), wParam); \ |
| 1475 lResult = 0; \ |
| 1476 if(IsMsgHandled()) \ |
| 1477 return TRUE; \ |
| 1478 } |
| 1479 |
| 1480 // void OnNextMenu(int nVirtKey, LPMDINEXTMENU lpMdiNextMenu) |
| 1481 #define MSG_WM_NEXTMENU(func) \ |
| 1482 if (uMsg == WM_NEXTMENU) \ |
| 1483 { \ |
| 1484 SetMsgHandled(TRUE); \ |
| 1485 func((int)wParam, (LPMDINEXTMENU)lParam); \ |
| 1486 lResult = 0; \ |
| 1487 if(IsMsgHandled()) \ |
| 1488 return TRUE; \ |
| 1489 } |
| 1490 |
| 1491 // int OnNotifyFormat(CWindow wndFrom, int nCommand) |
| 1492 #define MSG_WM_NOTIFYFORMAT(func) \ |
| 1493 if (uMsg == WM_NOTIFYFORMAT) \ |
| 1494 { \ |
| 1495 SetMsgHandled(TRUE); \ |
| 1496 lResult = (LRESULT)func((HWND)wParam, (int)lParam); \ |
| 1497 if(IsMsgHandled()) \ |
| 1498 return TRUE; \ |
| 1499 } |
| 1500 |
| 1501 // BOOL OnPowerBroadcast(DWORD dwPowerEvent, DWORD dwData) |
| 1502 #define MSG_WM_POWERBROADCAST(func) \ |
| 1503 if (uMsg == WM_POWERBROADCAST) \ |
| 1504 { \ |
| 1505 SetMsgHandled(TRUE); \ |
| 1506 lResult = (LRESULT)func((DWORD)wParam, (DWORD)lParam); \ |
| 1507 if(IsMsgHandled()) \ |
| 1508 return TRUE; \ |
| 1509 } |
| 1510 |
| 1511 // void OnPrint(CDCHandle dc, UINT uFlags) |
| 1512 #define MSG_WM_PRINT(func) \ |
| 1513 if (uMsg == WM_PRINT) \ |
| 1514 { \ |
| 1515 SetMsgHandled(TRUE); \ |
| 1516 func((HDC)wParam, (UINT)lParam); \ |
| 1517 lResult = 0; \ |
| 1518 if(IsMsgHandled()) \ |
| 1519 return TRUE; \ |
| 1520 } |
| 1521 |
| 1522 // void OnPrintClient(CDCHandle dc, UINT uFlags) |
| 1523 #define MSG_WM_PRINTCLIENT(func) \ |
| 1524 if (uMsg == WM_PRINTCLIENT) \ |
| 1525 { \ |
| 1526 SetMsgHandled(TRUE); \ |
| 1527 func((HDC)wParam, (UINT)lParam); \ |
| 1528 lResult = 0; \ |
| 1529 if(IsMsgHandled()) \ |
| 1530 return TRUE; \ |
| 1531 } |
| 1532 |
| 1533 // void OnRasDialEvent(RASCONNSTATE rasconnstate, DWORD dwError) |
| 1534 #define MSG_WM_RASDIALEVENT(func) \ |
| 1535 if (uMsg == WM_RASDIALEVENT) \ |
| 1536 { \ |
| 1537 SetMsgHandled(TRUE); \ |
| 1538 func((RASCONNSTATE)wParam, (DWORD)lParam); \ |
| 1539 lResult = TRUE; \ |
| 1540 if(IsMsgHandled()) \ |
| 1541 return TRUE; \ |
| 1542 } |
| 1543 |
| 1544 // void OnSetFont(CFont font, BOOL bRedraw) |
| 1545 #define MSG_WM_SETFONT(func) \ |
| 1546 if (uMsg == WM_SETFONT) \ |
| 1547 { \ |
| 1548 SetMsgHandled(TRUE); \ |
| 1549 func((HFONT)wParam, (BOOL)LOWORD(lParam)); \ |
| 1550 lResult = 0; \ |
| 1551 if(IsMsgHandled()) \ |
| 1552 return TRUE; \ |
| 1553 } |
| 1554 |
| 1555 // int OnSetHotKey(int nVirtKey, UINT uFlags) |
| 1556 #define MSG_WM_SETHOTKEY(func) \ |
| 1557 if (uMsg == WM_SETHOTKEY) \ |
| 1558 { \ |
| 1559 SetMsgHandled(TRUE); \ |
| 1560 lResult = (LRESULT)func((int)LOBYTE(LOWORD(wParam)), (UINT)HIBYT
E(LOWORD(wParam))); \ |
| 1561 if(IsMsgHandled()) \ |
| 1562 return TRUE; \ |
| 1563 } |
| 1564 |
| 1565 // HICON OnSetIcon(UINT uType, HICON hIcon) |
| 1566 #define MSG_WM_SETICON(func) \ |
| 1567 if (uMsg == WM_SETICON) \ |
| 1568 { \ |
| 1569 SetMsgHandled(TRUE); \ |
| 1570 lResult = (LRESULT)func((UINT)wParam, (HICON)lParam); \ |
| 1571 if(IsMsgHandled()) \ |
| 1572 return TRUE; \ |
| 1573 } |
| 1574 |
| 1575 // void OnSetRedraw(BOOL bRedraw) |
| 1576 #define MSG_WM_SETREDRAW(func) \ |
| 1577 if (uMsg == WM_SETREDRAW) \ |
| 1578 { \ |
| 1579 SetMsgHandled(TRUE); \ |
| 1580 func((BOOL)wParam); \ |
| 1581 lResult = 0; \ |
| 1582 if(IsMsgHandled()) \ |
| 1583 return TRUE; \ |
| 1584 } |
| 1585 |
| 1586 // int OnSetText(LPCTSTR lpstrText) |
| 1587 #define MSG_WM_SETTEXT(func) \ |
| 1588 if (uMsg == WM_SETTEXT) \ |
| 1589 { \ |
| 1590 SetMsgHandled(TRUE); \ |
| 1591 lResult = (LRESULT)func((LPCTSTR)lParam); \ |
| 1592 if(IsMsgHandled()) \ |
| 1593 return TRUE; \ |
| 1594 } |
| 1595 |
| 1596 // void OnUserChanged() |
| 1597 #define MSG_WM_USERCHANGED(func) \ |
| 1598 if (uMsg == WM_USERCHANGED) \ |
| 1599 { \ |
| 1600 SetMsgHandled(TRUE); \ |
| 1601 func(); \ |
| 1602 lResult = 0; \ |
| 1603 if(IsMsgHandled()) \ |
| 1604 return TRUE; \ |
| 1605 } |
| 1606 |
| 1607 /////////////////////////////////////////////////////////////////////////////// |
| 1608 // New NT4 & NT5 messages |
| 1609 |
| 1610 #if(_WIN32_WINNT >= 0x0400) |
| 1611 |
| 1612 // void OnMouseHover(WPARAM wParam, CPoint ptPos) |
| 1613 #define MSG_WM_MOUSEHOVER(func) \ |
| 1614 if (uMsg == WM_MOUSEHOVER) \ |
| 1615 { \ |
| 1616 SetMsgHandled(TRUE); \ |
| 1617 func(wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPAR
AM(lParam))); \ |
| 1618 lResult = 0; \ |
| 1619 if(IsMsgHandled()) \ |
| 1620 return TRUE; \ |
| 1621 } |
| 1622 |
| 1623 // void OnMouseLeave() |
| 1624 #define MSG_WM_MOUSELEAVE(func) \ |
| 1625 if (uMsg == WM_MOUSELEAVE) \ |
| 1626 { \ |
| 1627 SetMsgHandled(TRUE); \ |
| 1628 func(); \ |
| 1629 lResult = 0; \ |
| 1630 if(IsMsgHandled()) \ |
| 1631 return TRUE; \ |
| 1632 } |
| 1633 |
| 1634 #endif /* _WIN32_WINNT >= 0x0400 */ |
| 1635 |
| 1636 #if(WINVER >= 0x0500) |
| 1637 |
| 1638 // void OnMenuRButtonUp(WPARAM wParam, CMenu menu) |
| 1639 #define MSG_WM_MENURBUTTONUP(func) \ |
| 1640 if (uMsg == WM_MENURBUTTONUP) \ |
| 1641 { \ |
| 1642 SetMsgHandled(TRUE); \ |
| 1643 func(wParam, (HMENU)lParam); \ |
| 1644 lResult = 0; \ |
| 1645 if(IsMsgHandled()) \ |
| 1646 return TRUE; \ |
| 1647 } |
| 1648 |
| 1649 // LRESULT OnMenuDrag(WPARAM wParam, CMenu menu) |
| 1650 #define MSG_WM_MENUDRAG(func) \ |
| 1651 if (uMsg == WM_MENUDRAG) \ |
| 1652 { \ |
| 1653 SetMsgHandled(TRUE); \ |
| 1654 lResult = func(wParam, (HMENU)lParam); \ |
| 1655 if(IsMsgHandled()) \ |
| 1656 return TRUE; \ |
| 1657 } |
| 1658 |
| 1659 // LRESULT OnMenuGetObject(PMENUGETOBJECTINFO info) |
| 1660 #define MSG_WM_MENUGETOBJECT(func) \ |
| 1661 if (uMsg == WM_MENUGETOBJECT) \ |
| 1662 { \ |
| 1663 SetMsgHandled(TRUE); \ |
| 1664 lResult = func((PMENUGETOBJECTINFO)lParam); \ |
| 1665 if(IsMsgHandled()) \ |
| 1666 return TRUE; \ |
| 1667 } |
| 1668 |
| 1669 // void OnUnInitMenuPopup(UINT nID, CMenu menu) |
| 1670 #define MSG_WM_UNINITMENUPOPUP(func) \ |
| 1671 if (uMsg == WM_UNINITMENUPOPUP) \ |
| 1672 { \ |
| 1673 SetMsgHandled(TRUE); \ |
| 1674 func((UINT)HIWORD(lParam), (HMENU)wParam); \ |
| 1675 lResult = 0; \ |
| 1676 if(IsMsgHandled()) \ |
| 1677 return TRUE; \ |
| 1678 } |
| 1679 |
| 1680 // void OnMenuCommand(WPARAM nIndex, CMenu menu) |
| 1681 #define MSG_WM_MENUCOMMAND(func) \ |
| 1682 if (uMsg == WM_MENUCOMMAND) \ |
| 1683 { \ |
| 1684 SetMsgHandled(TRUE); \ |
| 1685 func(wParam, (HMENU)lParam); \ |
| 1686 lResult = 0; \ |
| 1687 if(IsMsgHandled()) \ |
| 1688 return TRUE; \ |
| 1689 } |
| 1690 |
| 1691 #endif /* WINVER >= 0x0500 */ |
| 1692 |
| 1693 #if(_WIN32_WINNT >= 0x0500) |
| 1694 |
| 1695 // BOOL OnAppCommand(CWindow wndFocus, short cmd, WORD uDevice, int dwKeys) |
| 1696 #define MSG_WM_APPCOMMAND(func) \ |
| 1697 if (uMsg == WM_APPCOMMAND) \ |
| 1698 { \ |
| 1699 SetMsgHandled(TRUE); \ |
| 1700 lResult = (LRESULT)func((HWND)wParam, GET_APPCOMMAND_LPARAM(lPar
am), GET_DEVICE_LPARAM(lParam), GET_KEYSTATE_LPARAM(lParam)); \ |
| 1701 if(IsMsgHandled()) \ |
| 1702 return TRUE; \ |
| 1703 } |
| 1704 |
| 1705 // void OnNCXButtonDown(int fwButton, short nHittest, CPoint ptPos) |
| 1706 #define MSG_WM_NCXBUTTONDOWN(func) \ |
| 1707 if (uMsg == WM_NCXBUTTONDOWN) \ |
| 1708 { \ |
| 1709 SetMsgHandled(TRUE); \ |
| 1710 func(GET_XBUTTON_WPARAM(wParam), GET_NCHITTEST_WPARAM(wParam), _
WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \ |
| 1711 lResult = 0; \ |
| 1712 if(IsMsgHandled()) \ |
| 1713 return TRUE; \ |
| 1714 } |
| 1715 |
| 1716 // void OnNCXButtonUp(int fwButton, short nHittest, CPoint ptPos) |
| 1717 #define MSG_WM_NCXBUTTONUP(func) \ |
| 1718 if (uMsg == WM_NCXBUTTONUP) \ |
| 1719 { \ |
| 1720 SetMsgHandled(TRUE); \ |
| 1721 func(GET_XBUTTON_WPARAM(wParam), GET_NCHITTEST_WPARAM(wParam), _
WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \ |
| 1722 lResult = 0; \ |
| 1723 if(IsMsgHandled()) \ |
| 1724 return TRUE; \ |
| 1725 } |
| 1726 |
| 1727 // void OnNCXButtonDblClk(int fwButton, short nHittest, CPoint ptPos) |
| 1728 #define MSG_WM_NCXBUTTONDBLCLK(func) \ |
| 1729 if (uMsg == WM_NCXBUTTONDBLCLK) \ |
| 1730 { \ |
| 1731 SetMsgHandled(TRUE); \ |
| 1732 func(GET_XBUTTON_WPARAM(wParam), GET_NCHITTEST_WPARAM(wParam), _
WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \ |
| 1733 lResult = 0; \ |
| 1734 if(IsMsgHandled()) \ |
| 1735 return TRUE; \ |
| 1736 } |
| 1737 |
| 1738 // void OnXButtonDown(int fwButton, int dwKeys, CPoint ptPos) |
| 1739 #define MSG_WM_XBUTTONDOWN(func) \ |
| 1740 if (uMsg == WM_XBUTTONDOWN) \ |
| 1741 { \ |
| 1742 SetMsgHandled(TRUE); \ |
| 1743 func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _W
TYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \ |
| 1744 lResult = 0; \ |
| 1745 if(IsMsgHandled()) \ |
| 1746 return TRUE; \ |
| 1747 } |
| 1748 |
| 1749 // void OnXButtonUp(int fwButton, int dwKeys, CPoint ptPos) |
| 1750 #define MSG_WM_XBUTTONUP(func) \ |
| 1751 if (uMsg == WM_XBUTTONUP) \ |
| 1752 { \ |
| 1753 SetMsgHandled(TRUE); \ |
| 1754 func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _W
TYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \ |
| 1755 lResult = 0; \ |
| 1756 if(IsMsgHandled()) \ |
| 1757 return TRUE; \ |
| 1758 } |
| 1759 |
| 1760 // void OnXButtonDblClk(int fwButton, int dwKeys, CPoint ptPos) |
| 1761 #define MSG_WM_XBUTTONDBLCLK(func) \ |
| 1762 if (uMsg == WM_XBUTTONDBLCLK) \ |
| 1763 { \ |
| 1764 SetMsgHandled(TRUE); \ |
| 1765 func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _W
TYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \ |
| 1766 lResult = 0; \ |
| 1767 if(IsMsgHandled()) \ |
| 1768 return TRUE; \ |
| 1769 } |
| 1770 |
| 1771 // void OnChangeUIState(WORD nAction, WORD nState) |
| 1772 #define MSG_WM_CHANGEUISTATE(func) \ |
| 1773 if (uMsg == WM_CHANGEUISTATE) \ |
| 1774 { \ |
| 1775 SetMsgHandled(TRUE); \ |
| 1776 func(LOWORD(wParam), HIWORD(wParam)); \ |
| 1777 lResult = 0; \ |
| 1778 if(IsMsgHandled()) \ |
| 1779 return TRUE; \ |
| 1780 } |
| 1781 |
| 1782 // void OnUpdateUIState(WORD nAction, WORD nState) |
| 1783 #define MSG_WM_UPDATEUISTATE(func) \ |
| 1784 if (uMsg == WM_UPDATEUISTATE) \ |
| 1785 { \ |
| 1786 SetMsgHandled(TRUE); \ |
| 1787 func(LOWORD(wParam), HIWORD(wParam)); \ |
| 1788 lResult = 0; \ |
| 1789 if(IsMsgHandled()) \ |
| 1790 return TRUE; \ |
| 1791 } |
| 1792 |
| 1793 // LRESULT OnQueryUIState() |
| 1794 #define MSG_WM_QUERYUISTATE(func) \ |
| 1795 if (uMsg == WM_QUERYUISTATE) \ |
| 1796 { \ |
| 1797 SetMsgHandled(TRUE); \ |
| 1798 lResult = func(); \ |
| 1799 if(IsMsgHandled()) \ |
| 1800 return TRUE; \ |
| 1801 } |
| 1802 |
| 1803 #endif // (_WIN32_WINNT >= 0x0500) |
| 1804 |
| 1805 #if(_WIN32_WINNT >= 0x0501) |
| 1806 |
| 1807 // void OnInput(WPARAM RawInputCode, HRAWINPUT hRawInput) |
| 1808 #define MSG_WM_INPUT(func) \ |
| 1809 if (uMsg == WM_INPUT) \ |
| 1810 { \ |
| 1811 SetMsgHandled(TRUE); \ |
| 1812 func(GET_RAWINPUT_CODE_WPARAM(wParam), (HRAWINPUT)lParam); \ |
| 1813 lResult = 0; \ |
| 1814 if(IsMsgHandled()) \ |
| 1815 return TRUE; \ |
| 1816 } |
| 1817 |
| 1818 // void OnUniChar(TCHAR nChar, UINT nRepCnt, UINT nFlags) |
| 1819 #define MSG_WM_UNICHAR(func) \ |
| 1820 if (uMsg == WM_UNICHAR) \ |
| 1821 { \ |
| 1822 SetMsgHandled(TRUE); \ |
| 1823 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFF
FF0000) >> 16)); \ |
| 1824 if(IsMsgHandled()) \ |
| 1825 { \ |
| 1826 lResult = (wParam == UNICODE_NOCHAR) ? TRUE : FALSE; \ |
| 1827 return TRUE; \ |
| 1828 } \ |
| 1829 } |
| 1830 |
| 1831 // void OnWTSSessionChange(WPARAM nStatusCode, PWTSSESSION_NOTIFICATION nSession
ID) |
| 1832 #define MSG_WM_WTSSESSION_CHANGE(func) \ |
| 1833 if (uMsg == WM_WTSSESSION_CHANGE) \ |
| 1834 { \ |
| 1835 SetMsgHandled(TRUE); \ |
| 1836 func(wParam, (PWTSSESSION_NOTIFICATION)lParam); \ |
| 1837 lResult = 0; \ |
| 1838 if(IsMsgHandled()) \ |
| 1839 return TRUE; \ |
| 1840 } |
| 1841 |
| 1842 // OnThemeChanged() |
| 1843 #define MSG_WM_THEMECHANGED(func) \ |
| 1844 if (uMsg == WM_THEMECHANGED) \ |
| 1845 { \ |
| 1846 SetMsgHandled(TRUE); \ |
| 1847 func(); \ |
| 1848 lResult = 0; \ |
| 1849 if(IsMsgHandled()) \ |
| 1850 return TRUE; \ |
| 1851 } |
| 1852 |
| 1853 #endif /* _WIN32_WINNT >= 0x0501 */ |
| 1854 |
| 1855 /////////////////////////////////////////////////////////////////////////////// |
| 1856 // ATL defined messages |
| 1857 |
| 1858 // BOOL OnForwardMsg(LPMSG Msg, DWORD nUserData) |
| 1859 #define MSG_WM_FORWARDMSG(func) \ |
| 1860 if (uMsg == WM_FORWARDMSG) \ |
| 1861 { \ |
| 1862 SetMsgHandled(TRUE); \ |
| 1863 lResult = (LRESULT)func((LPMSG)lParam, (DWORD)wParam); \ |
| 1864 if(IsMsgHandled()) \ |
| 1865 return TRUE; \ |
| 1866 } |
| 1867 |
| 1868 /////////////////////////////////////////////////////////////////////////////// |
| 1869 // Dialog specific messages |
| 1870 |
| 1871 // LRESULT OnDMGetDefID() |
| 1872 #define MSG_DM_GETDEFID(func) \ |
| 1873 if (uMsg == DM_GETDEFID) \ |
| 1874 { \ |
| 1875 SetMsgHandled(TRUE); \ |
| 1876 lResult = func(); \ |
| 1877 if(IsMsgHandled()) \ |
| 1878 return TRUE; \ |
| 1879 } |
| 1880 |
| 1881 // void OnDMSetDefID(UINT DefID) |
| 1882 #define MSG_DM_SETDEFID(func) \ |
| 1883 if (uMsg == DM_SETDEFID) \ |
| 1884 { \ |
| 1885 SetMsgHandled(TRUE); \ |
| 1886 func((UINT)wParam); \ |
| 1887 lResult = TRUE; \ |
| 1888 if(IsMsgHandled()) \ |
| 1889 return TRUE; \ |
| 1890 } |
| 1891 |
| 1892 // void OnDMReposition() |
| 1893 #define MSG_DM_REPOSITION(func) \ |
| 1894 if (uMsg == DM_REPOSITION) \ |
| 1895 { \ |
| 1896 SetMsgHandled(TRUE); \ |
| 1897 func(); \ |
| 1898 lResult = 0; \ |
| 1899 if(IsMsgHandled()) \ |
| 1900 return TRUE; \ |
| 1901 } |
| 1902 |
| 1903 /////////////////////////////////////////////////////////////////////////////// |
| 1904 // Reflected messages |
| 1905 |
| 1906 // void OnReflectedCommand(UINT uNotifyCode, int nID, CWindow wndCtl) |
| 1907 #define MSG_OCM_COMMAND(func) \ |
| 1908 if (uMsg == OCM_COMMAND) \ |
| 1909 { \ |
| 1910 SetMsgHandled(TRUE); \ |
| 1911 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 1912 lResult = 0; \ |
| 1913 if(IsMsgHandled()) \ |
| 1914 return TRUE; \ |
| 1915 } |
| 1916 |
| 1917 // LRESULT OnReflectedNotify(int idCtrl, LPNMHDR pnmh) |
| 1918 #define MSG_OCM_NOTIFY(func) \ |
| 1919 if (uMsg == OCM_NOTIFY) \ |
| 1920 { \ |
| 1921 SetMsgHandled(TRUE); \ |
| 1922 lResult = func((int)wParam, (LPNMHDR)lParam); \ |
| 1923 if(IsMsgHandled()) \ |
| 1924 return TRUE; \ |
| 1925 } |
| 1926 |
| 1927 // void OnReflectedParentNotify(UINT message, UINT nChildID, LPARAM lParam) |
| 1928 #define MSG_OCM_PARENTNOTIFY(func) \ |
| 1929 if (uMsg == OCM_PARENTNOTIFY) \ |
| 1930 { \ |
| 1931 SetMsgHandled(TRUE); \ |
| 1932 func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), lParam); \ |
| 1933 lResult = 0; \ |
| 1934 if(IsMsgHandled()) \ |
| 1935 return TRUE; \ |
| 1936 } |
| 1937 |
| 1938 // void OnReflectedDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct) |
| 1939 #define MSG_OCM_DRAWITEM(func) \ |
| 1940 if (uMsg == OCM_DRAWITEM) \ |
| 1941 { \ |
| 1942 SetMsgHandled(TRUE); \ |
| 1943 func((UINT)wParam, (LPDRAWITEMSTRUCT)lParam); \ |
| 1944 lResult = TRUE; \ |
| 1945 if(IsMsgHandled()) \ |
| 1946 return TRUE; \ |
| 1947 } |
| 1948 |
| 1949 // void OnReflectedMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStru
ct) |
| 1950 #define MSG_OCM_MEASUREITEM(func) \ |
| 1951 if (uMsg == OCM_MEASUREITEM) \ |
| 1952 { \ |
| 1953 SetMsgHandled(TRUE); \ |
| 1954 func((UINT)wParam, (LPMEASUREITEMSTRUCT)lParam); \ |
| 1955 lResult = TRUE; \ |
| 1956 if(IsMsgHandled()) \ |
| 1957 return TRUE; \ |
| 1958 } |
| 1959 |
| 1960 // int OnReflectedCompareItem(int nIDCtl, LPCOMPAREITEMSTRUCT lpCompareItemStruc
t) |
| 1961 #define MSG_OCM_COMPAREITEM(func) \ |
| 1962 if (uMsg == OCM_COMPAREITEM) \ |
| 1963 { \ |
| 1964 SetMsgHandled(TRUE); \ |
| 1965 lResult = (LRESULT)func((UINT)wParam, (LPCOMPAREITEMSTRUCT)lPara
m); \ |
| 1966 if(IsMsgHandled()) \ |
| 1967 return TRUE; \ |
| 1968 } |
| 1969 |
| 1970 // void OnReflectedDeleteItem(int nIDCtl, LPDELETEITEMSTRUCT lpDeleteItemStruct) |
| 1971 #define MSG_OCM_DELETEITEM(func) \ |
| 1972 if (uMsg == OCM_DELETEITEM) \ |
| 1973 { \ |
| 1974 SetMsgHandled(TRUE); \ |
| 1975 func((UINT)wParam, (LPDELETEITEMSTRUCT)lParam); \ |
| 1976 lResult = TRUE; \ |
| 1977 if(IsMsgHandled()) \ |
| 1978 return TRUE; \ |
| 1979 } |
| 1980 |
| 1981 // int OnReflectedVKeyToItem(UINT nKey, UINT nIndex, CListBox listBox) |
| 1982 #define MSG_OCM_VKEYTOITEM(func) \ |
| 1983 if (uMsg == OCM_VKEYTOITEM) \ |
| 1984 { \ |
| 1985 SetMsgHandled(TRUE); \ |
| 1986 lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wPara
m), (HWND)lParam); \ |
| 1987 if(IsMsgHandled()) \ |
| 1988 return TRUE; \ |
| 1989 } |
| 1990 |
| 1991 //int OnReflectedCharToItem(UINT nChar, UINT nIndex, CListBox listBox) |
| 1992 #define MSG_OCM_CHARTOITEM(func) \ |
| 1993 if (uMsg == OCM_CHARTOITEM) \ |
| 1994 { \ |
| 1995 SetMsgHandled(TRUE); \ |
| 1996 lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wPara
m), (HWND)lParam); \ |
| 1997 if(IsMsgHandled()) \ |
| 1998 return TRUE; \ |
| 1999 } |
| 2000 |
| 2001 // void OnReflectedHScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar) |
| 2002 #define MSG_OCM_HSCROLL(func) \ |
| 2003 if (uMsg == OCM_HSCROLL) \ |
| 2004 { \ |
| 2005 SetMsgHandled(TRUE); \ |
| 2006 func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam);
\ |
| 2007 lResult = 0; \ |
| 2008 if(IsMsgHandled()) \ |
| 2009 return TRUE; \ |
| 2010 } |
| 2011 |
| 2012 // void OnReflectedVScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar) |
| 2013 #define MSG_OCM_VSCROLL(func) \ |
| 2014 if (uMsg == OCM_VSCROLL) \ |
| 2015 { \ |
| 2016 SetMsgHandled(TRUE); \ |
| 2017 func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam);
\ |
| 2018 lResult = 0; \ |
| 2019 if(IsMsgHandled()) \ |
| 2020 return TRUE; \ |
| 2021 } |
| 2022 |
| 2023 // HBRUSH OnReflectedCtlColorEdit(CDCHandle dc, CEdit edit) |
| 2024 #define MSG_OCM_CTLCOLOREDIT(func) \ |
| 2025 if (uMsg == OCM_CTLCOLOREDIT) \ |
| 2026 { \ |
| 2027 SetMsgHandled(TRUE); \ |
| 2028 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 2029 if(IsMsgHandled()) \ |
| 2030 return TRUE; \ |
| 2031 } |
| 2032 |
| 2033 // HBRUSH OnReflectedCtlColorListBox(CDCHandle dc, CListBox listBox) |
| 2034 #define MSG_OCM_CTLCOLORLISTBOX(func) \ |
| 2035 if (uMsg == OCM_CTLCOLORLISTBOX) \ |
| 2036 { \ |
| 2037 SetMsgHandled(TRUE); \ |
| 2038 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 2039 if(IsMsgHandled()) \ |
| 2040 return TRUE; \ |
| 2041 } |
| 2042 |
| 2043 // HBRUSH OnReflectedCtlColorBtn(CDCHandle dc, CButton button) |
| 2044 #define MSG_OCM_CTLCOLORBTN(func) \ |
| 2045 if (uMsg == OCM_CTLCOLORBTN) \ |
| 2046 { \ |
| 2047 SetMsgHandled(TRUE); \ |
| 2048 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 2049 if(IsMsgHandled()) \ |
| 2050 return TRUE; \ |
| 2051 } |
| 2052 |
| 2053 // HBRUSH OnReflectedCtlColorDlg(CDCHandle dc, CWindow wnd) |
| 2054 #define MSG_OCM_CTLCOLORDLG(func) \ |
| 2055 if (uMsg == OCM_CTLCOLORDLG) \ |
| 2056 { \ |
| 2057 SetMsgHandled(TRUE); \ |
| 2058 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 2059 if(IsMsgHandled()) \ |
| 2060 return TRUE; \ |
| 2061 } |
| 2062 |
| 2063 // HBRUSH OnReflectedCtlColorScrollBar(CDCHandle dc, CScrollBar scrollBar) |
| 2064 #define MSG_OCM_CTLCOLORSCROLLBAR(func) \ |
| 2065 if (uMsg == OCM_CTLCOLORSCROLLBAR) \ |
| 2066 { \ |
| 2067 SetMsgHandled(TRUE); \ |
| 2068 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 2069 if(IsMsgHandled()) \ |
| 2070 return TRUE; \ |
| 2071 } |
| 2072 |
| 2073 // HBRUSH OnReflectedCtlColorStatic(CDCHandle dc, CStatic wndStatic) |
| 2074 #define MSG_OCM_CTLCOLORSTATIC(func) \ |
| 2075 if (uMsg == OCM_CTLCOLORSTATIC) \ |
| 2076 { \ |
| 2077 SetMsgHandled(TRUE); \ |
| 2078 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \ |
| 2079 if(IsMsgHandled()) \ |
| 2080 return TRUE; \ |
| 2081 } |
| 2082 |
| 2083 /////////////////////////////////////////////////////////////////////////////// |
| 2084 // Edit specific messages |
| 2085 |
| 2086 // void OnClear() |
| 2087 #define MSG_WM_CLEAR(func) \ |
| 2088 if (uMsg == WM_CLEAR) \ |
| 2089 { \ |
| 2090 SetMsgHandled(TRUE); \ |
| 2091 func(); \ |
| 2092 lResult = 0; \ |
| 2093 if(IsMsgHandled()) \ |
| 2094 return TRUE; \ |
| 2095 } |
| 2096 |
| 2097 // void OnCopy() |
| 2098 #define MSG_WM_COPY(func) \ |
| 2099 if (uMsg == WM_COPY) \ |
| 2100 { \ |
| 2101 SetMsgHandled(TRUE); \ |
| 2102 func(); \ |
| 2103 lResult = 0; \ |
| 2104 if(IsMsgHandled()) \ |
| 2105 return TRUE; \ |
| 2106 } |
| 2107 |
| 2108 // void OnCut() |
| 2109 #define MSG_WM_CUT(func) \ |
| 2110 if (uMsg == WM_CUT) \ |
| 2111 { \ |
| 2112 SetMsgHandled(TRUE); \ |
| 2113 func(); \ |
| 2114 lResult = 0; \ |
| 2115 if(IsMsgHandled()) \ |
| 2116 return TRUE; \ |
| 2117 } |
| 2118 |
| 2119 // void OnPaste() |
| 2120 #define MSG_WM_PASTE(func) \ |
| 2121 if (uMsg == WM_PASTE) \ |
| 2122 { \ |
| 2123 SetMsgHandled(TRUE); \ |
| 2124 func(); \ |
| 2125 lResult = 0; \ |
| 2126 if(IsMsgHandled()) \ |
| 2127 return TRUE; \ |
| 2128 } |
| 2129 |
| 2130 // void OnUndo() |
| 2131 #define MSG_WM_UNDO(func) \ |
| 2132 if (uMsg == WM_UNDO) \ |
| 2133 { \ |
| 2134 SetMsgHandled(TRUE); \ |
| 2135 func(); \ |
| 2136 lResult = 0; \ |
| 2137 if(IsMsgHandled()) \ |
| 2138 return TRUE; \ |
| 2139 } |
| 2140 |
| 2141 /////////////////////////////////////////////////////////////////////////////// |
| 2142 // Generic message handlers |
| 2143 |
| 2144 // LRESULT OnMessageHandlerEX(UINT uMsg, WPARAM wParam, LPARAM lParam) |
| 2145 #define MESSAGE_HANDLER_EX(msg, func) \ |
| 2146 if(uMsg == msg) \ |
| 2147 { \ |
| 2148 SetMsgHandled(TRUE); \ |
| 2149 lResult = func(uMsg, wParam, lParam); \ |
| 2150 if(IsMsgHandled()) \ |
| 2151 return TRUE; \ |
| 2152 } |
| 2153 |
| 2154 // LRESULT OnMessageRangeHandlerEX(UINT uMsg, WPARAM wParam, LPARAM lParam) |
| 2155 #define MESSAGE_RANGE_HANDLER_EX(msgFirst, msgLast, func) \ |
| 2156 if(uMsg >= msgFirst && uMsg <= msgLast) \ |
| 2157 { \ |
| 2158 SetMsgHandled(TRUE); \ |
| 2159 lResult = func(uMsg, wParam, lParam); \ |
| 2160 if(IsMsgHandled()) \ |
| 2161 return TRUE; \ |
| 2162 } |
| 2163 |
| 2164 /////////////////////////////////////////////////////////////////////////////// |
| 2165 // Commands and notifications |
| 2166 |
| 2167 // void OnCommandHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl) |
| 2168 #define COMMAND_HANDLER_EX(id, code, func) \ |
| 2169 if (uMsg == WM_COMMAND && code == HIWORD(wParam) && id == LOWORD(wParam)
) \ |
| 2170 { \ |
| 2171 SetMsgHandled(TRUE); \ |
| 2172 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2173 lResult = 0; \ |
| 2174 if(IsMsgHandled()) \ |
| 2175 return TRUE; \ |
| 2176 } |
| 2177 |
| 2178 // void OnCommandIDHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl) |
| 2179 #define COMMAND_ID_HANDLER_EX(id, func) \ |
| 2180 if (uMsg == WM_COMMAND && id == LOWORD(wParam)) \ |
| 2181 { \ |
| 2182 SetMsgHandled(TRUE); \ |
| 2183 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2184 lResult = 0; \ |
| 2185 if(IsMsgHandled()) \ |
| 2186 return TRUE; \ |
| 2187 } |
| 2188 |
| 2189 // void OnCommandCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl) |
| 2190 #define COMMAND_CODE_HANDLER_EX(code, func) \ |
| 2191 if (uMsg == WM_COMMAND && code == HIWORD(wParam)) \ |
| 2192 { \ |
| 2193 SetMsgHandled(TRUE); \ |
| 2194 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2195 lResult = 0; \ |
| 2196 if(IsMsgHandled()) \ |
| 2197 return TRUE; \ |
| 2198 } |
| 2199 |
| 2200 // LRESULT OnNotifyHandlerEX(LPNMHDR pnmh) |
| 2201 #define NOTIFY_HANDLER_EX(id, cd, func) \ |
| 2202 if (uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code && id == ((LPNMHD
R)lParam)->idFrom) \ |
| 2203 { \ |
| 2204 SetMsgHandled(TRUE); \ |
| 2205 lResult = func((LPNMHDR)lParam); \ |
| 2206 if(IsMsgHandled()) \ |
| 2207 return TRUE; \ |
| 2208 } |
| 2209 |
| 2210 // LRESULT OnNotifyIDHandlerEX(LPNMHDR pnmh) |
| 2211 #define NOTIFY_ID_HANDLER_EX(id, func) \ |
| 2212 if (uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \ |
| 2213 { \ |
| 2214 SetMsgHandled(TRUE); \ |
| 2215 lResult = func((LPNMHDR)lParam); \ |
| 2216 if(IsMsgHandled()) \ |
| 2217 return TRUE; \ |
| 2218 } |
| 2219 |
| 2220 // LRESULT OnNotifyCodeHandlerEX(LPNMHDR pnmh) |
| 2221 #define NOTIFY_CODE_HANDLER_EX(cd, func) \ |
| 2222 if (uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \ |
| 2223 { \ |
| 2224 SetMsgHandled(TRUE); \ |
| 2225 lResult = func((LPNMHDR)lParam); \ |
| 2226 if(IsMsgHandled()) \ |
| 2227 return TRUE; \ |
| 2228 } |
| 2229 |
| 2230 // void OnCommandRangeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl) |
| 2231 #define COMMAND_RANGE_HANDLER_EX(idFirst, idLast, func) \ |
| 2232 if(uMsg == WM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <=
idLast) \ |
| 2233 { \ |
| 2234 SetMsgHandled(TRUE); \ |
| 2235 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2236 lResult = 0; \ |
| 2237 if(IsMsgHandled()) \ |
| 2238 return TRUE; \ |
| 2239 } |
| 2240 |
| 2241 // void OnCommandRangeCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl) |
| 2242 #define COMMAND_RANGE_CODE_HANDLER_EX(idFirst, idLast, code, func) \ |
| 2243 if(uMsg == WM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= idF
irst && LOWORD(wParam) <= idLast) \ |
| 2244 { \ |
| 2245 SetMsgHandled(TRUE); \ |
| 2246 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2247 lResult = 0; \ |
| 2248 if(IsMsgHandled()) \ |
| 2249 return TRUE; \ |
| 2250 } |
| 2251 |
| 2252 // LRESULT OnNotifyRangeHandlerEX(LPNMHDR pnmh) |
| 2253 #define NOTIFY_RANGE_HANDLER_EX(idFirst, idLast, func) \ |
| 2254 if(uMsg == WM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHD
R)lParam)->idFrom <= idLast) \ |
| 2255 { \ |
| 2256 SetMsgHandled(TRUE); \ |
| 2257 lResult = func((LPNMHDR)lParam); \ |
| 2258 if(IsMsgHandled()) \ |
| 2259 return TRUE; \ |
| 2260 } |
| 2261 |
| 2262 // LRESULT OnNotifyRangeCodeHandlerEX(LPNMHDR pnmh) |
| 2263 #define NOTIFY_RANGE_CODE_HANDLER_EX(idFirst, idLast, cd, func) \ |
| 2264 if(uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lPara
m)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \ |
| 2265 { \ |
| 2266 SetMsgHandled(TRUE); \ |
| 2267 lResult = func((LPNMHDR)lParam); \ |
| 2268 if(IsMsgHandled()) \ |
| 2269 return TRUE; \ |
| 2270 } |
| 2271 |
| 2272 // LRESULT OnReflectedCommandHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl
) |
| 2273 #define REFLECTED_COMMAND_HANDLER_EX(id, code, func) \ |
| 2274 if (uMsg == OCM_COMMAND && code == HIWORD(wParam) && id == LOWORD(wParam
)) \ |
| 2275 { \ |
| 2276 SetMsgHandled(TRUE); \ |
| 2277 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2278 lResult = 0; \ |
| 2279 if(IsMsgHandled()) \ |
| 2280 return TRUE; \ |
| 2281 } |
| 2282 |
| 2283 // LRESULT OnReflectedCommandIDHandlerEX(UINT uNotifyCode, int nID, CWindow wndC
tl) |
| 2284 #define REFLECTED_COMMAND_ID_HANDLER_EX(id, func) \ |
| 2285 if (uMsg == OCM_COMMAND && id == LOWORD(wParam)) \ |
| 2286 { \ |
| 2287 SetMsgHandled(TRUE); \ |
| 2288 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2289 lResult = 0; \ |
| 2290 if(IsMsgHandled()) \ |
| 2291 return TRUE; \ |
| 2292 } |
| 2293 |
| 2294 // LRESULT OnReflectedCommandCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wn
dCtl) |
| 2295 #define REFLECTED_COMMAND_CODE_HANDLER_EX(code, func) \ |
| 2296 if (uMsg == OCM_COMMAND && code == HIWORD(wParam)) \ |
| 2297 { \ |
| 2298 SetMsgHandled(TRUE); \ |
| 2299 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2300 lResult = 0; \ |
| 2301 if(IsMsgHandled()) \ |
| 2302 return TRUE; \ |
| 2303 } |
| 2304 |
| 2305 // LRESULT OnReflectedNotifyHandlerEX(LPNMHDR pnmh) |
| 2306 #define REFLECTED_NOTIFY_HANDLER_EX(id, cd, func) \ |
| 2307 if (uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code && id == ((LPNMH
DR)lParam)->idFrom) \ |
| 2308 { \ |
| 2309 SetMsgHandled(TRUE); \ |
| 2310 lResult = func((LPNMHDR)lParam); \ |
| 2311 if(IsMsgHandled()) \ |
| 2312 return TRUE; \ |
| 2313 } |
| 2314 |
| 2315 // LRESULT OnReflectedNotifyIDHandlerEX(LPNMHDR pnmh) |
| 2316 #define REFLECTED_NOTIFY_ID_HANDLER_EX(id, func) \ |
| 2317 if (uMsg == OCM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \ |
| 2318 { \ |
| 2319 SetMsgHandled(TRUE); \ |
| 2320 lResult = func((LPNMHDR)lParam); \ |
| 2321 if(IsMsgHandled()) \ |
| 2322 return TRUE; \ |
| 2323 } |
| 2324 |
| 2325 // LRESULT OnReflectedNotifyCodeHandlerEX(LPNMHDR pnmh) |
| 2326 #define REFLECTED_NOTIFY_CODE_HANDLER_EX(cd, func) \ |
| 2327 if (uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \ |
| 2328 { \ |
| 2329 SetMsgHandled(TRUE); \ |
| 2330 lResult = func((LPNMHDR)lParam); \ |
| 2331 if(IsMsgHandled()) \ |
| 2332 return TRUE; \ |
| 2333 } |
| 2334 |
| 2335 // void OnReflectedCommandRangeHandlerEX(UINT uNotifyCode, int nID, CWindow wndC
tl) |
| 2336 #define REFLECTED_COMMAND_RANGE_HANDLER_EX(idFirst, idLast, func) \ |
| 2337 if(uMsg == OCM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <=
idLast) \ |
| 2338 { \ |
| 2339 SetMsgHandled(TRUE); \ |
| 2340 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2341 lResult = 0; \ |
| 2342 if(IsMsgHandled()) \ |
| 2343 return TRUE; \ |
| 2344 } |
| 2345 |
| 2346 // void OnReflectedCommandRangeCodeHandlerEX(UINT uNotifyCode, int nID, CWindow
wndCtl) |
| 2347 #define REFLECTED_COMMAND_RANGE_CODE_HANDLER_EX(idFirst, idLast, code, func) \ |
| 2348 if(uMsg == OCM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= id
First && LOWORD(wParam) <= idLast) \ |
| 2349 { \ |
| 2350 SetMsgHandled(TRUE); \ |
| 2351 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \ |
| 2352 lResult = 0; \ |
| 2353 if(IsMsgHandled()) \ |
| 2354 return TRUE; \ |
| 2355 } |
| 2356 |
| 2357 // LRESULT OnReflectedNotifyRangeHandlerEX(LPNMHDR pnmh) |
| 2358 #define REFLECTED_NOTIFY_RANGE_HANDLER_EX(idFirst, idLast, func) \ |
| 2359 if(uMsg == OCM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMH
DR)lParam)->idFrom <= idLast) \ |
| 2360 { \ |
| 2361 SetMsgHandled(TRUE); \ |
| 2362 lResult = func((LPNMHDR)lParam); \ |
| 2363 if(IsMsgHandled()) \ |
| 2364 return TRUE; \ |
| 2365 } |
| 2366 |
| 2367 // LRESULT OnReflectedNotifyRangeCodeHandlerEX(LPNMHDR pnmh) |
| 2368 #define REFLECTED_NOTIFY_RANGE_CODE_HANDLER_EX(idFirst, idLast, cd, func) \ |
| 2369 if(uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lPar
am)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \ |
| 2370 { \ |
| 2371 SetMsgHandled(TRUE); \ |
| 2372 lResult = func((LPNMHDR)lParam); \ |
| 2373 if(IsMsgHandled()) \ |
| 2374 return TRUE; \ |
| 2375 } |
| 2376 |
| 2377 #endif // __ATLCRACK_H__ |
OLD | NEW |