15 #error atlwinx.h requires atlapp.h to be included first 18 #if (_ATL_VER >= 0x0700) 20 #endif // (_ATL_VER >= 0x0700) 34 #define CHAIN_COMMANDS(theChainClass) \ 35 if(uMsg == WM_COMMAND) \ 36 CHAIN_MSG_MAP(theChainClass) 38 #define CHAIN_COMMANDS_ALT(theChainClass, msgMapID) \ 39 if(uMsg == WM_COMMAND) \ 40 CHAIN_MSG_MAP_ALT(theChainClass, msgMapID) 42 #define CHAIN_COMMANDS_MEMBER(theChainMember) \ 43 if(uMsg == WM_COMMAND) \ 44 CHAIN_MSG_MAP_MEMBER(theChainMember) 46 #define CHAIN_COMMANDS_ALT_MEMBER(theChainMember, msgMapID) \ 47 if(uMsg == WM_COMMAND) \ 48 CHAIN_MSG_MAP_ALT_MEMBER(theChainMember, msgMapID) 62 inline LRESULT WtlReflectNotificationsFiltered(HWND hWndParent, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled,
63 UINT uMsgFilter = WM_NULL, UINT_PTR idFromFilter = 0, HWND hWndChildFilter = NULL)
65 if((uMsgFilter != WM_NULL) && (uMsgFilter != uMsg))
72 HWND hWndChild = NULL;
80 hWndChild = (HWND)lParam;
81 idFrom = (UINT_PTR)LOWORD(wParam);
85 hWndChild = ((LPNMHDR)lParam)->hwndFrom;
86 idFrom = ((LPNMHDR)lParam)->idFrom;
90 switch(LOWORD(wParam))
94 hWndChild = (HWND)lParam;
95 idFrom = (UINT_PTR)HIWORD(wParam);
98 hWndChild = ::GetDlgItem(hWndParent, HIWORD(wParam));
99 idFrom = (UINT_PTR)::GetDlgCtrlID(hWndChild);
103 #endif // !_WIN32_WCE 107 hWndChild = ((LPDRAWITEMSTRUCT)lParam)->hwndItem;
108 idFrom = (UINT_PTR)wParam;
114 hWndChild = ::GetDlgItem(hWndParent, ((LPMEASUREITEMSTRUCT)lParam)->CtlID);
115 idFrom = (UINT_PTR)wParam;
121 hWndChild = ((LPCOMPAREITEMSTRUCT)lParam)->hwndItem;
122 idFrom = (UINT_PTR)wParam;
128 hWndChild = ((LPDELETEITEMSTRUCT)lParam)->hwndItem;
129 idFrom = (UINT_PTR)wParam;
136 hWndChild = (HWND)lParam;
137 idFrom = (UINT_PTR)::GetDlgCtrlID(hWndChild);
141 case WM_CTLCOLOREDIT:
142 case WM_CTLCOLORLISTBOX:
143 case WM_CTLCOLORMSGBOX:
144 case WM_CTLCOLORSCROLLBAR:
145 case WM_CTLCOLORSTATIC:
146 hWndChild = (HWND)lParam;
147 idFrom = (UINT_PTR)::GetDlgCtrlID(hWndChild);
153 if((hWndChild == NULL) ||
154 ((hWndChildFilter != NULL) && (hWndChildFilter != hWndChild)))
162 if((idFromFilter != 0) && (idFromFilter != idFrom))
169 ATLASSERT(::IsWindow(hWndChild));
170 LRESULT lResult = ::SendMessage(hWndChild, OCM__BASE + uMsg, wParam, lParam);
171 if((lResult == 0) && (uMsg >= WM_CTLCOLORMSGBOX) && (uMsg <= WM_CTLCOLORSTATIC))
185 #define REFLECT_NOTIFICATIONS_EX() \ 188 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 189 if((lResult == 0) && (uMsg >= WM_CTLCOLORMSGBOX) && (uMsg <= WM_CTLCOLORSTATIC)) \ 195 #define REFLECT_NOTIFICATIONS_MSG_FILTERED(uMsgFilter) \ 198 lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, uMsgFilter, 0, NULL); \ 203 #define REFLECT_NOTIFICATIONS_ID_FILTERED(idFromFilter) \ 206 lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, WM_NULL, idFromFilter, NULL); \ 211 #define REFLECT_NOTIFICATIONS_HWND_FILTERED(hWndChildFilter) \ 214 lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, WM_NULL, 0, hWndChildFilter); \ 219 #define REFLECT_NOTIFICATIONS_MSG_ID_FILTERED(uMsgFilter, idFromFilter) \ 222 lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, uMsgFilter, idFromFilter, NULL); \ 227 #define REFLECT_NOTIFICATIONS_MSG_HWND_FILTERED(uMsgFilter, hWndChildFilter) \ 230 lResult = WTL::WtlReflectNotificationsFiltered(m_hWnd, uMsg, wParam, lParam, bHandled, uMsgFilter, 0, hWndChildFilter); \ 235 #define REFLECT_COMMAND(id, code) \ 236 if(uMsg == WM_COMMAND && id == LOWORD(wParam) && code == HIWORD(wParam)) \ 239 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 244 #define REFLECT_COMMAND_ID(id) \ 245 if(uMsg == WM_COMMAND && id == LOWORD(wParam)) \ 248 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 253 #define REFLECT_COMMAND_CODE(code) \ 254 if(uMsg == WM_COMMAND && code == HIWORD(wParam)) \ 257 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 262 #define REFLECT_COMMAND_RANGE(idFirst, idLast) \ 263 if(uMsg == WM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \ 266 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 271 #define REFLECT_COMMAND_RANGE_CODE(idFirst, idLast, code) \ 272 if(uMsg == WM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \ 275 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 280 #define REFLECT_NOTIFY(id, cd) \ 281 if(uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom && cd == ((LPNMHDR)lParam)->code) \ 284 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 289 #define REFLECT_NOTIFY_ID(id) \ 290 if(uMsg == WM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \ 293 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 298 #define REFLECT_NOTIFY_CODE(cd) \ 299 if(uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \ 302 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 307 #define REFLECT_NOTIFY_RANGE(idFirst, idLast) \ 308 if(uMsg == WM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \ 311 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 316 #define REFLECT_NOTIFY_RANGE_CODE(idFirst, idLast, cd) \ 317 if(uMsg == WM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \ 320 lResult = ReflectNotifications(uMsg, wParam, lParam, bHandled); \ 329 #if (_ATL_VER < 0x0700) 331 #define REFLECTED_COMMAND_HANDLER(id, code, func) \ 332 if(uMsg == OCM_COMMAND && id == LOWORD(wParam) && code == HIWORD(wParam)) \ 335 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \ 340 #define REFLECTED_COMMAND_ID_HANDLER(id, func) \ 341 if(uMsg == OCM_COMMAND && id == LOWORD(wParam)) \ 344 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \ 349 #define REFLECTED_COMMAND_CODE_HANDLER(code, func) \ 350 if(uMsg == OCM_COMMAND && code == HIWORD(wParam)) \ 353 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \ 358 #define REFLECTED_COMMAND_RANGE_HANDLER(idFirst, idLast, func) \ 359 if(uMsg == OCM_COMMAND && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \ 362 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \ 367 #define REFLECTED_COMMAND_RANGE_CODE_HANDLER(idFirst, idLast, code, func) \ 368 if(uMsg == OCM_COMMAND && code == HIWORD(wParam) && LOWORD(wParam) >= idFirst && LOWORD(wParam) <= idLast) \ 371 lResult = func(HIWORD(wParam), LOWORD(wParam), (HWND)lParam, bHandled); \ 376 #define REFLECTED_NOTIFY_HANDLER(id, cd, func) \ 377 if(uMsg == OCM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom && cd == ((LPNMHDR)lParam)->code) \ 380 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \ 385 #define REFLECTED_NOTIFY_ID_HANDLER(id, func) \ 386 if(uMsg == OCM_NOTIFY && id == ((LPNMHDR)lParam)->idFrom) \ 389 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \ 394 #define REFLECTED_NOTIFY_CODE_HANDLER(cd, func) \ 395 if(uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code) \ 398 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \ 403 #define REFLECTED_NOTIFY_RANGE_HANDLER(idFirst, idLast, func) \ 404 if(uMsg == OCM_NOTIFY && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \ 407 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \ 412 #define REFLECTED_NOTIFY_RANGE_CODE_HANDLER(idFirst, idLast, cd, func) \ 413 if(uMsg == OCM_NOTIFY && cd == ((LPNMHDR)lParam)->code && ((LPNMHDR)lParam)->idFrom >= idFirst && ((LPNMHDR)lParam)->idFrom <= idLast) \ 416 lResult = func((int)wParam, (LPNMHDR)lParam, bHandled); \ 421 #endif // (_ATL_VER < 0x0700) 427 #if (_ATL_VER < 0x0700) 435 _U_RECT(LPRECT lpRect) : m_lpRect(lpRect)
437 _U_RECT(RECT& rc) : m_lpRect(&rc)
447 _U_MENUorID(UINT nID) : m_hMenu((HMENU)LongToHandle(nID))
464 #endif // (_ATL_VER < 0x0700) 473 #if (_ATL_VER < 0x0700) 476 #define FORWARD_NOTIFICATIONS() \ 479 lResult = WTL::Atl3ForwardNotifications(m_hWnd, uMsg, wParam, lParam, bHandled); \ 484 static LRESULT Atl3ForwardNotifications(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
492 case WM_PARENTNOTIFY:
493 #endif // !_WIN32_WCE 504 case WM_CTLCOLOREDIT:
505 case WM_CTLCOLORLISTBOX:
506 case WM_CTLCOLORMSGBOX:
507 case WM_CTLCOLORSCROLLBAR:
508 case WM_CTLCOLORSTATIC:
509 lResult = ::SendMessage(::GetParent(hWnd), uMsg, wParam, lParam);
518 #endif // (_ATL_VER < 0x0700) 522 #endif // __ATLWINX_H__ Definition: atlwinx.h:452
Definition: atlwinx.h:432