1 // Windows Template Library - WTL version 8.0
\r
2 // Copyright (C) Microsoft Corporation. All rights reserved.
\r
4 // This file is a part of the Windows Template Library.
\r
5 // The use and distribution terms for this software are covered by the
\r
6 // Common Public License 1.0 (http://opensource.org/osi3.0/licenses/cpl1.0.php)
\r
7 // which can be found in the file CPL.TXT at the root of this distribution.
\r
8 // By using this software in any fashion, you are agreeing to be bound by
\r
9 // the terms of this license. You must not remove this notice, or
\r
10 // any other, from this software.
\r
12 #ifndef __ATLCRACK_H__
\r
13 #define __ATLCRACK_H__
\r
18 ///////////////////////////////////////////////////////////////////////////////
\r
19 // Message map macro for cracked handlers
\r
21 // Note about message maps with cracked handlers:
\r
22 // For ATL 3.0, a message map using cracked handlers MUST use BEGIN_MSG_MAP_EX.
\r
23 // For ATL 7.0 or higher, you can use BEGIN_MSG_MAP for CWindowImpl/CDialogImpl derived classes,
\r
24 // but must use BEGIN_MSG_MAP_EX for classes that don't derive from CWindowImpl/CDialogImpl.
\r
26 #define BEGIN_MSG_MAP_EX(theClass) \
\r
28 BOOL m_bMsgHandled; \
\r
29 /* "handled" management for cracked handlers */ \
\r
30 BOOL IsMsgHandled() const \
\r
32 return m_bMsgHandled; \
\r
34 void SetMsgHandled(BOOL bHandled) \
\r
36 m_bMsgHandled = bHandled; \
\r
38 BOOL ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& lResult, DWORD dwMsgMapID = 0) \
\r
40 BOOL bOldMsgHandled = m_bMsgHandled; \
\r
41 BOOL bRet = _ProcessWindowMessage(hWnd, uMsg, wParam, lParam, lResult, dwMsgMapID); \
\r
42 m_bMsgHandled = bOldMsgHandled; \
\r
45 BOOL _ProcessWindowMessage(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& lResult, DWORD dwMsgMapID) \
\r
47 BOOL bHandled = TRUE; \
\r
54 switch(dwMsgMapID) \
\r
59 ///////////////////////////////////////////////////////////////////////////////
\r
60 // Standard Windows message macros
\r
62 // int OnCreate(LPCREATESTRUCT lpCreateStruct)
\r
63 #define MSG_WM_CREATE(func) \
\r
64 if (uMsg == WM_CREATE) \
\r
66 SetMsgHandled(TRUE); \
\r
67 lResult = (LRESULT)func((LPCREATESTRUCT)lParam); \
\r
68 if(IsMsgHandled()) \
\r
72 // BOOL OnInitDialog(CWindow wndFocus, LPARAM lInitParam)
\r
73 #define MSG_WM_INITDIALOG(func) \
\r
74 if (uMsg == WM_INITDIALOG) \
\r
76 SetMsgHandled(TRUE); \
\r
77 lResult = (LRESULT)func((HWND)wParam, lParam); \
\r
78 if(IsMsgHandled()) \
\r
82 // BOOL OnCopyData(CWindow wnd, PCOPYDATASTRUCT pCopyDataStruct)
\r
83 #define MSG_WM_COPYDATA(func) \
\r
84 if (uMsg == WM_COPYDATA) \
\r
86 SetMsgHandled(TRUE); \
\r
87 lResult = (LRESULT)func((HWND)wParam, (PCOPYDATASTRUCT)lParam); \
\r
88 if(IsMsgHandled()) \
\r
93 #define MSG_WM_DESTROY(func) \
\r
94 if (uMsg == WM_DESTROY) \
\r
96 SetMsgHandled(TRUE); \
\r
99 if(IsMsgHandled()) \
\r
103 // void OnMove(CPoint ptPos)
\r
104 #define MSG_WM_MOVE(func) \
\r
105 if (uMsg == WM_MOVE) \
\r
107 SetMsgHandled(TRUE); \
\r
108 func(_WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
110 if(IsMsgHandled()) \
\r
114 // void OnSize(UINT nType, CSize size)
\r
115 #define MSG_WM_SIZE(func) \
\r
116 if (uMsg == WM_SIZE) \
\r
118 SetMsgHandled(TRUE); \
\r
119 func((UINT)wParam, _WTYPES_NS::CSize(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
121 if(IsMsgHandled()) \
\r
125 // void OnActivate(UINT nState, BOOL bMinimized, CWindow wndOther)
\r
126 #define MSG_WM_ACTIVATE(func) \
\r
127 if (uMsg == WM_ACTIVATE) \
\r
129 SetMsgHandled(TRUE); \
\r
130 func((UINT)LOWORD(wParam), (BOOL)HIWORD(wParam), (HWND)lParam); \
\r
132 if(IsMsgHandled()) \
\r
136 // void OnSetFocus(CWindow wndOld)
\r
137 #define MSG_WM_SETFOCUS(func) \
\r
138 if (uMsg == WM_SETFOCUS) \
\r
140 SetMsgHandled(TRUE); \
\r
141 func((HWND)wParam); \
\r
143 if(IsMsgHandled()) \
\r
147 // void OnKillFocus(CWindow wndFocus)
\r
148 #define MSG_WM_KILLFOCUS(func) \
\r
149 if (uMsg == WM_KILLFOCUS) \
\r
151 SetMsgHandled(TRUE); \
\r
152 func((HWND)wParam); \
\r
154 if(IsMsgHandled()) \
\r
158 // void OnEnable(BOOL bEnable)
\r
159 #define MSG_WM_ENABLE(func) \
\r
160 if (uMsg == WM_ENABLE) \
\r
162 SetMsgHandled(TRUE); \
\r
163 func((BOOL)wParam); \
\r
165 if(IsMsgHandled()) \
\r
169 // void OnPaint(CDCHandle dc)
\r
170 #define MSG_WM_PAINT(func) \
\r
171 if (uMsg == WM_PAINT) \
\r
173 SetMsgHandled(TRUE); \
\r
174 func((HDC)wParam); \
\r
176 if(IsMsgHandled()) \
\r
181 #define MSG_WM_CLOSE(func) \
\r
182 if (uMsg == WM_CLOSE) \
\r
184 SetMsgHandled(TRUE); \
\r
187 if(IsMsgHandled()) \
\r
191 // BOOL OnQueryEndSession(UINT nSource, UINT uLogOff)
\r
192 #define MSG_WM_QUERYENDSESSION(func) \
\r
193 if (uMsg == WM_QUERYENDSESSION) \
\r
195 SetMsgHandled(TRUE); \
\r
196 lResult = (LRESULT)func((UINT)wParam, (UINT)lParam); \
\r
197 if(IsMsgHandled()) \
\r
201 // BOOL OnQueryOpen()
\r
202 #define MSG_WM_QUERYOPEN(func) \
\r
203 if (uMsg == WM_QUERYOPEN) \
\r
205 SetMsgHandled(TRUE); \
\r
206 lResult = (LRESULT)func(); \
\r
207 if(IsMsgHandled()) \
\r
211 // BOOL OnEraseBkgnd(CDCHandle dc)
\r
212 #define MSG_WM_ERASEBKGND(func) \
\r
213 if (uMsg == WM_ERASEBKGND) \
\r
215 SetMsgHandled(TRUE); \
\r
216 lResult = (LRESULT)func((HDC)wParam); \
\r
217 if(IsMsgHandled()) \
\r
221 // void OnSysColorChange()
\r
222 #define MSG_WM_SYSCOLORCHANGE(func) \
\r
223 if (uMsg == WM_SYSCOLORCHANGE) \
\r
225 SetMsgHandled(TRUE); \
\r
228 if(IsMsgHandled()) \
\r
232 // void OnEndSession(BOOL bEnding, UINT uLogOff)
\r
233 #define MSG_WM_ENDSESSION(func) \
\r
234 if (uMsg == WM_ENDSESSION) \
\r
236 SetMsgHandled(TRUE); \
\r
237 func((BOOL)wParam, (UINT)lParam); \
\r
239 if(IsMsgHandled()) \
\r
243 // void OnShowWindow(BOOL bShow, UINT nStatus)
\r
244 #define MSG_WM_SHOWWINDOW(func) \
\r
245 if (uMsg == WM_SHOWWINDOW) \
\r
247 SetMsgHandled(TRUE); \
\r
248 func((BOOL)wParam, (int)lParam); \
\r
250 if(IsMsgHandled()) \
\r
254 // HBRUSH OnCtlColorEdit(CDCHandle dc, CEdit edit)
\r
255 #define MSG_WM_CTLCOLOREDIT(func) \
\r
256 if (uMsg == WM_CTLCOLOREDIT) \
\r
258 SetMsgHandled(TRUE); \
\r
259 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
260 if(IsMsgHandled()) \
\r
264 // HBRUSH OnCtlColorListBox(CDCHandle dc, CListBox listBox)
\r
265 #define MSG_WM_CTLCOLORLISTBOX(func) \
\r
266 if (uMsg == WM_CTLCOLORLISTBOX) \
\r
268 SetMsgHandled(TRUE); \
\r
269 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
270 if(IsMsgHandled()) \
\r
274 // HBRUSH OnCtlColorBtn(CDCHandle dc, CButton button)
\r
275 #define MSG_WM_CTLCOLORBTN(func) \
\r
276 if (uMsg == WM_CTLCOLORBTN) \
\r
278 SetMsgHandled(TRUE); \
\r
279 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
280 if(IsMsgHandled()) \
\r
284 // HBRUSH OnCtlColorDlg(CDCHandle dc, CWindow wnd)
\r
285 #define MSG_WM_CTLCOLORDLG(func) \
\r
286 if (uMsg == WM_CTLCOLORDLG) \
\r
288 SetMsgHandled(TRUE); \
\r
289 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
290 if(IsMsgHandled()) \
\r
294 // HBRUSH OnCtlColorScrollBar(CDCHandle dc, CScrollBar scrollBar)
\r
295 #define MSG_WM_CTLCOLORSCROLLBAR(func) \
\r
296 if (uMsg == WM_CTLCOLORSCROLLBAR) \
\r
298 SetMsgHandled(TRUE); \
\r
299 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
300 if(IsMsgHandled()) \
\r
304 // HBRUSH OnCtlColorStatic(CDCHandle dc, CStatic wndStatic)
\r
305 #define MSG_WM_CTLCOLORSTATIC(func) \
\r
306 if (uMsg == WM_CTLCOLORSTATIC) \
\r
308 SetMsgHandled(TRUE); \
\r
309 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
310 if(IsMsgHandled()) \
\r
314 // void OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
\r
315 #define MSG_WM_SETTINGCHANGE(func) \
\r
316 if (uMsg == WM_SETTINGCHANGE) \
\r
318 SetMsgHandled(TRUE); \
\r
319 func((UINT)wParam, (LPCTSTR)lParam); \
\r
321 if(IsMsgHandled()) \
\r
325 // void OnDevModeChange(LPCTSTR lpDeviceName)
\r
326 #define MSG_WM_DEVMODECHANGE(func) \
\r
327 if (uMsg == WM_DEVMODECHANGE) \
\r
329 SetMsgHandled(TRUE); \
\r
330 func((LPCTSTR)lParam); \
\r
332 if(IsMsgHandled()) \
\r
336 // void OnActivateApp(BOOL bActive, DWORD dwThreadID)
\r
337 #define MSG_WM_ACTIVATEAPP(func) \
\r
338 if (uMsg == WM_ACTIVATEAPP) \
\r
340 SetMsgHandled(TRUE); \
\r
341 func((BOOL)wParam, (DWORD)lParam); \
\r
343 if(IsMsgHandled()) \
\r
347 // void OnFontChange()
\r
348 #define MSG_WM_FONTCHANGE(func) \
\r
349 if (uMsg == WM_FONTCHANGE) \
\r
351 SetMsgHandled(TRUE); \
\r
354 if(IsMsgHandled()) \
\r
358 // void OnTimeChange()
\r
359 #define MSG_WM_TIMECHANGE(func) \
\r
360 if (uMsg == WM_TIMECHANGE) \
\r
362 SetMsgHandled(TRUE); \
\r
365 if(IsMsgHandled()) \
\r
369 // void OnCancelMode()
\r
370 #define MSG_WM_CANCELMODE(func) \
\r
371 if (uMsg == WM_CANCELMODE) \
\r
373 SetMsgHandled(TRUE); \
\r
376 if(IsMsgHandled()) \
\r
380 // BOOL OnSetCursor(CWindow wnd, UINT nHitTest, UINT message)
\r
381 #define MSG_WM_SETCURSOR(func) \
\r
382 if (uMsg == WM_SETCURSOR) \
\r
384 SetMsgHandled(TRUE); \
\r
385 lResult = (LRESULT)func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
\r
386 if(IsMsgHandled()) \
\r
390 // int OnMouseActivate(CWindow wndTopLevel, UINT nHitTest, UINT message)
\r
391 #define MSG_WM_MOUSEACTIVATE(func) \
\r
392 if (uMsg == WM_MOUSEACTIVATE) \
\r
394 SetMsgHandled(TRUE); \
\r
395 lResult = (LRESULT)func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
\r
396 if(IsMsgHandled()) \
\r
400 // void OnChildActivate()
\r
401 #define MSG_WM_CHILDACTIVATE(func) \
\r
402 if (uMsg == WM_CHILDACTIVATE) \
\r
404 SetMsgHandled(TRUE); \
\r
407 if(IsMsgHandled()) \
\r
411 // void OnGetMinMaxInfo(LPMINMAXINFO lpMMI)
\r
412 #define MSG_WM_GETMINMAXINFO(func) \
\r
413 if (uMsg == WM_GETMINMAXINFO) \
\r
415 SetMsgHandled(TRUE); \
\r
416 func((LPMINMAXINFO)lParam); \
\r
418 if(IsMsgHandled()) \
\r
422 // void OnIconEraseBkgnd(CDCHandle dc)
\r
423 #define MSG_WM_ICONERASEBKGND(func) \
\r
424 if (uMsg == WM_ICONERASEBKGND) \
\r
426 SetMsgHandled(TRUE); \
\r
427 func((HDC)wParam); \
\r
429 if(IsMsgHandled()) \
\r
433 // void OnSpoolerStatus(UINT nStatus, UINT nJobs)
\r
434 #define MSG_WM_SPOOLERSTATUS(func) \
\r
435 if (uMsg == WM_SPOOLERSTATUS) \
\r
437 SetMsgHandled(TRUE); \
\r
438 func((UINT)wParam, (UINT)LOWORD(lParam)); \
\r
440 if(IsMsgHandled()) \
\r
444 // void OnDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
\r
445 #define MSG_WM_DRAWITEM(func) \
\r
446 if (uMsg == WM_DRAWITEM) \
\r
448 SetMsgHandled(TRUE); \
\r
449 func((UINT)wParam, (LPDRAWITEMSTRUCT)lParam); \
\r
451 if(IsMsgHandled()) \
\r
455 // void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)
\r
456 #define MSG_WM_MEASUREITEM(func) \
\r
457 if (uMsg == WM_MEASUREITEM) \
\r
459 SetMsgHandled(TRUE); \
\r
460 func((UINT)wParam, (LPMEASUREITEMSTRUCT)lParam); \
\r
462 if(IsMsgHandled()) \
\r
466 // void OnDeleteItem(int nIDCtl, LPDELETEITEMSTRUCT lpDeleteItemStruct)
\r
467 #define MSG_WM_DELETEITEM(func) \
\r
468 if (uMsg == WM_DELETEITEM) \
\r
470 SetMsgHandled(TRUE); \
\r
471 func((UINT)wParam, (LPDELETEITEMSTRUCT)lParam); \
\r
473 if(IsMsgHandled()) \
\r
477 //int OnCharToItem(UINT nChar, UINT nIndex, CListBox listBox)
\r
478 #define MSG_WM_CHARTOITEM(func) \
\r
479 if (uMsg == WM_CHARTOITEM) \
\r
481 SetMsgHandled(TRUE); \
\r
482 lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HWND)lParam); \
\r
483 if(IsMsgHandled()) \
\r
487 // int OnVKeyToItem(UINT nKey, UINT nIndex, CListBox listBox)
\r
488 #define MSG_WM_VKEYTOITEM(func) \
\r
489 if (uMsg == WM_VKEYTOITEM) \
\r
491 SetMsgHandled(TRUE); \
\r
492 lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HWND)lParam); \
\r
493 if(IsMsgHandled()) \
\r
497 // HCURSOR OnQueryDragIcon()
\r
498 #define MSG_WM_QUERYDRAGICON(func) \
\r
499 if (uMsg == WM_QUERYDRAGICON) \
\r
501 SetMsgHandled(TRUE); \
\r
502 lResult = (LRESULT)func(); \
\r
503 if(IsMsgHandled()) \
\r
507 // int OnCompareItem(int nIDCtl, LPCOMPAREITEMSTRUCT lpCompareItemStruct)
\r
508 #define MSG_WM_COMPAREITEM(func) \
\r
509 if (uMsg == WM_COMPAREITEM) \
\r
511 SetMsgHandled(TRUE); \
\r
512 lResult = (LRESULT)func((UINT)wParam, (LPCOMPAREITEMSTRUCT)lParam); \
\r
513 if(IsMsgHandled()) \
\r
517 // void OnCompacting(UINT nCpuTime)
\r
518 #define MSG_WM_COMPACTING(func) \
\r
519 if (uMsg == WM_COMPACTING) \
\r
521 SetMsgHandled(TRUE); \
\r
522 func((UINT)wParam); \
\r
524 if(IsMsgHandled()) \
\r
528 // BOOL OnNcCreate(LPCREATESTRUCT lpCreateStruct)
\r
529 #define MSG_WM_NCCREATE(func) \
\r
530 if (uMsg == WM_NCCREATE) \
\r
532 SetMsgHandled(TRUE); \
\r
533 lResult = (LRESULT)func((LPCREATESTRUCT)lParam); \
\r
534 if(IsMsgHandled()) \
\r
538 // void OnNcDestroy()
\r
539 #define MSG_WM_NCDESTROY(func) \
\r
540 if (uMsg == WM_NCDESTROY) \
\r
542 SetMsgHandled(TRUE); \
\r
545 if(IsMsgHandled()) \
\r
549 // LRESULT OnNcCalcSize(BOOL bCalcValidRects, LPARAM lParam)
\r
550 #define MSG_WM_NCCALCSIZE(func) \
\r
551 if (uMsg == WM_NCCALCSIZE) \
\r
553 SetMsgHandled(TRUE); \
\r
554 lResult = func((BOOL)wParam, lParam); \
\r
555 if(IsMsgHandled()) \
\r
559 // UINT OnNcHitTest(CPoint point)
\r
560 #define MSG_WM_NCHITTEST(func) \
\r
561 if (uMsg == WM_NCHITTEST) \
\r
563 SetMsgHandled(TRUE); \
\r
564 lResult = (LRESULT)func(_WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
565 if(IsMsgHandled()) \
\r
569 // void OnNcPaint(CRgn rgn)
\r
570 #define MSG_WM_NCPAINT(func) \
\r
571 if (uMsg == WM_NCPAINT) \
\r
573 SetMsgHandled(TRUE); \
\r
574 func((HRGN)wParam); \
\r
576 if(IsMsgHandled()) \
\r
580 // BOOL OnNcActivate(BOOL bActive)
\r
581 #define MSG_WM_NCACTIVATE(func) \
\r
582 if (uMsg == WM_NCACTIVATE) \
\r
584 SetMsgHandled(TRUE); \
\r
585 lResult = (LRESULT)func((BOOL)wParam); \
\r
586 if(IsMsgHandled()) \
\r
590 // UINT OnGetDlgCode(LPMSG lpMsg)
\r
591 #define MSG_WM_GETDLGCODE(func) \
\r
592 if (uMsg == WM_GETDLGCODE) \
\r
594 SetMsgHandled(TRUE); \
\r
595 lResult = (LRESULT)func((LPMSG)lParam); \
\r
596 if(IsMsgHandled()) \
\r
600 // void OnNcMouseMove(UINT nHitTest, CPoint point)
\r
601 #define MSG_WM_NCMOUSEMOVE(func) \
\r
602 if (uMsg == WM_NCMOUSEMOVE) \
\r
604 SetMsgHandled(TRUE); \
\r
605 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
607 if(IsMsgHandled()) \
\r
611 // void OnNcLButtonDown(UINT nHitTest, CPoint point)
\r
612 #define MSG_WM_NCLBUTTONDOWN(func) \
\r
613 if (uMsg == WM_NCLBUTTONDOWN) \
\r
615 SetMsgHandled(TRUE); \
\r
616 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
618 if(IsMsgHandled()) \
\r
622 // void OnNcLButtonUp(UINT nHitTest, CPoint point)
\r
623 #define MSG_WM_NCLBUTTONUP(func) \
\r
624 if (uMsg == WM_NCLBUTTONUP) \
\r
626 SetMsgHandled(TRUE); \
\r
627 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
629 if(IsMsgHandled()) \
\r
633 // void OnNcLButtonDblClk(UINT nHitTest, CPoint point)
\r
634 #define MSG_WM_NCLBUTTONDBLCLK(func) \
\r
635 if (uMsg == WM_NCLBUTTONDBLCLK) \
\r
637 SetMsgHandled(TRUE); \
\r
638 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
640 if(IsMsgHandled()) \
\r
644 // void OnNcRButtonDown(UINT nHitTest, CPoint point)
\r
645 #define MSG_WM_NCRBUTTONDOWN(func) \
\r
646 if (uMsg == WM_NCRBUTTONDOWN) \
\r
648 SetMsgHandled(TRUE); \
\r
649 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
651 if(IsMsgHandled()) \
\r
655 // void OnNcRButtonUp(UINT nHitTest, CPoint point)
\r
656 #define MSG_WM_NCRBUTTONUP(func) \
\r
657 if (uMsg == WM_NCRBUTTONUP) \
\r
659 SetMsgHandled(TRUE); \
\r
660 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
662 if(IsMsgHandled()) \
\r
666 // void OnNcRButtonDblClk(UINT nHitTest, CPoint point)
\r
667 #define MSG_WM_NCRBUTTONDBLCLK(func) \
\r
668 if (uMsg == WM_NCRBUTTONDBLCLK) \
\r
670 SetMsgHandled(TRUE); \
\r
671 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
673 if(IsMsgHandled()) \
\r
677 // void OnNcMButtonDown(UINT nHitTest, CPoint point)
\r
678 #define MSG_WM_NCMBUTTONDOWN(func) \
\r
679 if (uMsg == WM_NCMBUTTONDOWN) \
\r
681 SetMsgHandled(TRUE); \
\r
682 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
684 if(IsMsgHandled()) \
\r
688 // void OnNcMButtonUp(UINT nHitTest, CPoint point)
\r
689 #define MSG_WM_NCMBUTTONUP(func) \
\r
690 if (uMsg == WM_NCMBUTTONUP) \
\r
692 SetMsgHandled(TRUE); \
\r
693 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
695 if(IsMsgHandled()) \
\r
699 // void OnNcMButtonDblClk(UINT nHitTest, CPoint point)
\r
700 #define MSG_WM_NCMBUTTONDBLCLK(func) \
\r
701 if (uMsg == WM_NCMBUTTONDBLCLK) \
\r
703 SetMsgHandled(TRUE); \
\r
704 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
706 if(IsMsgHandled()) \
\r
710 // void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
\r
711 #define MSG_WM_KEYDOWN(func) \
\r
712 if (uMsg == WM_KEYDOWN) \
\r
714 SetMsgHandled(TRUE); \
\r
715 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
\r
717 if(IsMsgHandled()) \
\r
721 // void OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
\r
722 #define MSG_WM_KEYUP(func) \
\r
723 if (uMsg == WM_KEYUP) \
\r
725 SetMsgHandled(TRUE); \
\r
726 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
\r
728 if(IsMsgHandled()) \
\r
732 // void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
\r
733 #define MSG_WM_CHAR(func) \
\r
734 if (uMsg == WM_CHAR) \
\r
736 SetMsgHandled(TRUE); \
\r
737 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
\r
739 if(IsMsgHandled()) \
\r
743 // void OnDeadChar(UINT nChar, UINT nRepCnt, UINT nFlags)
\r
744 #define MSG_WM_DEADCHAR(func) \
\r
745 if (uMsg == WM_DEADCHAR) \
\r
747 SetMsgHandled(TRUE); \
\r
748 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
\r
750 if(IsMsgHandled()) \
\r
754 // void OnSysKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
\r
755 #define MSG_WM_SYSKEYDOWN(func) \
\r
756 if (uMsg == WM_SYSKEYDOWN) \
\r
758 SetMsgHandled(TRUE); \
\r
759 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
\r
761 if(IsMsgHandled()) \
\r
765 // void OnSysKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
\r
766 #define MSG_WM_SYSKEYUP(func) \
\r
767 if (uMsg == WM_SYSKEYUP) \
\r
769 SetMsgHandled(TRUE); \
\r
770 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
\r
772 if(IsMsgHandled()) \
\r
776 // void OnSysChar(UINT nChar, UINT nRepCnt, UINT nFlags)
\r
777 #define MSG_WM_SYSCHAR(func) \
\r
778 if (uMsg == WM_SYSCHAR) \
\r
780 SetMsgHandled(TRUE); \
\r
781 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
\r
783 if(IsMsgHandled()) \
\r
787 // void OnSysDeadChar(UINT nChar, UINT nRepCnt, UINT nFlags)
\r
788 #define MSG_WM_SYSDEADCHAR(func) \
\r
789 if (uMsg == WM_SYSDEADCHAR) \
\r
791 SetMsgHandled(TRUE); \
\r
792 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
\r
794 if(IsMsgHandled()) \
\r
798 // void OnSysCommand(UINT nID, LPARAM lParam)
\r
799 #define MSG_WM_SYSCOMMAND(func) \
\r
800 if (uMsg == WM_SYSCOMMAND) \
\r
802 SetMsgHandled(TRUE); \
\r
803 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
805 if(IsMsgHandled()) \
\r
809 // void OnTCard(UINT idAction, DWORD dwActionData)
\r
810 #define MSG_WM_TCARD(func) \
\r
811 if (uMsg == WM_TCARD) \
\r
813 SetMsgHandled(TRUE); \
\r
814 func((UINT)wParam, (DWORD)lParam); \
\r
816 if(IsMsgHandled()) \
\r
820 // void OnTimer(UINT_PTR nIDEvent)
\r
821 #define MSG_WM_TIMER(func) \
\r
822 if (uMsg == WM_TIMER) \
\r
824 SetMsgHandled(TRUE); \
\r
825 func((UINT_PTR)wParam); \
\r
827 if(IsMsgHandled()) \
\r
831 // void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar)
\r
832 #define MSG_WM_HSCROLL(func) \
\r
833 if (uMsg == WM_HSCROLL) \
\r
835 SetMsgHandled(TRUE); \
\r
836 func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam); \
\r
838 if(IsMsgHandled()) \
\r
842 // void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar)
\r
843 #define MSG_WM_VSCROLL(func) \
\r
844 if (uMsg == WM_VSCROLL) \
\r
846 SetMsgHandled(TRUE); \
\r
847 func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam); \
\r
849 if(IsMsgHandled()) \
\r
853 // void OnInitMenu(CMenu menu)
\r
854 #define MSG_WM_INITMENU(func) \
\r
855 if (uMsg == WM_INITMENU) \
\r
857 SetMsgHandled(TRUE); \
\r
858 func((HMENU)wParam); \
\r
860 if(IsMsgHandled()) \
\r
864 // void OnInitMenuPopup(CMenu menuPopup, UINT nIndex, BOOL bSysMenu)
\r
865 #define MSG_WM_INITMENUPOPUP(func) \
\r
866 if (uMsg == WM_INITMENUPOPUP) \
\r
868 SetMsgHandled(TRUE); \
\r
869 func((HMENU)wParam, (UINT)LOWORD(lParam), (BOOL)HIWORD(lParam)); \
\r
871 if(IsMsgHandled()) \
\r
875 // void OnMenuSelect(UINT nItemID, UINT nFlags, CMenu menu)
\r
876 #define MSG_WM_MENUSELECT(func) \
\r
877 if (uMsg == WM_MENUSELECT) \
\r
879 SetMsgHandled(TRUE); \
\r
880 func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HMENU)lParam); \
\r
882 if(IsMsgHandled()) \
\r
886 // LRESULT OnMenuChar(UINT nChar, UINT nFlags, CMenu menu)
\r
887 #define MSG_WM_MENUCHAR(func) \
\r
888 if (uMsg == WM_MENUCHAR) \
\r
890 SetMsgHandled(TRUE); \
\r
891 lResult = func((TCHAR)LOWORD(wParam), (UINT)HIWORD(wParam), (HMENU)lParam); \
\r
892 if(IsMsgHandled()) \
\r
896 // LRESULT OnNotify(int idCtrl, LPNMHDR pnmh)
\r
897 #define MSG_WM_NOTIFY(func) \
\r
898 if (uMsg == WM_NOTIFY) \
\r
900 SetMsgHandled(TRUE); \
\r
901 lResult = func((int)wParam, (LPNMHDR)lParam); \
\r
902 if(IsMsgHandled()) \
\r
906 // void OnEnterIdle(UINT nWhy, CWindow wndWho)
\r
907 #define MSG_WM_ENTERIDLE(func) \
\r
908 if (uMsg == WM_ENTERIDLE) \
\r
910 SetMsgHandled(TRUE); \
\r
911 func((UINT)wParam, (HWND)lParam); \
\r
913 if(IsMsgHandled()) \
\r
917 // void OnMouseMove(UINT nFlags, CPoint point)
\r
918 #define MSG_WM_MOUSEMOVE(func) \
\r
919 if (uMsg == WM_MOUSEMOVE) \
\r
921 SetMsgHandled(TRUE); \
\r
922 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
924 if(IsMsgHandled()) \
\r
928 // BOOL OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
\r
929 #define MSG_WM_MOUSEWHEEL(func) \
\r
930 if (uMsg == WM_MOUSEWHEEL) \
\r
932 SetMsgHandled(TRUE); \
\r
933 lResult = (LRESULT)func((UINT)LOWORD(wParam), (short)HIWORD(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
934 if(IsMsgHandled()) \
\r
938 // void OnLButtonDown(UINT nFlags, CPoint point)
\r
939 #define MSG_WM_LBUTTONDOWN(func) \
\r
940 if (uMsg == WM_LBUTTONDOWN) \
\r
942 SetMsgHandled(TRUE); \
\r
943 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
945 if(IsMsgHandled()) \
\r
949 // void OnLButtonUp(UINT nFlags, CPoint point)
\r
950 #define MSG_WM_LBUTTONUP(func) \
\r
951 if (uMsg == WM_LBUTTONUP) \
\r
953 SetMsgHandled(TRUE); \
\r
954 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
956 if(IsMsgHandled()) \
\r
960 // void OnLButtonDblClk(UINT nFlags, CPoint point)
\r
961 #define MSG_WM_LBUTTONDBLCLK(func) \
\r
962 if (uMsg == WM_LBUTTONDBLCLK) \
\r
964 SetMsgHandled(TRUE); \
\r
965 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
967 if(IsMsgHandled()) \
\r
971 // void OnRButtonDown(UINT nFlags, CPoint point)
\r
972 #define MSG_WM_RBUTTONDOWN(func) \
\r
973 if (uMsg == WM_RBUTTONDOWN) \
\r
975 SetMsgHandled(TRUE); \
\r
976 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
978 if(IsMsgHandled()) \
\r
982 // void OnRButtonUp(UINT nFlags, CPoint point)
\r
983 #define MSG_WM_RBUTTONUP(func) \
\r
984 if (uMsg == WM_RBUTTONUP) \
\r
986 SetMsgHandled(TRUE); \
\r
987 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
989 if(IsMsgHandled()) \
\r
993 // void OnRButtonDblClk(UINT nFlags, CPoint point)
\r
994 #define MSG_WM_RBUTTONDBLCLK(func) \
\r
995 if (uMsg == WM_RBUTTONDBLCLK) \
\r
997 SetMsgHandled(TRUE); \
\r
998 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1000 if(IsMsgHandled()) \
\r
1004 // void OnMButtonDown(UINT nFlags, CPoint point)
\r
1005 #define MSG_WM_MBUTTONDOWN(func) \
\r
1006 if (uMsg == WM_MBUTTONDOWN) \
\r
1008 SetMsgHandled(TRUE); \
\r
1009 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1011 if(IsMsgHandled()) \
\r
1015 // void OnMButtonUp(UINT nFlags, CPoint point)
\r
1016 #define MSG_WM_MBUTTONUP(func) \
\r
1017 if (uMsg == WM_MBUTTONUP) \
\r
1019 SetMsgHandled(TRUE); \
\r
1020 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1022 if(IsMsgHandled()) \
\r
1026 // void OnMButtonDblClk(UINT nFlags, CPoint point)
\r
1027 #define MSG_WM_MBUTTONDBLCLK(func) \
\r
1028 if (uMsg == WM_MBUTTONDBLCLK) \
\r
1030 SetMsgHandled(TRUE); \
\r
1031 func((UINT)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1033 if(IsMsgHandled()) \
\r
1037 // void OnParentNotify(UINT message, UINT nChildID, LPARAM lParam)
\r
1038 #define MSG_WM_PARENTNOTIFY(func) \
\r
1039 if (uMsg == WM_PARENTNOTIFY) \
\r
1041 SetMsgHandled(TRUE); \
\r
1042 func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), lParam); \
\r
1044 if(IsMsgHandled()) \
\r
1048 // void OnMDIActivate(CWindow wndActivate, CWindow wndDeactivate)
\r
1049 #define MSG_WM_MDIACTIVATE(func) \
\r
1050 if (uMsg == WM_MDIACTIVATE) \
\r
1052 SetMsgHandled(TRUE); \
\r
1053 func((HWND)wParam, (HWND)lParam); \
\r
1055 if(IsMsgHandled()) \
\r
1059 // void OnRenderFormat(UINT nFormat)
\r
1060 #define MSG_WM_RENDERFORMAT(func) \
\r
1061 if (uMsg == WM_RENDERFORMAT) \
\r
1063 SetMsgHandled(TRUE); \
\r
1064 func((UINT)wParam); \
\r
1066 if(IsMsgHandled()) \
\r
1070 // void OnRenderAllFormats()
\r
1071 #define MSG_WM_RENDERALLFORMATS(func) \
\r
1072 if (uMsg == WM_RENDERALLFORMATS) \
\r
1074 SetMsgHandled(TRUE); \
\r
1077 if(IsMsgHandled()) \
\r
1081 // void OnDestroyClipboard()
\r
1082 #define MSG_WM_DESTROYCLIPBOARD(func) \
\r
1083 if (uMsg == WM_DESTROYCLIPBOARD) \
\r
1085 SetMsgHandled(TRUE); \
\r
1088 if(IsMsgHandled()) \
\r
1092 // void OnDrawClipboard()
\r
1093 #define MSG_WM_DRAWCLIPBOARD(func) \
\r
1094 if (uMsg == WM_DRAWCLIPBOARD) \
\r
1096 SetMsgHandled(TRUE); \
\r
1099 if(IsMsgHandled()) \
\r
1103 // void OnPaintClipboard(CWindow wndViewer, const LPPAINTSTRUCT lpPaintStruct)
\r
1104 #define MSG_WM_PAINTCLIPBOARD(func) \
\r
1105 if (uMsg == WM_PAINTCLIPBOARD) \
\r
1107 SetMsgHandled(TRUE); \
\r
1108 func((HWND)wParam, (const LPPAINTSTRUCT)::GlobalLock((HGLOBAL)lParam)); \
\r
1109 ::GlobalUnlock((HGLOBAL)lParam); \
\r
1111 if(IsMsgHandled()) \
\r
1115 // void OnVScrollClipboard(CWindow wndViewer, UINT nSBCode, UINT nPos)
\r
1116 #define MSG_WM_VSCROLLCLIPBOARD(func) \
\r
1117 if (uMsg == WM_VSCROLLCLIPBOARD) \
\r
1119 SetMsgHandled(TRUE); \
\r
1120 func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
\r
1122 if(IsMsgHandled()) \
\r
1126 // void OnContextMenu(CWindow wnd, CPoint point)
\r
1127 #define MSG_WM_CONTEXTMENU(func) \
\r
1128 if (uMsg == WM_CONTEXTMENU) \
\r
1130 SetMsgHandled(TRUE); \
\r
1131 func((HWND)wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1133 if(IsMsgHandled()) \
\r
1137 // void OnSizeClipboard(CWindow wndViewer, const LPRECT lpRect)
\r
1138 #define MSG_WM_SIZECLIPBOARD(func) \
\r
1139 if (uMsg == WM_SIZECLIPBOARD) \
\r
1141 SetMsgHandled(TRUE); \
\r
1142 func((HWND)wParam, (const LPRECT)::GlobalLock((HGLOBAL)lParam)); \
\r
1143 ::GlobalUnlock((HGLOBAL)lParam); \
\r
1145 if(IsMsgHandled()) \
\r
1149 // void OnAskCbFormatName(UINT nMaxCount, LPTSTR lpszString)
\r
1150 #define MSG_WM_ASKCBFORMATNAME(func) \
\r
1151 if (uMsg == WM_ASKCBFORMATNAME) \
\r
1153 SetMsgHandled(TRUE); \
\r
1154 func((DWORD)wParam, (LPTSTR)lParam); \
\r
1156 if(IsMsgHandled()) \
\r
1160 // void OnChangeCbChain(CWindow wndRemove, CWindow wndAfter)
\r
1161 #define MSG_WM_CHANGECBCHAIN(func) \
\r
1162 if (uMsg == WM_CHANGECBCHAIN) \
\r
1164 SetMsgHandled(TRUE); \
\r
1165 func((HWND)wParam, (HWND)lParam); \
\r
1167 if(IsMsgHandled()) \
\r
1171 // void OnHScrollClipboard(CWindow wndViewer, UINT nSBCode, UINT nPos)
\r
1172 #define MSG_WM_HSCROLLCLIPBOARD(func) \
\r
1173 if (uMsg == WM_HSCROLLCLIPBOARD) \
\r
1175 SetMsgHandled(TRUE); \
\r
1176 func((HWND)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
\r
1178 if(IsMsgHandled()) \
\r
1182 // BOOL OnQueryNewPalette()
\r
1183 #define MSG_WM_QUERYNEWPALETTE(func) \
\r
1184 if (uMsg == WM_QUERYNEWPALETTE) \
\r
1186 SetMsgHandled(TRUE); \
\r
1187 lResult = (LRESULT)func(); \
\r
1188 if(IsMsgHandled()) \
\r
1192 // void OnPaletteChanged(CWindow wndFocus)
\r
1193 #define MSG_WM_PALETTECHANGED(func) \
\r
1194 if (uMsg == WM_PALETTECHANGED) \
\r
1196 SetMsgHandled(TRUE); \
\r
1197 func((HWND)wParam); \
\r
1199 if(IsMsgHandled()) \
\r
1203 // void OnPaletteIsChanging(CWindow wndPalChg)
\r
1204 #define MSG_WM_PALETTEISCHANGING(func) \
\r
1205 if (uMsg == WM_PALETTEISCHANGING) \
\r
1207 SetMsgHandled(TRUE); \
\r
1208 func((HWND)wParam); \
\r
1210 if(IsMsgHandled()) \
\r
1214 // void OnDropFiles(HDROP hDropInfo)
\r
1215 #define MSG_WM_DROPFILES(func) \
\r
1216 if (uMsg == WM_DROPFILES) \
\r
1218 SetMsgHandled(TRUE); \
\r
1219 func((HDROP)wParam); \
\r
1221 if(IsMsgHandled()) \
\r
1225 // void OnWindowPosChanging(LPWINDOWPOS lpWndPos)
\r
1226 #define MSG_WM_WINDOWPOSCHANGING(func) \
\r
1227 if (uMsg == WM_WINDOWPOSCHANGING) \
\r
1229 SetMsgHandled(TRUE); \
\r
1230 func((LPWINDOWPOS)lParam); \
\r
1232 if(IsMsgHandled()) \
\r
1236 // void OnWindowPosChanged(LPWINDOWPOS lpWndPos)
\r
1237 #define MSG_WM_WINDOWPOSCHANGED(func) \
\r
1238 if (uMsg == WM_WINDOWPOSCHANGED) \
\r
1240 SetMsgHandled(TRUE); \
\r
1241 func((LPWINDOWPOS)lParam); \
\r
1243 if(IsMsgHandled()) \
\r
1247 // void OnExitMenuLoop(BOOL fIsTrackPopupMenu)
\r
1248 #define MSG_WM_EXITMENULOOP(func) \
\r
1249 if (uMsg == WM_EXITMENULOOP) \
\r
1251 SetMsgHandled(TRUE); \
\r
1252 func((BOOL)wParam); \
\r
1254 if(IsMsgHandled()) \
\r
1258 // void OnEnterMenuLoop(BOOL fIsTrackPopupMenu)
\r
1259 #define MSG_WM_ENTERMENULOOP(func) \
\r
1260 if (uMsg == WM_ENTERMENULOOP) \
\r
1262 SetMsgHandled(TRUE); \
\r
1263 func((BOOL)wParam); \
\r
1265 if(IsMsgHandled()) \
\r
1269 // void OnStyleChanged(int nStyleType, LPSTYLESTRUCT lpStyleStruct)
\r
1270 #define MSG_WM_STYLECHANGED(func) \
\r
1271 if (uMsg == WM_STYLECHANGED) \
\r
1273 SetMsgHandled(TRUE); \
\r
1274 func((UINT)wParam, (LPSTYLESTRUCT)lParam); \
\r
1276 if(IsMsgHandled()) \
\r
1280 // void OnStyleChanging(int nStyleType, LPSTYLESTRUCT lpStyleStruct)
\r
1281 #define MSG_WM_STYLECHANGING(func) \
\r
1282 if (uMsg == WM_STYLECHANGING) \
\r
1284 SetMsgHandled(TRUE); \
\r
1285 func((UINT)wParam, (LPSTYLESTRUCT)lParam); \
\r
1287 if(IsMsgHandled()) \
\r
1291 // void OnSizing(UINT fwSide, LPRECT pRect)
\r
1292 #define MSG_WM_SIZING(func) \
\r
1293 if (uMsg == WM_SIZING) \
\r
1295 SetMsgHandled(TRUE); \
\r
1296 func((UINT)wParam, (LPRECT)lParam); \
\r
1298 if(IsMsgHandled()) \
\r
1302 // void OnMoving(UINT fwSide, LPRECT pRect)
\r
1303 #define MSG_WM_MOVING(func) \
\r
1304 if (uMsg == WM_MOVING) \
\r
1306 SetMsgHandled(TRUE); \
\r
1307 func((UINT)wParam, (LPRECT)lParam); \
\r
1309 if(IsMsgHandled()) \
\r
1313 // void OnCaptureChanged(CWindow wnd)
\r
1314 #define MSG_WM_CAPTURECHANGED(func) \
\r
1315 if (uMsg == WM_CAPTURECHANGED) \
\r
1317 SetMsgHandled(TRUE); \
\r
1318 func((HWND)lParam); \
\r
1320 if(IsMsgHandled()) \
\r
1324 // BOOL OnDeviceChange(UINT nEventType, DWORD dwData)
\r
1325 #define MSG_WM_DEVICECHANGE(func) \
\r
1326 if (uMsg == WM_DEVICECHANGE) \
\r
1328 SetMsgHandled(TRUE); \
\r
1329 lResult = (LRESULT)func((UINT)wParam, (DWORD)lParam); \
\r
1330 if(IsMsgHandled()) \
\r
1334 // void OnCommand(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
1335 #define MSG_WM_COMMAND(func) \
\r
1336 if (uMsg == WM_COMMAND) \
\r
1338 SetMsgHandled(TRUE); \
\r
1339 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
1341 if(IsMsgHandled()) \
\r
1345 // void OnDisplayChange(UINT uBitsPerPixel, CSize sizeScreen)
\r
1346 #define MSG_WM_DISPLAYCHANGE(func) \
\r
1347 if (uMsg == WM_DISPLAYCHANGE) \
\r
1349 SetMsgHandled(TRUE); \
\r
1350 func((UINT)wParam, _WTYPES_NS::CSize(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1352 if(IsMsgHandled()) \
\r
1356 // void OnEnterSizeMove()
\r
1357 #define MSG_WM_ENTERSIZEMOVE(func) \
\r
1358 if (uMsg == WM_ENTERSIZEMOVE) \
\r
1360 SetMsgHandled(TRUE); \
\r
1363 if(IsMsgHandled()) \
\r
1367 // void OnExitSizeMove()
\r
1368 #define MSG_WM_EXITSIZEMOVE(func) \
\r
1369 if (uMsg == WM_EXITSIZEMOVE) \
\r
1371 SetMsgHandled(TRUE); \
\r
1374 if(IsMsgHandled()) \
\r
1378 // HFONT OnGetFont()
\r
1379 #define MSG_WM_GETFONT(func) \
\r
1380 if (uMsg == WM_GETFONT) \
\r
1382 SetMsgHandled(TRUE); \
\r
1383 lResult = (LRESULT)func(); \
\r
1384 if(IsMsgHandled()) \
\r
1388 // LRESULT OnGetHotKey()
\r
1389 #define MSG_WM_GETHOTKEY(func) \
\r
1390 if (uMsg == WM_GETHOTKEY) \
\r
1392 SetMsgHandled(TRUE); \
\r
1393 lResult = func(); \
\r
1394 if(IsMsgHandled()) \
\r
1398 // HICON OnGetIcon()
\r
1399 #define MSG_WM_GETICON(func) \
\r
1400 if (uMsg == WM_GETICON) \
\r
1402 SetMsgHandled(TRUE); \
\r
1403 lResult = (LRESULT)func((UINT)wParam); \
\r
1404 if(IsMsgHandled()) \
\r
1408 // int OnGetText(int cchTextMax, LPTSTR lpszText)
\r
1409 #define MSG_WM_GETTEXT(func) \
\r
1410 if (uMsg == WM_GETTEXT) \
\r
1412 SetMsgHandled(TRUE); \
\r
1413 lResult = (LRESULT)func((int)wParam, (LPTSTR)lParam); \
\r
1414 if(IsMsgHandled()) \
\r
1418 // int OnGetTextLength()
\r
1419 #define MSG_WM_GETTEXTLENGTH(func) \
\r
1420 if (uMsg == WM_GETTEXTLENGTH) \
\r
1422 SetMsgHandled(TRUE); \
\r
1423 lResult = (LRESULT)func(); \
\r
1424 if(IsMsgHandled()) \
\r
1428 // void OnHelp(LPHELPINFO lpHelpInfo)
\r
1429 #define MSG_WM_HELP(func) \
\r
1430 if (uMsg == WM_HELP) \
\r
1432 SetMsgHandled(TRUE); \
\r
1433 func((LPHELPINFO)lParam); \
\r
1435 if(IsMsgHandled()) \
\r
1439 // void OnHotKey(int nHotKeyID, UINT uModifiers, UINT uVirtKey)
\r
1440 #define MSG_WM_HOTKEY(func) \
\r
1441 if (uMsg == WM_HOTKEY) \
\r
1443 SetMsgHandled(TRUE); \
\r
1444 func((int)wParam, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam)); \
\r
1446 if(IsMsgHandled()) \
\r
1450 // void OnInputLangChange(DWORD dwCharSet, HKL hKbdLayout)
\r
1451 #define MSG_WM_INPUTLANGCHANGE(func) \
\r
1452 if (uMsg == WM_INPUTLANGCHANGE) \
\r
1454 SetMsgHandled(TRUE); \
\r
1455 func((DWORD)wParam, (HKL)lParam); \
\r
1457 if(IsMsgHandled()) \
\r
1461 // void OnInputLangChangeRequest(BOOL bSysCharSet, HKL hKbdLayout)
\r
1462 #define MSG_WM_INPUTLANGCHANGEREQUEST(func) \
\r
1463 if (uMsg == WM_INPUTLANGCHANGEREQUEST) \
\r
1465 SetMsgHandled(TRUE); \
\r
1466 func((BOOL)wParam, (HKL)lParam); \
\r
1468 if(IsMsgHandled()) \
\r
1472 // void OnNextDlgCtl(BOOL bHandle, WPARAM wCtlFocus)
\r
1473 #define MSG_WM_NEXTDLGCTL(func) \
\r
1474 if (uMsg == WM_NEXTDLGCTL) \
\r
1476 SetMsgHandled(TRUE); \
\r
1477 func((BOOL)LOWORD(lParam), wParam); \
\r
1479 if(IsMsgHandled()) \
\r
1483 // void OnNextMenu(int nVirtKey, LPMDINEXTMENU lpMdiNextMenu)
\r
1484 #define MSG_WM_NEXTMENU(func) \
\r
1485 if (uMsg == WM_NEXTMENU) \
\r
1487 SetMsgHandled(TRUE); \
\r
1488 func((int)wParam, (LPMDINEXTMENU)lParam); \
\r
1490 if(IsMsgHandled()) \
\r
1494 // int OnNotifyFormat(CWindow wndFrom, int nCommand)
\r
1495 #define MSG_WM_NOTIFYFORMAT(func) \
\r
1496 if (uMsg == WM_NOTIFYFORMAT) \
\r
1498 SetMsgHandled(TRUE); \
\r
1499 lResult = (LRESULT)func((HWND)wParam, (int)lParam); \
\r
1500 if(IsMsgHandled()) \
\r
1504 // BOOL OnPowerBroadcast(DWORD dwPowerEvent, DWORD dwData)
\r
1505 #define MSG_WM_POWERBROADCAST(func) \
\r
1506 if (uMsg == WM_POWERBROADCAST) \
\r
1508 SetMsgHandled(TRUE); \
\r
1509 lResult = (LRESULT)func((DWORD)wParam, (DWORD)lParam); \
\r
1510 if(IsMsgHandled()) \
\r
1514 // void OnPrint(CDCHandle dc, UINT uFlags)
\r
1515 #define MSG_WM_PRINT(func) \
\r
1516 if (uMsg == WM_PRINT) \
\r
1518 SetMsgHandled(TRUE); \
\r
1519 func((HDC)wParam, (UINT)lParam); \
\r
1521 if(IsMsgHandled()) \
\r
1525 // void OnPrintClient(CDCHandle dc, UINT uFlags)
\r
1526 #define MSG_WM_PRINTCLIENT(func) \
\r
1527 if (uMsg == WM_PRINTCLIENT) \
\r
1529 SetMsgHandled(TRUE); \
\r
1530 func((HDC)wParam, (UINT)lParam); \
\r
1532 if(IsMsgHandled()) \
\r
1536 // void OnRasDialEvent(RASCONNSTATE rasconnstate, DWORD dwError)
\r
1537 #define MSG_WM_RASDIALEVENT(func) \
\r
1538 if (uMsg == WM_RASDIALEVENT) \
\r
1540 SetMsgHandled(TRUE); \
\r
1541 func((RASCONNSTATE)wParam, (DWORD)lParam); \
\r
1543 if(IsMsgHandled()) \
\r
1547 // void OnSetFont(CFont font, BOOL bRedraw)
\r
1548 #define MSG_WM_SETFONT(func) \
\r
1549 if (uMsg == WM_SETFONT) \
\r
1551 SetMsgHandled(TRUE); \
\r
1552 func((HFONT)wParam, (BOOL)LOWORD(lParam)); \
\r
1554 if(IsMsgHandled()) \
\r
1558 // int OnSetHotKey(int nVirtKey, UINT uFlags)
\r
1559 #define MSG_WM_SETHOTKEY(func) \
\r
1560 if (uMsg == WM_SETHOTKEY) \
\r
1562 SetMsgHandled(TRUE); \
\r
1563 lResult = (LRESULT)func((int)LOBYTE(LOWORD(wParam)), (UINT)HIBYTE(LOWORD(wParam))); \
\r
1564 if(IsMsgHandled()) \
\r
1568 // HICON OnSetIcon(UINT uType, HICON hIcon)
\r
1569 #define MSG_WM_SETICON(func) \
\r
1570 if (uMsg == WM_SETICON) \
\r
1572 SetMsgHandled(TRUE); \
\r
1573 lResult = (LRESULT)func((UINT)wParam, (HICON)lParam); \
\r
1574 if(IsMsgHandled()) \
\r
1578 // void OnSetRedraw(BOOL bRedraw)
\r
1579 #define MSG_WM_SETREDRAW(func) \
\r
1580 if (uMsg == WM_SETREDRAW) \
\r
1582 SetMsgHandled(TRUE); \
\r
1583 func((BOOL)wParam); \
\r
1585 if(IsMsgHandled()) \
\r
1589 // int OnSetText(LPCTSTR lpstrText)
\r
1590 #define MSG_WM_SETTEXT(func) \
\r
1591 if (uMsg == WM_SETTEXT) \
\r
1593 SetMsgHandled(TRUE); \
\r
1594 lResult = (LRESULT)func((LPCTSTR)lParam); \
\r
1595 if(IsMsgHandled()) \
\r
1599 // void OnUserChanged()
\r
1600 #define MSG_WM_USERCHANGED(func) \
\r
1601 if (uMsg == WM_USERCHANGED) \
\r
1603 SetMsgHandled(TRUE); \
\r
1606 if(IsMsgHandled()) \
\r
1610 ///////////////////////////////////////////////////////////////////////////////
\r
1611 // New NT4 & NT5 messages
\r
1613 #if(_WIN32_WINNT >= 0x0400)
\r
1615 // void OnMouseHover(WPARAM wParam, CPoint ptPos)
\r
1616 #define MSG_WM_MOUSEHOVER(func) \
\r
1617 if (uMsg == WM_MOUSEHOVER) \
\r
1619 SetMsgHandled(TRUE); \
\r
1620 func(wParam, _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1622 if(IsMsgHandled()) \
\r
1626 // void OnMouseLeave()
\r
1627 #define MSG_WM_MOUSELEAVE(func) \
\r
1628 if (uMsg == WM_MOUSELEAVE) \
\r
1630 SetMsgHandled(TRUE); \
\r
1633 if(IsMsgHandled()) \
\r
1637 #endif /* _WIN32_WINNT >= 0x0400 */
\r
1639 #if(WINVER >= 0x0500)
\r
1641 // void OnMenuRButtonUp(WPARAM wParam, CMenu menu)
\r
1642 #define MSG_WM_MENURBUTTONUP(func) \
\r
1643 if (uMsg == WM_MENURBUTTONUP) \
\r
1645 SetMsgHandled(TRUE); \
\r
1646 func(wParam, (HMENU)lParam); \
\r
1648 if(IsMsgHandled()) \
\r
1652 // LRESULT OnMenuDrag(WPARAM wParam, CMenu menu)
\r
1653 #define MSG_WM_MENUDRAG(func) \
\r
1654 if (uMsg == WM_MENUDRAG) \
\r
1656 SetMsgHandled(TRUE); \
\r
1657 lResult = func(wParam, (HMENU)lParam); \
\r
1658 if(IsMsgHandled()) \
\r
1662 // LRESULT OnMenuGetObject(PMENUGETOBJECTINFO info)
\r
1663 #define MSG_WM_MENUGETOBJECT(func) \
\r
1664 if (uMsg == WM_MENUGETOBJECT) \
\r
1666 SetMsgHandled(TRUE); \
\r
1667 lResult = func((PMENUGETOBJECTINFO)lParam); \
\r
1668 if(IsMsgHandled()) \
\r
1672 // void OnUnInitMenuPopup(UINT nID, CMenu menu)
\r
1673 #define MSG_WM_UNINITMENUPOPUP(func) \
\r
1674 if (uMsg == WM_UNINITMENUPOPUP) \
\r
1676 SetMsgHandled(TRUE); \
\r
1677 func((UINT)HIWORD(lParam), (HMENU)wParam); \
\r
1679 if(IsMsgHandled()) \
\r
1683 // void OnMenuCommand(WPARAM nIndex, CMenu menu)
\r
1684 #define MSG_WM_MENUCOMMAND(func) \
\r
1685 if (uMsg == WM_MENUCOMMAND) \
\r
1687 SetMsgHandled(TRUE); \
\r
1688 func(wParam, (HMENU)lParam); \
\r
1690 if(IsMsgHandled()) \
\r
1694 #endif /* WINVER >= 0x0500 */
\r
1696 #if(_WIN32_WINNT >= 0x0500)
\r
1698 // BOOL OnAppCommand(CWindow wndFocus, short cmd, WORD uDevice, int dwKeys)
\r
1699 #define MSG_WM_APPCOMMAND(func) \
\r
1700 if (uMsg == WM_APPCOMMAND) \
\r
1702 SetMsgHandled(TRUE); \
\r
1703 lResult = (LRESULT)func((HWND)wParam, GET_APPCOMMAND_LPARAM(lParam), GET_DEVICE_LPARAM(lParam), GET_KEYSTATE_LPARAM(lParam)); \
\r
1704 if(IsMsgHandled()) \
\r
1708 // void OnNCXButtonDown(int fwButton, short nHittest, CPoint ptPos)
\r
1709 #define MSG_WM_NCXBUTTONDOWN(func) \
\r
1710 if (uMsg == WM_NCXBUTTONDOWN) \
\r
1712 SetMsgHandled(TRUE); \
\r
1713 func(GET_XBUTTON_WPARAM(wParam), GET_NCHITTEST_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1715 if(IsMsgHandled()) \
\r
1719 // void OnNCXButtonUp(int fwButton, short nHittest, CPoint ptPos)
\r
1720 #define MSG_WM_NCXBUTTONUP(func) \
\r
1721 if (uMsg == WM_NCXBUTTONUP) \
\r
1723 SetMsgHandled(TRUE); \
\r
1724 func(GET_XBUTTON_WPARAM(wParam), GET_NCHITTEST_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1726 if(IsMsgHandled()) \
\r
1730 // void OnNCXButtonDblClk(int fwButton, short nHittest, CPoint ptPos)
\r
1731 #define MSG_WM_NCXBUTTONDBLCLK(func) \
\r
1732 if (uMsg == WM_NCXBUTTONDBLCLK) \
\r
1734 SetMsgHandled(TRUE); \
\r
1735 func(GET_XBUTTON_WPARAM(wParam), GET_NCHITTEST_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1737 if(IsMsgHandled()) \
\r
1741 // void OnXButtonDown(int fwButton, int dwKeys, CPoint ptPos)
\r
1742 #define MSG_WM_XBUTTONDOWN(func) \
\r
1743 if (uMsg == WM_XBUTTONDOWN) \
\r
1745 SetMsgHandled(TRUE); \
\r
1746 func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1748 if(IsMsgHandled()) \
\r
1752 // void OnXButtonUp(int fwButton, int dwKeys, CPoint ptPos)
\r
1753 #define MSG_WM_XBUTTONUP(func) \
\r
1754 if (uMsg == WM_XBUTTONUP) \
\r
1756 SetMsgHandled(TRUE); \
\r
1757 func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1759 if(IsMsgHandled()) \
\r
1763 // void OnXButtonDblClk(int fwButton, int dwKeys, CPoint ptPos)
\r
1764 #define MSG_WM_XBUTTONDBLCLK(func) \
\r
1765 if (uMsg == WM_XBUTTONDBLCLK) \
\r
1767 SetMsgHandled(TRUE); \
\r
1768 func(GET_XBUTTON_WPARAM(wParam), GET_KEYSTATE_WPARAM(wParam), _WTYPES_NS::CPoint(GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam))); \
\r
1770 if(IsMsgHandled()) \
\r
1774 // void OnChangeUIState(WORD nAction, WORD nState)
\r
1775 #define MSG_WM_CHANGEUISTATE(func) \
\r
1776 if (uMsg == WM_CHANGEUISTATE) \
\r
1778 SetMsgHandled(TRUE); \
\r
1779 func(LOWORD(wParam), HIWORD(wParam)); \
\r
1781 if(IsMsgHandled()) \
\r
1785 // void OnUpdateUIState(WORD nAction, WORD nState)
\r
1786 #define MSG_WM_UPDATEUISTATE(func) \
\r
1787 if (uMsg == WM_UPDATEUISTATE) \
\r
1789 SetMsgHandled(TRUE); \
\r
1790 func(LOWORD(wParam), HIWORD(wParam)); \
\r
1792 if(IsMsgHandled()) \
\r
1796 // LRESULT OnQueryUIState()
\r
1797 #define MSG_WM_QUERYUISTATE(func) \
\r
1798 if (uMsg == WM_QUERYUISTATE) \
\r
1800 SetMsgHandled(TRUE); \
\r
1801 lResult = func(); \
\r
1802 if(IsMsgHandled()) \
\r
1806 #endif // (_WIN32_WINNT >= 0x0500)
\r
1808 #if(_WIN32_WINNT >= 0x0501)
\r
1810 // void OnInput(WPARAM RawInputCode, HRAWINPUT hRawInput)
\r
1811 #define MSG_WM_INPUT(func) \
\r
1812 if (uMsg == WM_INPUT) \
\r
1814 SetMsgHandled(TRUE); \
\r
1815 func(GET_RAWINPUT_CODE_WPARAM(wParam), (HRAWINPUT)lParam); \
\r
1817 if(IsMsgHandled()) \
\r
1821 // void OnUniChar(TCHAR nChar, UINT nRepCnt, UINT nFlags)
\r
1822 #define MSG_WM_UNICHAR(func) \
\r
1823 if (uMsg == WM_UNICHAR) \
\r
1825 SetMsgHandled(TRUE); \
\r
1826 func((TCHAR)wParam, (UINT)lParam & 0xFFFF, (UINT)((lParam & 0xFFFF0000) >> 16)); \
\r
1827 if(IsMsgHandled()) \
\r
1829 lResult = (wParam == UNICODE_NOCHAR) ? TRUE : FALSE; \
\r
1834 // void OnWTSSessionChange(WPARAM nStatusCode, PWTSSESSION_NOTIFICATION nSessionID)
\r
1835 #define MSG_WM_WTSSESSION_CHANGE(func) \
\r
1836 if (uMsg == WM_WTSSESSION_CHANGE) \
\r
1838 SetMsgHandled(TRUE); \
\r
1839 func(wParam, (PWTSSESSION_NOTIFICATION)lParam); \
\r
1841 if(IsMsgHandled()) \
\r
1845 // OnThemeChanged()
\r
1846 #define MSG_WM_THEMECHANGED(func) \
\r
1847 if (uMsg == WM_THEMECHANGED) \
\r
1849 SetMsgHandled(TRUE); \
\r
1852 if(IsMsgHandled()) \
\r
1856 #endif /* _WIN32_WINNT >= 0x0501 */
\r
1858 ///////////////////////////////////////////////////////////////////////////////
\r
1859 // ATL defined messages
\r
1861 // BOOL OnForwardMsg(LPMSG Msg, DWORD nUserData)
\r
1862 #define MSG_WM_FORWARDMSG(func) \
\r
1863 if (uMsg == WM_FORWARDMSG) \
\r
1865 SetMsgHandled(TRUE); \
\r
1866 lResult = (LRESULT)func((LPMSG)lParam, (DWORD)wParam); \
\r
1867 if(IsMsgHandled()) \
\r
1871 ///////////////////////////////////////////////////////////////////////////////
\r
1872 // Dialog specific messages
\r
1874 // LRESULT OnDMGetDefID()
\r
1875 #define MSG_DM_GETDEFID(func) \
\r
1876 if (uMsg == DM_GETDEFID) \
\r
1878 SetMsgHandled(TRUE); \
\r
1879 lResult = func(); \
\r
1880 if(IsMsgHandled()) \
\r
1884 // void OnDMSetDefID(UINT DefID)
\r
1885 #define MSG_DM_SETDEFID(func) \
\r
1886 if (uMsg == DM_SETDEFID) \
\r
1888 SetMsgHandled(TRUE); \
\r
1889 func((UINT)wParam); \
\r
1891 if(IsMsgHandled()) \
\r
1895 // void OnDMReposition()
\r
1896 #define MSG_DM_REPOSITION(func) \
\r
1897 if (uMsg == DM_REPOSITION) \
\r
1899 SetMsgHandled(TRUE); \
\r
1902 if(IsMsgHandled()) \
\r
1906 ///////////////////////////////////////////////////////////////////////////////
\r
1907 // Reflected messages
\r
1909 // void OnReflectedCommand(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
1910 #define MSG_OCM_COMMAND(func) \
\r
1911 if (uMsg == OCM_COMMAND) \
\r
1913 SetMsgHandled(TRUE); \
\r
1914 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
1916 if(IsMsgHandled()) \
\r
1920 // LRESULT OnReflectedNotify(int idCtrl, LPNMHDR pnmh)
\r
1921 #define MSG_OCM_NOTIFY(func) \
\r
1922 if (uMsg == OCM_NOTIFY) \
\r
1924 SetMsgHandled(TRUE); \
\r
1925 lResult = func((int)wParam, (LPNMHDR)lParam); \
\r
1926 if(IsMsgHandled()) \
\r
1930 // void OnReflectedParentNotify(UINT message, UINT nChildID, LPARAM lParam)
\r
1931 #define MSG_OCM_PARENTNOTIFY(func) \
\r
1932 if (uMsg == OCM_PARENTNOTIFY) \
\r
1934 SetMsgHandled(TRUE); \
\r
1935 func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), lParam); \
\r
1937 if(IsMsgHandled()) \
\r
1941 // void OnReflectedDrawItem(int nIDCtl, LPDRAWITEMSTRUCT lpDrawItemStruct)
\r
1942 #define MSG_OCM_DRAWITEM(func) \
\r
1943 if (uMsg == OCM_DRAWITEM) \
\r
1945 SetMsgHandled(TRUE); \
\r
1946 func((UINT)wParam, (LPDRAWITEMSTRUCT)lParam); \
\r
1948 if(IsMsgHandled()) \
\r
1952 // void OnReflectedMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct)
\r
1953 #define MSG_OCM_MEASUREITEM(func) \
\r
1954 if (uMsg == OCM_MEASUREITEM) \
\r
1956 SetMsgHandled(TRUE); \
\r
1957 func((UINT)wParam, (LPMEASUREITEMSTRUCT)lParam); \
\r
1959 if(IsMsgHandled()) \
\r
1963 // int OnReflectedCompareItem(int nIDCtl, LPCOMPAREITEMSTRUCT lpCompareItemStruct)
\r
1964 #define MSG_OCM_COMPAREITEM(func) \
\r
1965 if (uMsg == OCM_COMPAREITEM) \
\r
1967 SetMsgHandled(TRUE); \
\r
1968 lResult = (LRESULT)func((UINT)wParam, (LPCOMPAREITEMSTRUCT)lParam); \
\r
1969 if(IsMsgHandled()) \
\r
1973 // void OnReflectedDeleteItem(int nIDCtl, LPDELETEITEMSTRUCT lpDeleteItemStruct)
\r
1974 #define MSG_OCM_DELETEITEM(func) \
\r
1975 if (uMsg == OCM_DELETEITEM) \
\r
1977 SetMsgHandled(TRUE); \
\r
1978 func((UINT)wParam, (LPDELETEITEMSTRUCT)lParam); \
\r
1980 if(IsMsgHandled()) \
\r
1984 // int OnReflectedVKeyToItem(UINT nKey, UINT nIndex, CListBox listBox)
\r
1985 #define MSG_OCM_VKEYTOITEM(func) \
\r
1986 if (uMsg == OCM_VKEYTOITEM) \
\r
1988 SetMsgHandled(TRUE); \
\r
1989 lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HWND)lParam); \
\r
1990 if(IsMsgHandled()) \
\r
1994 //int OnReflectedCharToItem(UINT nChar, UINT nIndex, CListBox listBox)
\r
1995 #define MSG_OCM_CHARTOITEM(func) \
\r
1996 if (uMsg == OCM_CHARTOITEM) \
\r
1998 SetMsgHandled(TRUE); \
\r
1999 lResult = (LRESULT)func((UINT)LOWORD(wParam), (UINT)HIWORD(wParam), (HWND)lParam); \
\r
2000 if(IsMsgHandled()) \
\r
2004 // void OnReflectedHScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar)
\r
2005 #define MSG_OCM_HSCROLL(func) \
\r
2006 if (uMsg == OCM_HSCROLL) \
\r
2008 SetMsgHandled(TRUE); \
\r
2009 func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam); \
\r
2011 if(IsMsgHandled()) \
\r
2015 // void OnReflectedVScroll(UINT nSBCode, UINT nPos, CScrollBar pScrollBar)
\r
2016 #define MSG_OCM_VSCROLL(func) \
\r
2017 if (uMsg == OCM_VSCROLL) \
\r
2019 SetMsgHandled(TRUE); \
\r
2020 func((int)LOWORD(wParam), (short)HIWORD(wParam), (HWND)lParam); \
\r
2022 if(IsMsgHandled()) \
\r
2026 // HBRUSH OnReflectedCtlColorEdit(CDCHandle dc, CEdit edit)
\r
2027 #define MSG_OCM_CTLCOLOREDIT(func) \
\r
2028 if (uMsg == OCM_CTLCOLOREDIT) \
\r
2030 SetMsgHandled(TRUE); \
\r
2031 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
2032 if(IsMsgHandled()) \
\r
2036 // HBRUSH OnReflectedCtlColorListBox(CDCHandle dc, CListBox listBox)
\r
2037 #define MSG_OCM_CTLCOLORLISTBOX(func) \
\r
2038 if (uMsg == OCM_CTLCOLORLISTBOX) \
\r
2040 SetMsgHandled(TRUE); \
\r
2041 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
2042 if(IsMsgHandled()) \
\r
2046 // HBRUSH OnReflectedCtlColorBtn(CDCHandle dc, CButton button)
\r
2047 #define MSG_OCM_CTLCOLORBTN(func) \
\r
2048 if (uMsg == OCM_CTLCOLORBTN) \
\r
2050 SetMsgHandled(TRUE); \
\r
2051 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
2052 if(IsMsgHandled()) \
\r
2056 // HBRUSH OnReflectedCtlColorDlg(CDCHandle dc, CWindow wnd)
\r
2057 #define MSG_OCM_CTLCOLORDLG(func) \
\r
2058 if (uMsg == OCM_CTLCOLORDLG) \
\r
2060 SetMsgHandled(TRUE); \
\r
2061 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
2062 if(IsMsgHandled()) \
\r
2066 // HBRUSH OnReflectedCtlColorScrollBar(CDCHandle dc, CScrollBar scrollBar)
\r
2067 #define MSG_OCM_CTLCOLORSCROLLBAR(func) \
\r
2068 if (uMsg == OCM_CTLCOLORSCROLLBAR) \
\r
2070 SetMsgHandled(TRUE); \
\r
2071 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
2072 if(IsMsgHandled()) \
\r
2076 // HBRUSH OnReflectedCtlColorStatic(CDCHandle dc, CStatic wndStatic)
\r
2077 #define MSG_OCM_CTLCOLORSTATIC(func) \
\r
2078 if (uMsg == OCM_CTLCOLORSTATIC) \
\r
2080 SetMsgHandled(TRUE); \
\r
2081 lResult = (LRESULT)func((HDC)wParam, (HWND)lParam); \
\r
2082 if(IsMsgHandled()) \
\r
2086 ///////////////////////////////////////////////////////////////////////////////
\r
2087 // Edit specific messages
\r
2090 #define MSG_WM_CLEAR(func) \
\r
2091 if (uMsg == WM_CLEAR) \
\r
2093 SetMsgHandled(TRUE); \
\r
2096 if(IsMsgHandled()) \
\r
2101 #define MSG_WM_COPY(func) \
\r
2102 if (uMsg == WM_COPY) \
\r
2104 SetMsgHandled(TRUE); \
\r
2107 if(IsMsgHandled()) \
\r
2112 #define MSG_WM_CUT(func) \
\r
2113 if (uMsg == WM_CUT) \
\r
2115 SetMsgHandled(TRUE); \
\r
2118 if(IsMsgHandled()) \
\r
2123 #define MSG_WM_PASTE(func) \
\r
2124 if (uMsg == WM_PASTE) \
\r
2126 SetMsgHandled(TRUE); \
\r
2129 if(IsMsgHandled()) \
\r
2134 #define MSG_WM_UNDO(func) \
\r
2135 if (uMsg == WM_UNDO) \
\r
2137 SetMsgHandled(TRUE); \
\r
2140 if(IsMsgHandled()) \
\r
2144 ///////////////////////////////////////////////////////////////////////////////
\r
2145 // Generic message handlers
\r
2147 // LRESULT OnMessageHandlerEX(UINT uMsg, WPARAM wParam, LPARAM lParam)
\r
2148 #define MESSAGE_HANDLER_EX(msg, func) \
\r
2151 SetMsgHandled(TRUE); \
\r
2152 lResult = func(uMsg, wParam, lParam); \
\r
2153 if(IsMsgHandled()) \
\r
2157 // LRESULT OnMessageRangeHandlerEX(UINT uMsg, WPARAM wParam, LPARAM lParam)
\r
2158 #define MESSAGE_RANGE_HANDLER_EX(msgFirst, msgLast, func) \
\r
2159 if(uMsg >= msgFirst && uMsg <= msgLast) \
\r
2161 SetMsgHandled(TRUE); \
\r
2162 lResult = func(uMsg, wParam, lParam); \
\r
2163 if(IsMsgHandled()) \
\r
2167 ///////////////////////////////////////////////////////////////////////////////
\r
2168 // Commands and notifications
\r
2170 // void OnCommandHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2171 #define COMMAND_HANDLER_EX(id, code, func) \
\r
2172 if (uMsg == WM_COMMAND && code == HIWORD(wParam) && id == LOWORD(wParam)) \
\r
2174 SetMsgHandled(TRUE); \
\r
2175 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2177 if(IsMsgHandled()) \
\r
2181 // void OnCommandIDHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2182 #define COMMAND_ID_HANDLER_EX(id, func) \
\r
2183 if (uMsg == WM_COMMAND && id == LOWORD(wParam)) \
\r
2185 SetMsgHandled(TRUE); \
\r
2186 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2188 if(IsMsgHandled()) \
\r
2192 // void OnCommandCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2193 #define COMMAND_CODE_HANDLER_EX(code, func) \
\r
2194 if (uMsg == WM_COMMAND && code == HIWORD(wParam)) \
\r
2196 SetMsgHandled(TRUE); \
\r
2197 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2199 if(IsMsgHandled()) \
\r
2203 // LRESULT OnNotifyHandlerEX(LPNMHDR pnmh)
\r
2204 #define NOTIFY_HANDLER_EX(id, cd, func) \
\r
2205 if (uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code && id == ((LPNMHDR)lParam)->idFrom) \
\r
2207 SetMsgHandled(TRUE); \
\r
2208 lResult = func((LPNMHDR)lParam); \
\r
2209 if(IsMsgHandled()) \
\r
2213 // LRESULT OnNotifyIDHandlerEX(LPNMHDR pnmh)
\r
2214 #define NOTIFY_ID_HANDLER_EX(id, func) \
\r
2215 if (uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \
\r
2217 SetMsgHandled(TRUE); \
\r
2218 lResult = func((LPNMHDR)lParam); \
\r
2219 if(IsMsgHandled()) \
\r
2223 // LRESULT OnNotifyCodeHandlerEX(LPNMHDR pnmh)
\r
2224 #define NOTIFY_CODE_HANDLER_EX(cd, func) \
\r
2225 if (uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \
\r
2227 SetMsgHandled(TRUE); \
\r
2228 lResult = func((LPNMHDR)lParam); \
\r
2229 if(IsMsgHandled()) \
\r
2233 // void OnCommandRangeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2234 #define COMMAND_RANGE_HANDLER_EX(idFirst, idLast, func) \
\r
2235 if(uMsg == WM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
\r
2237 SetMsgHandled(TRUE); \
\r
2238 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2240 if(IsMsgHandled()) \
\r
2244 // void OnCommandRangeCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2245 #define COMMAND_RANGE_CODE_HANDLER_EX(idFirst, idLast, code, func) \
\r
2246 if(uMsg == WM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
\r
2248 SetMsgHandled(TRUE); \
\r
2249 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2251 if(IsMsgHandled()) \
\r
2255 // LRESULT OnNotifyRangeHandlerEX(LPNMHDR pnmh)
\r
2256 #define NOTIFY_RANGE_HANDLER_EX(idFirst, idLast, func) \
\r
2257 if(uMsg == WM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
\r
2259 SetMsgHandled(TRUE); \
\r
2260 lResult = func((LPNMHDR)lParam); \
\r
2261 if(IsMsgHandled()) \
\r
2265 // LRESULT OnNotifyRangeCodeHandlerEX(LPNMHDR pnmh)
\r
2266 #define NOTIFY_RANGE_CODE_HANDLER_EX(idFirst, idLast, cd, func) \
\r
2267 if(uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
\r
2269 SetMsgHandled(TRUE); \
\r
2270 lResult = func((LPNMHDR)lParam); \
\r
2271 if(IsMsgHandled()) \
\r
2275 // LRESULT OnReflectedCommandHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2276 #define REFLECTED_COMMAND_HANDLER_EX(id, code, func) \
\r
2277 if (uMsg == OCM_COMMAND && code == HIWORD(wParam) && id == LOWORD(wParam)) \
\r
2279 SetMsgHandled(TRUE); \
\r
2280 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2282 if(IsMsgHandled()) \
\r
2286 // LRESULT OnReflectedCommandIDHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2287 #define REFLECTED_COMMAND_ID_HANDLER_EX(id, func) \
\r
2288 if (uMsg == OCM_COMMAND && id == LOWORD(wParam)) \
\r
2290 SetMsgHandled(TRUE); \
\r
2291 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2293 if(IsMsgHandled()) \
\r
2297 // LRESULT OnReflectedCommandCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2298 #define REFLECTED_COMMAND_CODE_HANDLER_EX(code, func) \
\r
2299 if (uMsg == OCM_COMMAND && code == HIWORD(wParam)) \
\r
2301 SetMsgHandled(TRUE); \
\r
2302 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2304 if(IsMsgHandled()) \
\r
2308 // LRESULT OnReflectedNotifyHandlerEX(LPNMHDR pnmh)
\r
2309 #define REFLECTED_NOTIFY_HANDLER_EX(id, cd, func) \
\r
2310 if (uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code && id == ((LPNMHDR)lParam)->idFrom) \
\r
2312 SetMsgHandled(TRUE); \
\r
2313 lResult = func((LPNMHDR)lParam); \
\r
2314 if(IsMsgHandled()) \
\r
2318 // LRESULT OnReflectedNotifyIDHandlerEX(LPNMHDR pnmh)
\r
2319 #define REFLECTED_NOTIFY_ID_HANDLER_EX(id, func) \
\r
2320 if (uMsg == OCM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \
\r
2322 SetMsgHandled(TRUE); \
\r
2323 lResult = func((LPNMHDR)lParam); \
\r
2324 if(IsMsgHandled()) \
\r
2328 // LRESULT OnReflectedNotifyCodeHandlerEX(LPNMHDR pnmh)
\r
2329 #define REFLECTED_NOTIFY_CODE_HANDLER_EX(cd, func) \
\r
2330 if (uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \
\r
2332 SetMsgHandled(TRUE); \
\r
2333 lResult = func((LPNMHDR)lParam); \
\r
2334 if(IsMsgHandled()) \
\r
2338 // void OnReflectedCommandRangeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2339 #define REFLECTED_COMMAND_RANGE_HANDLER_EX(idFirst, idLast, func) \
\r
2340 if(uMsg == OCM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
\r
2342 SetMsgHandled(TRUE); \
\r
2343 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2345 if(IsMsgHandled()) \
\r
2349 // void OnReflectedCommandRangeCodeHandlerEX(UINT uNotifyCode, int nID, CWindow wndCtl)
\r
2350 #define REFLECTED_COMMAND_RANGE_CODE_HANDLER_EX(idFirst, idLast, code, func) \
\r
2351 if(uMsg == OCM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \
\r
2353 SetMsgHandled(TRUE); \
\r
2354 func((UINT)HIWORD(wParam), (int)LOWORD(wParam), (HWND)lParam); \
\r
2356 if(IsMsgHandled()) \
\r
2360 // LRESULT OnReflectedNotifyRangeHandlerEX(LPNMHDR pnmh)
\r
2361 #define REFLECTED_NOTIFY_RANGE_HANDLER_EX(idFirst, idLast, func) \
\r
2362 if(uMsg == OCM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
\r
2364 SetMsgHandled(TRUE); \
\r
2365 lResult = func((LPNMHDR)lParam); \
\r
2366 if(IsMsgHandled()) \
\r
2370 // LRESULT OnReflectedNotifyRangeCodeHandlerEX(LPNMHDR pnmh)
\r
2371 #define REFLECTED_NOTIFY_RANGE_CODE_HANDLER_EX(idFirst, idLast, cd, func) \
\r
2372 if(uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \
\r
2374 SetMsgHandled(TRUE); \
\r
2375 lResult = func((LPNMHDR)lParam); \
\r
2376 if(IsMsgHandled()) \
\r
2380 #endif // __ATLCRACK_H__
\r