Zhenbo Li : atl90: Added new dll.

Alexandre Julliard julliard at winehq.org
Tue Oct 15 13:27:13 CDT 2013


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

Author: Zhenbo Li <litimetal at gmail.com>
Date:   Sat Oct 12 12:11:58 2013 +0800

atl90: Added new dll.

---

 configure              |    2 +
 configure.ac           |    1 +
 dlls/atl90/Makefile.in |    7 ++++
 dlls/atl90/atl90.c     |   94 ++++++++++++++++++++++++++++++++++++++++++++++++
 dlls/atl90/atl90.spec  |   52 ++++++++++++++++++++++++++
 include/atlbase.h      |    1 +
 tools/make_specfiles   |    1 +
 7 files changed, 158 insertions(+), 0 deletions(-)

diff --git a/configure b/configure
index bfde1af..b523d82 100755
--- a/configure
+++ b/configure
@@ -881,6 +881,7 @@ enable_atl
 enable_atl100
 enable_atl110
 enable_atl80
+enable_atl90
 enable_authz
 enable_avicap32
 enable_avifil32
@@ -16679,6 +16680,7 @@ wine_fn_config_test dlls/atl100/tests atl100_test
 wine_fn_config_dll atl110 enable_atl110
 wine_fn_config_dll atl80 enable_atl80 implib
 wine_fn_config_test dlls/atl80/tests atl80_test
+wine_fn_config_dll atl90 enable_atl90
 wine_fn_config_dll authz enable_authz
 wine_fn_config_dll avicap32 enable_avicap32 implib
 wine_fn_config_dll avifil32 enable_avifil32 clean,implib,po
diff --git a/configure.ac b/configure.ac
index a2e1874..4f6e263 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2716,6 +2716,7 @@ WINE_CONFIG_TEST(dlls/atl100/tests)
 WINE_CONFIG_DLL(atl110)
 WINE_CONFIG_DLL(atl80,,[implib])
 WINE_CONFIG_TEST(dlls/atl80/tests)
+WINE_CONFIG_DLL(atl90)
 WINE_CONFIG_DLL(authz)
 WINE_CONFIG_DLL(avicap32,,[implib])
 WINE_CONFIG_DLL(avifil32,,[clean,implib,po])
