Alexandre Julliard : atl: Only return a window procedure in AtlModuleRegisterWndClassInfoA/ W when subclassing.

Alexandre Julliard julliard at winehq.org
Wed May 4 13:47:39 CDT 2011


Module: wine
Branch: master
Commit: a4d0d6348958cf3563e3e8604bfcaa825f9d14b9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=a4d0d6348958cf3563e3e8604bfcaa825f9d14b9

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Tue May  3 20:52:24 2011 +0200

atl: Only return a window procedure in AtlModuleRegisterWndClassInfoA/W when subclassing.

---

 dlls/atl/atl_main.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/atl/atl_main.c b/dlls/atl/atl_main.c
index 8db4311..78ef7ce 100644
--- a/dlls/atl/atl_main.c
+++ b/dlls/atl/atl_main.c
@@ -464,6 +464,9 @@ ATOM WINAPI AtlModuleRegisterWndClassInfoA(_ATL_MODULEA *pm, _ATL_WNDCLASSINFOA
 
         TRACE("wci->m_wc.lpszClassName = %s\n", wci->m_wc.lpszClassName);
 
+        if (wci->m_lpszOrigName)
+            FIXME( "subclassing %s not implemented\n", debugstr_a(wci->m_lpszOrigName));
+
         if (!wci->m_wc.lpszClassName)
         {
             snprintf(wci->m_szAutoName, sizeof(wci->m_szAutoName), "ATL%08lx", (UINT_PTR)wci);
@@ -482,7 +485,8 @@ ATOM WINAPI AtlModuleRegisterWndClassInfoA(_ATL_MODULEA *pm, _ATL_WNDCLASSINFOA
         wci->pWndProc = wci->m_wc.lpfnWndProc;
         wci->m_atom = atom;
     }
-    *pProc = wci->pWndProc;
+
+    if (wci->m_lpszOrigName) *pProc = wci->pWndProc;
 
     TRACE("returning 0x%04x\n", atom);
     return atom;
@@ -519,6 +523,9 @@ ATOM WINAPI AtlModuleRegisterWndClassInfoW(_ATL_MODULEW *pm, _ATL_WNDCLASSINFOW
 
         TRACE("wci->m_wc.lpszClassName = %s\n", debugstr_w(wci->m_wc.lpszClassName));
 
+        if (wci->m_lpszOrigName)
+            FIXME( "subclassing %s not implemented\n", debugstr_w(wci->m_lpszOrigName));
+
         if (!wci->m_wc.lpszClassName)
         {
             static const WCHAR szFormat[] = {'A','T','L','%','0','8','l','x',0};
@@ -538,7 +545,8 @@ ATOM WINAPI AtlModuleRegisterWndClassInfoW(_ATL_MODULEW *pm, _ATL_WNDCLASSINFOW
         wci->pWndProc = wci->m_wc.lpfnWndProc;
         wci->m_atom = atom;
     }
-    *pProc = wci->pWndProc;
+
+    if (wci->m_lpszOrigName) *pProc = wci->pWndProc;
 
     TRACE("returning 0x%04x\n", atom);
     return atom;




More information about the wine-cvs mailing list