* COPYRIGHT: Copyright 2018 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
*/
#ifndef _INC_MSGDUMP
-#define _INC_MSGDUMP
+#define _INC_MSGDUMP 2 /* Version 2 */
/*
* NOTE: MD_msgdump function in this file provides Win32API message dump feature.
*/
#pragma once
-#include "winxx.h" /* An unofficial extension of <windowsx.h>. */
+#ifndef _INC_WINXX
+ #include "winxx.h" /* An unofficial extension of <windowsx.h>. */
+#endif
#include <strsafe.h>
#ifndef MSGDUMP_TPRINTF
return NULL;
}
+#ifdef _UNDOCUSER_H
+ static __inline LRESULT MSGDUMP_API
+ MD_OnDropObject(HWND hwnd, WPARAM wParam, LPARAM lParam)
+ {
+ MSGDUMP_TPRINTF(TEXT("%sWM_DROPOBJECT(hwnd:%p, wParam:%p, lParam:%p)\n"),
+ MSGDUMP_PREFIX, (void *)hwnd, (void *)wParam, (void *)lParam);
+ return 0;
+ }
+
+ static __inline LRESULT MSGDUMP_API
+ MD_OnQueryDropObject(HWND hwnd, WPARAM wParam, LPARAM lParam)
+ {
+ MSGDUMP_TPRINTF(TEXT("%sWM_QUERYDROPOBJECT(hwnd:%p, wParam:%p, lParam:%p)\n"),
+ MSGDUMP_PREFIX, (void *)hwnd, (void *)wParam, (void *)lParam);
+ return 0;
+ }
+
+ static __inline LRESULT MSGDUMP_API
+ MD_OnBeginDrag(HWND hwnd, WPARAM wParam, LPARAM lParam)
+ {
+ MSGDUMP_TPRINTF(TEXT("%sWM_BEGINDRAG(hwnd:%p, wParam:%p, lParam:%p)\n"),
+ MSGDUMP_PREFIX, (void *)hwnd, (void *)wParam, (void *)lParam);
+ return 0;
+ }
+
+ static __inline LRESULT MSGDUMP_API
+ MD_OnDragLoop(HWND hwnd, WPARAM wParam, LPARAM lParam)
+ {
+ MSGDUMP_TPRINTF(TEXT("%sWM_DRAGLOOP(hwnd:%p, wParam:%p, lParam:%p)\n"),
+ MSGDUMP_PREFIX, (void *)hwnd, (void *)wParam, (void *)lParam);
+ return 0;
+ }
+
+ static __inline LRESULT MSGDUMP_API
+ MD_OnDragSelect(HWND hwnd, WPARAM wParam, LPARAM lParam)
+ {
+ MSGDUMP_TPRINTF(TEXT("%sWM_DRAGSELECT(hwnd:%p, wParam:%p, lParam:%p)\n"),
+ MSGDUMP_PREFIX, (void *)hwnd, (void *)wParam, (void *)lParam);
+ return 0;
+ }
+
+ static __inline LRESULT MSGDUMP_API
+ MD_OnDragMove(HWND hwnd, WPARAM wParam, LPARAM lParam)
+ {
+ MSGDUMP_TPRINTF(TEXT("%sWM_DRAGMOVE(hwnd:%p, wParam:%p, lParam:%p)\n"),
+ MSGDUMP_PREFIX, (void *)hwnd, (void *)wParam, (void *)lParam);
+ return 0;
+ }
+#endif
+
static __inline HMENU MSGDUMP_API
MD_MDISetMenu(HWND hwnd, BOOL fRefresh, HMENU hmenuFrame, HMENU hmenuWindow)
{
HANDLE_MSG(hwnd, WM_MDICASCADE, MD_MDICascade);
HANDLE_MSG(hwnd, WM_MDIICONARRANGE, MD_MDIIconArrange);
HANDLE_MSG(hwnd, WM_MDIGETACTIVE, MD_MDIGetActive);
+#ifdef _UNDOCUSER_H
+ HANDLE_MSG(hwnd, WM_DROPOBJECT, MD_OnDropObject);
+ HANDLE_MSG(hwnd, WM_QUERYDROPOBJECT, MD_OnQueryDropObject);
+ HANDLE_MSG(hwnd, WM_BEGINDRAG, MD_OnBeginDrag);
+ HANDLE_MSG(hwnd, WM_DRAGLOOP, MD_OnDragLoop);
+ HANDLE_MSG(hwnd, WM_DRAGSELECT, MD_OnDragSelect);
+ HANDLE_MSG(hwnd, WM_DRAGMOVE, MD_OnDragMove);
+#endif
HANDLE_MSG(hwnd, WM_MDISETMENU, MD_MDISetMenu);
HANDLE_MSG(hwnd, WM_ENTERSIZEMOVE, MD_OnEnterSizeMove);
HANDLE_MSG(hwnd, WM_EXITSIZEMOVE, MD_OnExitSizeMove);
* PROJECT: ReactOS header files
* LICENSE: CC-BY-4.0 (https://spdx.org/licenses/CC-BY-4.0.html)
* PURPOSE: An unofficial extension of <windowsx.h>
- * COPYRIGHT: Copyright 2017-2018 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
+ * COPYRIGHT: Copyright 2017-2019 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
*/
#ifndef _INC_WINXX
-#define _INC_WINXX
+#define _INC_WINXX 2 /* Version 2 */
#pragma once
#ifndef HANDLE_WM_NULL
#define HANDLE_WM_NULL(hwnd, wParam, lParam, fn) \
((fn)((hwnd)), 0L)
-#define FORWARD_WM_NULL(hwnd, compactRatio, fn) \
+#define FORWARD_WM_NULL(hwnd, fn) \
(void)((fn)((hwnd), WM_NULL, 0, 0L), 0L)
#endif
#define HANDLE_SBM_GETSCROLLBARINFO(hwnd, wParam, lParam, fn) \
(LRESULT)(INT_PTR)(BOOL)(fn)((hwnd), (LPSCROLLBARINFO)(lParam))
+#ifdef _UNDOCUSER_H /* UNDOCUMENTED */
+ /* LRESULT Cls_OnDropObject(HWND hwnd, WPARAM wParam, LPARAM lParam) */
+ #ifndef HANDLE_WM_DROPOBJECT
+ #define HANDLE_WM_DROPOBJECT(hwnd, wParam, lParam, fn) \
+ (LRESULT)(fn)((hwnd), (wParam), (lParam))
+ #define FORWARD_WM_DROPOBJECT(hwnd, wParam, lParam, fn) \
+ (LRESULT)((fn)((hwnd), WM_DROPOBJECT, wParam, lParam))
+ #endif
+
+ /* LRESULT Cls_OnQueryDropObject(HWND hwnd, WPARAM wParam, LPARAM lParam) */
+ #ifndef HANDLE_WM_QUERYDROPOBJECT
+ #define HANDLE_WM_QUERYDROPOBJECT(hwnd, wParam, lParam, fn) \
+ (LRESULT)(fn)((hwnd), (wParam), (lParam))
+ #define FORWARD_WM_QUERYDROPOBJECT(hwnd, wParam, lParam, fn) \
+ (LRESULT)((fn)((hwnd), WM_QUERYDROPOBJECT, wParam, lParam))
+ #endif
+
+ /* LRESULT Cls_OnBeginDrag(HWND hwnd, WPARAM wParam, LPARAM lParam) */
+ #ifndef HANDLE_WM_BEGINDRAG
+ #define HANDLE_WM_BEGINDRAG(hwnd, wParam, lParam, fn) \
+ (LRESULT)(fn)((hwnd), (wParam), (lParam))
+ #define FORWARD_WM_BEGINDRAG(hwnd, wParam, lParam, fn) \
+ (LRESULT)((fn)((hwnd), WM_BEGINDRAG, wParam, lParam))
+ #endif
+
+ /* LRESULT Cls_OnDragLoop(HWND hwnd, WPARAM wParam, LPARAM lParam) */
+ #ifndef HANDLE_WM_DRAGLOOP
+ #define HANDLE_WM_DRAGLOOP(hwnd, wParam, lParam, fn) \
+ (LRESULT)(fn)((hwnd), (wParam), (lParam))
+ #define FORWARD_WM_DRAGLOOP(hwnd, wParam, lParam, fn) \
+ (LRESULT)((fn)((hwnd), WM_DRAGLOOP, wParam, lParam))
+ #endif
+
+ /* LRESULT Cls_OnDragSelect(HWND hwnd, WPARAM wParam, LPARAM lParam) */
+ #ifndef HANDLE_WM_DRAGSELECT
+ #define HANDLE_WM_DRAGSELECT(hwnd, wParam, lParam, fn) \
+ (LRESULT)(fn)((hwnd), (wParam), (lParam))
+ #define FORWARD_WM_DRAGSELECT(hwnd, wParam, lParam, fn) \
+ (LRESULT)((fn)((hwnd), WM_DRAGSELECT, wParam, lParam))
+ #endif
+
+ /* LRESULT Cls_OnDragMove(HWND hwnd, WPARAM wParam, LPARAM lParam) */
+ #ifndef HANDLE_WM_DRAGMOVE
+ #define HANDLE_WM_DRAGMOVE(hwnd, wParam, lParam, fn) \
+ (LRESULT)(fn)((hwnd), (wParam), (lParam))
+ #define FORWARD_WM_DRAGMOVE(hwnd, wParam, lParam, fn) \
+ (LRESULT)((fn)((hwnd), WM_DRAGMOVE, wParam, lParam))
+ #endif
+#endif
+
#endif