Jacek Caban : atl: Share atl_ax.c with atl100.

Alexandre Julliard julliard at winehq.org
Thu Feb 13 13:26:11 CST 2014


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Feb 13 19:02:48 2014 +0100

atl: Share atl_ax.c with atl100.

---

 dlls/atl/Makefile.in |    5 ++++-
 dlls/atl/atl.spec    |   18 +++++++++---------
 dlls/atl/atl_main.c  |   48 ------------------------------------------------
 dlls/atl100/atl_ax.c |   17 +++++++++++------
 4 files changed, 24 insertions(+), 64 deletions(-)

diff --git a/dlls/atl/Makefile.in b/dlls/atl/Makefile.in
index 8cc63bb..3fc9591 100644
--- a/dlls/atl/Makefile.in
+++ b/dlls/atl/Makefile.in
@@ -2,7 +2,10 @@ MODULE    = atl.dll
 IMPORTLIB = atl
 IMPORTS   = uuid atl80 atl100 oleaut32 ole32 user32
 EXTRADEFS = -D_ATL_VER=_ATL_VER_30
+PARENTSRC = ../atl100
 
-C_SRCS = atl_main.c
+C_SRCS = \
+	atl_ax.c \
+	atl_main.c
 
 IDL_SRCS = atl_classes.idl
diff --git a/dlls/atl/atl.spec b/dlls/atl/atl.spec
index 4737580..2dca559 100644
--- a/dlls/atl/atl.spec
+++ b/dlls/atl/atl.spec
@@ -26,20 +26,20 @@
 31 stdcall AtlComQIPtrAssign(ptr ptr ptr) atl100.AtlComQIPtrAssign
 32 stdcall AtlInternalQueryInterface(ptr ptr ptr ptr) atl100.AtlInternalQueryInterface
 34 stdcall AtlGetVersion(ptr)
-35 stdcall AtlAxDialogBoxW(long wstr long ptr long) atl100.AtlAxDialogBoxW
-36 stdcall AtlAxDialogBoxA(long str long ptr long) atl100.AtlAxDialogBoxA
-37 stdcall AtlAxCreateDialogW(long wstr long ptr long) atl100.AtlAxCreateDialogW
-38 stdcall AtlAxCreateDialogA(long str long ptr long) atl100.AtlAxCreateDialogA
-39 stdcall AtlAxCreateControl(ptr ptr ptr ptr) atl100.AtlAxCreateControl
-40 stdcall AtlAxCreateControlEx(ptr ptr ptr ptr ptr ptr ptr) atl100.AtlAxCreateControlEx
-41 stdcall AtlAxAttachControl(ptr ptr ptr) atl100.AtlAxAttachControl
+35 stdcall AtlAxDialogBoxW(long wstr long ptr long)
+36 stdcall AtlAxDialogBoxA(long str long ptr long)
+37 stdcall AtlAxCreateDialogW(long wstr long ptr long)
+38 stdcall AtlAxCreateDialogA(long str long ptr long)
+39 stdcall AtlAxCreateControl(ptr ptr ptr ptr)
+40 stdcall AtlAxCreateControlEx(ptr ptr ptr ptr ptr ptr ptr)
+41 stdcall AtlAxAttachControl(ptr ptr ptr)
 42 stdcall AtlAxWinInit()
 43 stdcall AtlModuleAddCreateWndData(ptr ptr ptr)
 44 stdcall AtlModuleExtractCreateWndData(ptr)
 45 stdcall AtlModuleRegisterWndClassInfoW(ptr ptr ptr)
 46 stdcall AtlModuleRegisterWndClassInfoA(ptr ptr ptr)
-47 stdcall AtlAxGetControl(long ptr) atl100.AtlAxGetControl
-48 stdcall AtlAxGetHost(long ptr) atl100.AtlAxGetHost
+47 stdcall AtlAxGetControl(long ptr)
+48 stdcall AtlAxGetHost(long ptr)
 49 stdcall AtlRegisterClassCategoriesHelper(ptr ptr long) atl100.AtlRegisterClassCategoriesHelper
 50 stdcall AtlIPersistStreamInit_Load(ptr ptr ptr ptr) atl100.AtlIPersistStreamInit_Load
 51 stdcall AtlIPersistStreamInit_Save(ptr long ptr ptr ptr) atl100.AtlIPersistStreamInit_Save
diff --git a/dlls/atl/atl_main.c b/dlls/atl/atl_main.c
index 509d4bb..6288ff8 100644
--- a/dlls/atl/atl_main.c
+++ b/dlls/atl/atl_main.c
@@ -593,51 +593,3 @@ DWORD WINAPI AtlGetVersion(void *pReserved)
     TRACE("version %04x (%p)\n", _ATL_VER, pReserved);
     return _ATL_VER;
 }
