| 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 |