Patrik Stridvall : user32: Show the GCL{,
P}_* constant names in debug messages.
Alexandre Julliard
julliard at wine.codeweavers.com
Sun Dec 24 09:38:03 CST 2006
Module: wine
Branch: master
Commit: 4189a89d41caa63df756c4c8c596c7fd01019527
URL: http://source.winehq.org/git/wine.git/?a=commit;h=4189a89d41caa63df756c4c8c596c7fd01019527
Author: Patrik Stridvall <patrik at stridvall.se>
Date: Sat Dec 23 20:38:13 2006 +0100
user32: Show the GCL{,P}_* constant names in debug messages.
---
dlls/user32/class.c | 3 ++-
dlls/user32/spy.c | 35 +++++++++++++++++++++++++++++++++++
dlls/user32/user_private.h | 1 +
3 files changed, 38 insertions(+), 1 deletions(-)
diff --git a/dlls/user32/class.c b/dlls/user32/class.c
index 61edcc6..9817735 100644
--- a/dlls/user32/class.c
+++ b/dlls/user32/class.c
@@ -673,7 +673,8 @@ static ULONG_PTR CLASS_GetClassLong( HWN
case GCLP_HICONSM:
case GCLP_WNDPROC:
case GCLP_MENUNAME:
- FIXME( "offset %d not supported on other process window %p\n", offset, hwnd );
+ FIXME( "offset %d (%s) not supported on other process window %p\n",
+ offset, SPY_GetClassLongOffsetName(offset), hwnd );
SetLastError( ERROR_INVALID_HANDLE );
break;
case GCL_STYLE:
diff --git a/dlls/user32/spy.c b/dlls/user32/spy.c
index 451b0b2..164101e 100644
--- a/dlls/user32/spy.c
+++ b/dlls/user32/spy.c
@@ -44,6 +44,24 @@ WINE_DEFAULT_DEBUG_CHANNEL(message);
#define DEBUG_SPY 0
+static const char * const ClassLongOffsetNames[] =
+{
+ "GCLP_MENUNAME", /* -8 */
+ "GCLP_HBRBACKGROUND", /* -10 */
+ "GCLP_HCURSOR", /* -12 */
+ "GCLP_HICON", /* -14 */
+ "GCLP_HMODULE", /* -16 */
+ "GCL_CBWNDEXTRA", /* -18 */
+ "GCL_CBCLSEXTRA", /* -20 */
+ "?",
+ "GCLP_WNDPROC", /* -24 */
+ "GCL_STYLE", /* -26 */
+ "?",
+ "?",
+ "GCW_ATOM", /* -32 */
+ "GCLP_HICONSM", /* -34 */
+};
+
static const char * const MessageTypeNames[SPY_MAX_MSGNUM + 1] =
{
"WM_NULL", /* 0x00 */
@@ -2026,6 +2044,23 @@ static const USER_MSG *SPY_Bsearch_Msg(
}
/***********************************************************************
+ * SPY_GetClassLongOffsetName
+ *
+ * Gets the name of a class long offset.
+ */
+const char *SPY_GetClassLongOffsetName( INT offset )
+{
+ INT index;
+ if (offset < 0 && offset % 2 == 0 && ((index = -(offset + 8) / 2) <
+ sizeof(ClassLongOffsetNames) / sizeof(*ClassLongOffsetNames)))
+ {
+ return ClassLongOffsetNames[index];
+ }
+
+ return "?";
+}
+
+/***********************************************************************
* SPY_GetClassName
*
* Sets the value of "wnd_class" member of the instance structure.
diff --git a/dlls/user32/user_private.h b/dlls/user32/user_private.h
index ae27884..f939e4e 100644
--- a/dlls/user32/user_private.h
+++ b/dlls/user32/user_private.h
@@ -239,6 +239,7 @@ extern BOOL USER_SetWindowPos( WINDOWPOS
#define SPY_RESULT_DEFWND16 0x0004
#define SPY_RESULT_DEFWND 0x0005
+extern const char *SPY_GetClassLongOffsetName( INT offset );
extern const char *SPY_GetMsgName( UINT msg, HWND hWnd );
extern const char *SPY_GetVKeyName(WPARAM wParam);
extern void SPY_EnterMessage( INT iFlag, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam );
More information about the wine-cvs
mailing list