From f57f984cc043142c8fe066def99f327ff10d013f Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Wed, 25 Jan 2006 20:26:59 +0000 Subject: [PATCH] Switched wxCheckWindowWndProc to always use the window class name for comparisons. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@37136 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/window.cpp | 32 ++++++++++---------------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/src/msw/window.cpp b/src/msw/window.cpp index 2e1ff1f6a4..8aa92e8e2f 100644 --- a/src/msw/window.cpp +++ b/src/msw/window.cpp @@ -1092,18 +1092,17 @@ void wxWindowMSW::DissociateHandle() bool wxCheckWindowWndProc(WXHWND hWnd, WXFARPROC WXUNUSED_IN_WINCE(wndProc)) { - // Unicows note: the code below works, but only because WNDCLASS contains - // original window handler rather that the unicows fake one. This may not - // be on purpose, though; if it stops working with future versions of - // unicows.dll, we can override unicows hooks by setting - // Unicows_{Set,Get}WindowLong and Unicows_RegisterClass to our own - // versions that keep track of fake<->real wnd proc mapping. - - // On WinCE (at least), the wndproc comparison doesn't work, - // so have to use something like this. -#ifdef __WXWINCE__ +// TODO: This list of window class names should be factored out so they can be +// managed in one place and then accessed from here and other places, such as +// wxApp::RegisterWindowClasses() and wxApp::UnregisterWindowClasses() + +#ifdef __WXWINCE__ extern wxChar *wxCanvasClassName; extern wxChar *wxCanvasClassNameNR; +#else + extern const wxChar *wxCanvasClassName; + extern const wxChar *wxCanvasClassNameNR; +#endif extern const wxChar *wxMDIFrameClassName; extern const wxChar *wxMDIFrameClassNameNoRedraw; extern const wxChar *wxMDIChildFrameClassName; @@ -1117,19 +1116,8 @@ bool wxCheckWindowWndProc(WXHWND hWnd, str == wxMDIChildFrameClassNameNoRedraw || str == _T("wxTLWHiddenParent")) return true; // Effectively means don't subclass - - return false; -#else - WNDCLASS cls; - if ( !::GetClassInfo(wxGetInstance(), wxGetWindowClass(hWnd), &cls) ) - { - wxLogLastError(_T("GetClassInfo")); - + else return false; - } - - return wndProc == (WXFARPROC)cls.lpfnWndProc; -#endif } // ----------------------------------------------------------------------------