-
-/**********************************************************************
- * AtlAxWin class window procedure
- */
-static LRESULT CALLBACK AtlAxWin_wndproc( HWND hWnd, UINT wMsg, WPARAM wParam, LPARAM lParam )
-{
-    if ( wMsg == WM_CREATE )
-    {
-            DWORD len = GetWindowTextLengthW( hWnd ) + 1;
-            WCHAR *ptr = HeapAlloc( GetProcessHeap(), 0, len*sizeof(WCHAR) );
-            if (!ptr)
-                return 1;
-            GetWindowTextW( hWnd, ptr, len );
-            AtlAxCreateControlEx( ptr, hWnd, NULL, NULL, NULL, NULL, NULL );
-            HeapFree( GetProcessHeap(), 0, ptr );
-            return 0;
-    }
-    return DefWindowProcW( hWnd, wMsg, wParam, lParam );
-}
-
-BOOL WINAPI AtlAxWinInit(void)
-{
-    WNDCLASSEXW wcex;
-    const WCHAR AtlAxWin[] = {'A','t','l','A','x','W','i','n',0};
-
-    FIXME("version %04x semi-stub\n", _ATL_VER);
-
-    if ( FAILED( OleInitialize(NULL) ) )
-        return FALSE;
-
-    wcex.cbSize        = sizeof(wcex);
-    wcex.style         = CS_GLOBALCLASS;
-    wcex.cbClsExtra    = 0;
-    wcex.cbWndExtra    = 0;
-    wcex.hInstance     = GetModuleHandleW( NULL );
-    wcex.hIcon         = NULL;
-    wcex.hCursor       = NULL;
-    wcex.hbrBackground = NULL;
-    wcex.lpszMenuName  = NULL;
-    wcex.hIconSm       = 0;
-
-    wcex.lpfnWndProc   = AtlAxWin_wndproc;
-    wcex.lpszClassName = AtlAxWin;
-    if ( !RegisterClassExW( &wcex ) )
-        return FALSE;
-
-    return TRUE;
-}
diff --git a/dlls/atl100/atl_ax.c b/dlls/atl100/atl_ax.c
index be52917..0a16010 100644
--- a/dlls/atl100/atl_ax.c
+++ b/dlls/atl100/atl_ax.c
@@ -87,7 +87,9 @@ BOOL WINAPI AtlAxWinInit(void)
 {
     WNDCLASSEXW wcex;
 
-#if _ATL_VER == _ATL_VER_80
+#if _ATL_VER <= _ATL_VER_30
+#define ATL_NAME_SUFFIX 0
+#elif _ATL_VER == _ATL_VER_80
 #define ATL_NAME_SUFFIX '8','0',0
 #elif _ATL_VER == _ATL_VER_90
 #define ATL_NAME_SUFFIX '9','0',0
@@ -100,7 +102,6 @@ BOOL WINAPI AtlAxWinInit(void)
 #endif
 
     const WCHAR AtlAxWinW[] = {'A','t','l','A','x','W','i','n',ATL_NAME_SUFFIX};
-    const WCHAR AtlAxWinLicW[] = {'A','t','l','A','x','W','i','n','L','i','c',ATL_NAME_SUFFIX};
 
     FIXME("version %04x semi-stub\n", _ATL_VER);
 
@@ -108,7 +109,7 @@ BOOL WINAPI AtlAxWinInit(void)
         return FALSE;
 
     wcex.cbSize        = sizeof(wcex);
-    wcex.style         = CS_GLOBALCLASS | CS_DBLCLKS;
+    wcex.style         = CS_GLOBALCLASS | (_ATL_VER > _ATL_VER_30 ? CS_DBLCLKS : 0);
     wcex.cbClsExtra    = 0;
     wcex.cbWndExtra    = 0;
     wcex.hInstance     = GetModuleHandleW( NULL );
@@ -123,9 +124,13 @@ BOOL WINAPI AtlAxWinInit(void)
     if ( !RegisterClassExW( &wcex ) )
         return FALSE;
 
-    wcex.lpszClassName = AtlAxWinLicW;
-    if ( !RegisterClassExW( &wcex ) )
-        return FALSE;
+    if(_ATL_VER > _ATL_VER_30) {
+        const WCHAR AtlAxWinLicW[] = {'A','t','l','A','x','W','i','n','L','i','c',ATL_NAME_SUFFIX};
+
+        wcex.lpszClassName = AtlAxWinLicW;
+        if ( !RegisterClassExW( &wcex ) )
+            return FALSE;
+    }
 
     return TRUE;
 }




More information about the wine-cvs mailing list