diff --git a/dlls/atl90/Makefile.in b/dlls/atl90/Makefile.in
new file mode 100644
index 0000000..92b5d44
--- /dev/null
+++ b/dlls/atl90/Makefile.in
@@ -0,0 +1,7 @@
+MODULE    = atl90.dll
+IMPORTS   = atl100 oleaut32 user32 ole32
+EXTRADEFS = -D_ATL_VER=_ATL_VER_90
+
+C_SRCS = atl90.c
+
+ at MAKE_DLL_RULES@
diff --git a/dlls/atl90/atl90.c b/dlls/atl90/atl90.c
new file mode 100644
index 0000000..1b46dcb
--- /dev/null
+++ b/dlls/atl90/atl90.c
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2013 Zhenbo Li
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#define COBJMACROS
+
+#include "windef.h"
+#include "winbase.h"
+#include "winerror.h"
+#include "winuser.h"
+#include "atlbase.h"
+
+#include "wine/debug.h"
+#include "wine/unicode.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(atl);
+
+/***********************************************************************
+ *           AtlGetVersion              [atl90.@]
+ */
+DWORD WINAPI AtlGetVersion(void *reserved)
+{
+   return _ATL_VER;
+}
+
+/**********************************************************************
+ * AtlAxWin class window procedure
+ */
+static LRESULT CALLBACK AtlAxWin_wndproc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam )
+{
+    if ( msg == 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, msg, wparam, lparam );
+}
+
+BOOL WINAPI AtlAxWinInit(void)
+{
+    WNDCLASSEXW wcex;
+    const WCHAR AtlAxWin90[] = {'A','t','l','A','x','W','i','n','9','0',0};
+    const WCHAR AtlAxWinLic90[] = {'A','t','l','A','x','W','i','n','L','i','c','9','0',0};
+
+    FIXME("semi-stub\n");
+
+    if ( FAILED( OleInitialize(NULL) ) )
+        return FALSE;
+
+    wcex.cbSize        = sizeof(wcex);
+    wcex.style         = CS_GLOBALCLASS | CS_DBLCLKS;
+    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 = AtlAxWin90;
+    if ( !RegisterClassExW( &wcex ) )
+        return FALSE;
+
+    wcex.lpszClassName = AtlAxWinLic90;
+    if ( !RegisterClassExW( &wcex ) )
+        return FALSE;
+
+    return TRUE;
+}
diff --git a/dlls/atl90/atl90.spec b/dlls/atl90/atl90.spec
new file mode 100644
index 0000000..aed22bd
--- /dev/null
+++ b/dlls/atl90/atl90.spec
@@ -0,0 +1,52 @@
+10 stdcall AtlAdvise(ptr ptr ptr ptr) atl100.AtlAdvise
+11 stdcall AtlUnadvise(ptr ptr long) atl100.AtlUnadvise
+12 stdcall AtlFreeMarshalStream(ptr) atl100.AtlFreeMarshalStream
+13 stdcall AtlMarshalPtrInProc(ptr ptr ptr) atl100.AtlMarshalPtrInProc
+14 stdcall AtlUnmarshalPtr(ptr ptr ptr) atl100.AtlUnmarshalPtr
+15 stdcall AtlComModuleGetClassObject(ptr ptr ptr ptr) atl100.AtlComModuleGetClassObject
+17 stdcall AtlComModuleRegisterClassObjects(ptr long long) atl100.AtlComModuleRegisterClassObjects
+20 stub AtlComModuleRevokeClassObjects
+22 stdcall AtlComModuleUnregisterServer(ptr long ptr) atl100.AtlComModuleUnregisterServer
+23 stdcall AtlUpdateRegistryFromResourceD(long wstr long ptr ptr) atl100.AtlUpdateRegistryFromResourceD
+24 stdcall AtlWaitWithMessageLoop(long) atl100.AtlWaitWithMessageLoop
+25 stub AtlSetErrorInfo
+26 stdcall AtlCreateTargetDC(long ptr) atl100.AtlCreateTargetDC
+27 stdcall AtlHiMetricToPixel(ptr ptr) atl100.AtlHiMetricToPixel
+28 stdcall AtlPixelToHiMetric(ptr ptr) atl100.AtlPixelToHiMetric
+29 stub AtlDevModeW2A
+30 stdcall AtlComPtrAssign(ptr ptr) atl100.AtlComPtrAssign
+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
+42 stdcall AtlAxWinInit()
+43 stdcall AtlWinModuleAddCreateWndData(ptr ptr ptr) atl100.AtlWinModuleAddCreateWndData
+44 stdcall AtlWinModuleExtractCreateWndData(ptr) atl100.AtlWinModuleExtractCreateWndData
+45 stub AtlWinModuleRegisterWndClassInfoW
+46 stub AtlWinModuleRegisterWndClassInfoA
+47 stdcall AtlAxGetControl(long ptr) atl100.AtlAxGetControl
+48 stdcall AtlAxGetHost(long ptr) atl100.AtlAxGetHost
+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
+52 stdcall AtlIPersistPropertyBag_Load(ptr ptr ptr ptr ptr) atl100.AtlIPersistPropertyBag_Load
+53 stub AtlIPersistPropertyBag_Save
+54 stdcall AtlGetObjectSourceInterface(ptr ptr ptr ptr ptr) atl100.AtlGetObjectSourceInterface
+56 stdcall AtlLoadTypeLib(long wstr ptr ptr) atl100.AtlLoadTypeLib
+58 stdcall AtlModuleAddTermFunc(ptr ptr long) atl100.AtlModuleAddTermFunc
+59 stub AtlAxCreateControlLic
+60 stub AtlAxCreateControlLicEx
+61 stdcall AtlCreateRegistrar(ptr) atl100.AtlCreateRegistrar
+62 stub AtlWinModuleRegisterClassExW
+63 stub AtlWinModuleRegisterClassExA
+64 stdcall AtlCallTermFunc(ptr) atl100.AtlCallTermFunc
+65 stdcall AtlWinModuleInit(ptr) atl100.AtlWinModuleInit
+66 stub AtlWinModuleTerm
+67 stdcall AtlSetPerUserRegistration(long) atl100.AtlSetPerUserRegistration
+68 stdcall AtlGetPerUserRegistration(ptr) atl100.AtlGetPerUserRegistration
diff --git a/include/atlbase.h b/include/atlbase.h
index 660fbf5..bcd634e 100644
--- a/include/atlbase.h
+++ b/include/atlbase.h
@@ -28,6 +28,7 @@
 #define _ATL_VER_30  0x0300
 #define _ATL_VER_70  0x0700
 #define _ATL_VER_80  0x0800
+#define _ATL_VER_90  0x0900
 #define _ATL_VER_100 0x0a00
 #define _ATL_VER_110 0x0b00
 
diff --git a/tools/make_specfiles b/tools/make_specfiles
index 5314c41..dbfa5e3 100755
--- a/tools/make_specfiles
+++ b/tools/make_specfiles
@@ -123,6 +123,7 @@ my @dll_groups =
   "atl110",
   "atl",
   "atl80",
+  "atl90",
  ],
  [
   "advapi32",




More information about the wine-cvs mailing list