msvcm90: Add new dll based on msvcm80.

Vincent Povirk madewokherd at gmail.com
Tue May 8 08:29:07 CDT 2012


-------------- next part --------------
From bf844564492e978656c11c62ad75cb84c1c0d97d Mon Sep 17 00:00:00 2001
From: Vincent Povirk <vincent at codeweavers.com>
Date: Mon, 7 May 2012 10:31:31 -0500
Subject: [PATCH 1/3] msvcm90: Add new dll based on msvcm80.

---
 configure.ac                |    1 +
 dlls/msvcm80/Makefile.in    |    1 +
 dlls/msvcm90/Makefile.in    |    7 ++
 dlls/msvcm90/msvcm90.spec   |  181 +++++++++++++++++++++++++++++++++++++++++++
 dlls/msvcm90/msvcm90_main.c |   45 +++++++++++
 5 files changed, 235 insertions(+)
 create mode 100644 dlls/msvcm90/Makefile.in
 create mode 100644 dlls/msvcm90/msvcm90.spec
 create mode 100644 dlls/msvcm90/msvcm90_main.c

diff --git a/configure.ac b/configure.ac
index 857b99b..f7701e2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2698,6 +2698,7 @@ WINE_CONFIG_DLL(mstask)
 WINE_CONFIG_TEST(dlls/mstask/tests)
 WINE_CONFIG_DLL(msvcirt)
 WINE_CONFIG_DLL(msvcm80)
+WINE_CONFIG_DLL(msvcm90)
 WINE_CONFIG_DLL(msvcp100)
 WINE_CONFIG_DLL(msvcp60)
 WINE_CONFIG_DLL(msvcp70)
diff --git a/dlls/msvcm80/Makefile.in b/dlls/msvcm80/Makefile.in
index 50a1f90..a3a7868 100644
--- a/dlls/msvcm80/Makefile.in
+++ b/dlls/msvcm80/Makefile.in
@@ -1,4 +1,5 @@
 MODULE    = msvcm80.dll
+IMPORTLIB = msvcm80
 
 C_SRCS = \
 	msvcm80_main.c
diff --git a/dlls/msvcm90/Makefile.in b/dlls/msvcm90/Makefile.in
new file mode 100644
index 0000000..2234f29
--- /dev/null
+++ b/dlls/msvcm90/Makefile.in
@@ -0,0 +1,7 @@
+MODULE    = msvcm90.dll
+IMPORTS   = msvcm80
+
+C_SRCS = \
+	msvcm90_main.c
+
+ at MAKE_DLL_RULES@
diff --git a/dlls/msvcm90/msvcm90.spec b/dlls/msvcm90/msvcm90.spec
new file mode 100644
index 0000000..319e506
--- /dev/null
+++ b/dlls/msvcm90/msvcm90.spec
@@ -0,0 +1,181 @@
+@ stub -arch=win32 ?DoCallBackInDefaultDomain@<CrtImplementationDetails>@@YAXP6GJPAX at Z0@Z
+@ stub -arch=win64 ?DoCallBackInDefaultDomain@<CrtImplementationDetails>@@YAXP6AJPEAX at Z0@Z
+@ cdecl ?DoDllLanguageSupportValidation@<CrtImplementationDetails>@@YAXXZ() msvcm80.?DoDllLanguageSupportValidation@<CrtImplementationDetails>@@YAXXZ
+@ cdecl -arch=win32 ?RegisterModuleUninitializer@<CrtImplementationDetails>@@YAXP$AAVEventHandler at System@@@Z(ptr) msvcm80.?RegisterModuleUninitializer@<CrtImplementationDetails>@@YAXP$AAVEventHandler at System@@@Z
+@ cdecl -arch=win64 ?RegisterModuleUninitializer@<CrtImplementationDetails>@@YAXPE$AAVEventHandler at System@@@Z(ptr) msvcm80.?RegisterModuleUninitializer@<CrtImplementationDetails>@@YAXPE$AAVEventHandler at System@@@Z
+@ stub -arch=win32 ?ThrowModuleLoadException@<CrtImplementationDetails>@@YAXP$AAVString at System@@@Z
+@ stub -arch=win64 ?ThrowModuleLoadException@<CrtImplementationDetails>@@YAXPE$AAVString at System@@@Z
+@ stub -arch=win32 ?ThrowModuleLoadException@<CrtImplementationDetails>@@YAXP$AAVString at System@@P$AAVException at 3@@Z
+@ stub -arch=win64 ?ThrowModuleLoadException@<CrtImplementationDetails>@@YAXPE$AAVString at System@@PE$AAVException at 3@@Z
+@ stub -arch=win32 ?ThrowNestedModuleLoadException@<CrtImplementationDetails>@@YAXP$AAVException at System@@0 at Z
+@ stub -arch=win64 ?ThrowNestedModuleLoadException@<CrtImplementationDetails>@@YAXPE$AAVException at System@@0 at Z
+@ stub -arch=win32 ?_Addstd at ios_base@std@@SAXPAV12@@Z
+@ stub -arch=win64 ?_Addstd at ios_base@std@@SAXPEAV12@@Z
+@ stub ?_Atexit@@YAXP6AXXZ at Z
+@ stub -arch=win32 ?_BADOFF_func at std@@YAABJXZ
+@ stub -arch=win64 ?_BADOFF_func at std@@YAAEB_JXZ
+@ stub -arch=win32 ?_Cerr_func at std@@YAAAV?$basic_ostream at DU?$char_traits at D@std@@@1 at XZ
+@ stub -arch=win64 ?_Cerr_func at std@@YAAEAV?$basic_ostream at DU?$char_traits at D@std@@@1 at XZ
+@ stub -arch=win32 ?_Cin_func at std@@YAAAV?$basic_istream at DU?$char_traits at D@std@@@1 at XZ
+@ stub -arch=win64 ?_Cin_func at std@@YAAEAV?$basic_istream at DU?$char_traits at D@std@@@1 at XZ
+@ stub -arch=win32 ?_Clocptr_func at _Locimp@locale at std@@CAAAPAV123 at XZ
+@ stub -arch=win64 ?_Clocptr_func at _Locimp@locale at std@@CAAEAPEAV123 at XZ
+@ stub -arch=win32 ?_Clog_func at std@@YAAAV?$basic_ostream at DU?$char_traits at D@std@@@1 at XZ
+@ stub -arch=win64 ?_Clog_func at std@@YAAEAV?$basic_ostream at DU?$char_traits at D@std@@@1 at XZ
+@ stub -arch=win32 ?_Cout_func at std@@YAAAV?$basic_ostream at DU?$char_traits at D@std@@@1 at XZ
+@ stub -arch=win64 ?_Cout_func at std@@YAAEAV?$basic_ostream at DU?$char_traits at D@std@@@1 at XZ
+@ stub -arch=win32 ?_Fiopen at std@@YAPAU_iobuf@@PBDHH at Z
+@ stub -arch=win64 ?_Fiopen at std@@YAPEAU_iobuf@@PEBDHH at Z
+@ stub -arch=win32 ?_Fiopen at std@@YAPAU_iobuf@@PBGHH at Z
+@ stub -arch=win64 ?_Fiopen at std@@YAPEAU_iobuf@@PEBGHH at Z
+@ stub -arch=win32 ?_Fiopen at std@@YAPAU_iobuf@@PB_WHH at Z
+@ stub -arch=win64 ?_Fiopen at std@@YAPEAU_iobuf@@PEB_WHH at Z
+@ stub -arch=win32 ?_Fpz_func at std@@YAAA_JXZ
+@ stub -arch=win64 ?_Fpz_func at std@@YAAEA_JXZ
+@ stub ?_Getcvt@@YA?AU_Cvtvec@@XZ
+@ stub -arch=win32 ?_Getgloballocale at locale@std@@CAPAV_Locimp at 12@XZ
+@ stub -arch=win64 ?_Getgloballocale at locale@std@@CAPEAV_Locimp at 12@XZ
+@ stub -arch=win32 ?_Id_cnt_func at id@locale at std@@CAAAHXZ
+@ stub -arch=win64 ?_Id_cnt_func at id@locale at std@@CAAEAHXZ
+@ stub -arch=win32 ?_Id_func@?$codecvt at GDH@std@@SAAAVid at locale@2 at XZ
+@ stub -arch=win64 ?_Id_func@?$codecvt at GDH@std@@SAAEAVid at locale@2 at XZ
+@ stub -arch=win32 ?_Id_func@?$codecvt at _WDH@std@@SAAAVid at locale@2 at XZ
+@ stub -arch=win64 ?_Id_func@?$codecvt at _WDH@std@@SAAEAVid at locale@2 at XZ
+@ stub -arch=win32 ?_Id_func@?$ctype at D@std@@SAAAVid at locale@2 at XZ
+@ stub -arch=win64 ?_Id_func@?$ctype at D@std@@SAAEAVid at locale@2 at XZ
+@ stub -arch=win32 ?_Id_func@?$ctype at G@std@@SAAAVid at locale@2 at XZ
+@ stub -arch=win64 ?_Id_func@?$ctype at G@std@@SAAEAVid at locale@2 at XZ
+@ stub -arch=win32 ?_Id_func@?$ctype at _W@std@@SAAAVid at locale@2 at XZ
+@ stub -arch=win64 ?_Id_func@?$ctype at _W@std@@SAAEAVid at locale@2 at XZ
+@ stub -arch=win32 ?_Index_func at ios_base@std@@CAAAHXZ
+@ stub -arch=win64 ?_Index_func at ios_base@std@@CAAEAHXZ
+@ stub -arch=win32 ?_Init at locale@std@@CAPAV_Locimp at 12@XZ
+@ stub -arch=win64 ?_Init at locale@std@@CAPEAV_Locimp at 12@XZ
+@ stub -arch=win32 ?_Init_cnt_func at Init@ios_base at std@@CAAAHXZ
+@ stub -arch=win64 ?_Init_cnt_func at Init@ios_base at std@@CAAEAHXZ
+@ stub -arch=win32 ?_Init_ctor at Init@ios_base at std@@CAXPAV123@@Z
+@ stub -arch=win64 ?_Init_ctor at Init@ios_base at std@@CAXPEAV123@@Z
+@ stub -arch=win32 ?_Init_dtor at Init@ios_base at std@@CAXPAV123@@Z
+@ stub -arch=win64 ?_Init_dtor at Init@ios_base at std@@CAXPEAV123@@Z
+@ stub -arch=win32 ?_Init_locks_ctor at _Init_locks@std@@CAXPAV12@@Z
+@ stub -arch=win64 ?_Init_locks_ctor at _Init_locks@std@@CAXPEAV12@@Z
+@ stub -arch=win32 ?_Init_locks_dtor at _Init_locks@std@@CAXPAV12@@Z
+@ stub -arch=win64 ?_Init_locks_dtor at _Init_locks@std@@CAXPEAV12@@Z
+@ stub -arch=win32 ?_Ios_base_dtor at ios_base@std@@CAXPAV12@@Z
+@ stub -arch=win64 ?_Ios_base_dtor at ios_base@std@@CAXPEAV12@@Z
+@ stub -arch=win32 ?_Locimp_Addfac at _Locimp@locale at std@@CAXPAV123 at PAVfacet@23 at I@Z
+@ stub -arch=win64 ?_Locimp_Addfac at _Locimp@locale at std@@CAXPEAV123 at PEAVfacet@23 at _K@Z
+@ stub -arch=win32 ?_Locimp_dtor at _Locimp@locale at std@@CAXPAV123@@Z
+@ stub -arch=win64 ?_Locimp_dtor at _Locimp@locale at std@@CAXPEAV123@@Z
+@ stub -arch=win32 ?_Locinfo_Addcats at _Locinfo@std@@SAAAV12 at PAV12@HPBD at Z
+@ stub -arch=win64 ?_Locinfo_Addcats at _Locinfo@std@@SAAEAV12 at PEAV12@HPEBD at Z
+@ stub -arch=win32 ?_Locinfo_ctor at _Locinfo@std@@SAXPAV12 at ABV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2@@Z
+@ stub -arch=win64 ?_Locinfo_ctor at _Locinfo@std@@SAXPEAV12 at AEBV?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@2@@Z
+@ stub -arch=win32 ?_Locinfo_ctor at _Locinfo@std@@SAXPAV12 at HPBD@Z
+@ stub -arch=win64 ?_Locinfo_ctor at _Locinfo@std@@SAXPEAV12 at HPEBD@Z
+@ stub -arch=win32 ?_Locinfo_ctor at _Locinfo@std@@SAXPAV12 at PBD@Z
+@ stub -arch=win64 ?_Locinfo_ctor at _Locinfo@std@@SAXPEAV12 at PEBD@Z
+@ stub -arch=win32 ?_Locinfo_dtor at _Locinfo@std@@SAXPAV12@@Z
+@ stub -arch=win64 ?_Locinfo_dtor at _Locinfo@std@@SAXPEAV12@@Z
+@ stub -arch=win32 ?_Lockit_ctor at _Lockit@std@@CAXPAV12@@Z
+@ stub -arch=win64 ?_Lockit_ctor at _Lockit@std@@CAXPEAV12@@Z
+@ stub -arch=win32 ?_Lockit_ctor at _Lockit@std@@CAXPAV12 at H@Z
+@ stub -arch=win64 ?_Lockit_ctor at _Lockit@std@@CAXPEAV12 at H@Z
+@ stub ?_Lockit_ctor at _Lockit@std@@SAXH at Z
+@ stub -arch=win32 ?_Lockit_dtor at _Lockit@std@@CAXPAV12@@Z
+@ stub -arch=win64 ?_Lockit_dtor at _Lockit@std@@CAXPEAV12@@Z
+@ stub ?_Lockit_dtor at _Lockit@std@@SAXH at Z
+@ stub -arch=win32 ?_Mbrtowc@@YAHPAGPBDIPAHPBU_Cvtvec@@@Z
+@ stub -arch=win64 ?_Mbrtowc@@YAHPEAGPEBD_KPEAHPEBU_Cvtvec@@@Z
+@ stub -arch=win32 ?_Mbrtowc@@YAHPA_WPBDIPAHPBU_Cvtvec@@@Z
+@ stub -arch=win64 ?_Mbrtowc@@YAHPEA_WPEBD_KPEAHPEBU_Cvtvec@@@Z
+@ stub -arch=win32 ?_Mtxdst@@YAXPAU_RTL_CRITICAL_SECTION@@@Z
+@ stub -arch=win64 ?_Mtxdst@@YAXPEAU_RTL_CRITICAL_SECTION@@@Z
+@ stub -arch=win32 ?_Mtxinit@@YAXPAU_RTL_CRITICAL_SECTION@@@Z
+@ stub -arch=win64 ?_Mtxinit@@YAXPEAU_RTL_CRITICAL_SECTION@@@Z
+@ stub -arch=win32 ?_Mtxlock@@YAXPAU_RTL_CRITICAL_SECTION@@@Z
+@ stub -arch=win64 ?_Mtxlock@@YAXPEAU_RTL_CRITICAL_SECTION@@@Z
+@ stub -arch=win32 ?_Mtxunlock@@YAXPAU_RTL_CRITICAL_SECTION@@@Z
+@ stub -arch=win64 ?_Mtxunlock@@YAXPEAU_RTL_CRITICAL_SECTION@@@Z
+@ stub -arch=win32 ?_Mutex_Lock at _Mutex@std@@CAXPAV12@@Z
+@ stub -arch=win64 ?_Mutex_Lock at _Mutex@std@@CAXPEAV12@@Z
+@ stub -arch=win32 ?_Mutex_Unlock at _Mutex@std@@CAXPAV12@@Z
+@ stub -arch=win64 ?_Mutex_Unlock at _Mutex@std@@CAXPEAV12@@Z
+@ stub -arch=win32 ?_Mutex_ctor at _Mutex@std@@CAXPAV12@@Z
+@ stub -arch=win64 ?_Mutex_ctor at _Mutex@std@@CAXPEAV12@@Z
+@ stub -arch=win32 ?_Mutex_dtor at _Mutex@std@@CAXPAV12@@Z
+@ stub -arch=win64 ?_Mutex_dtor at _Mutex@std@@CAXPEAV12@@Z
+@ stub ?_Nomemory at std@@YAXXZ
+@ stub -arch=win32 ?_Once@@YAXPAJP6AXXZ at Z
+@ stub -arch=win64 ?_Once@@YAXPEAJP6AXXZ at Z
+@ stub -arch=win32 ?_Setgloballocale at locale@std@@CAXPAX at Z
+@ stub -arch=win64 ?_Setgloballocale at locale@std@@CAXPEAX at Z
+@ stub -arch=win32 ?_Sync_func at ios_base@std@@CAAA_NXZ
+@ stub -arch=win64 ?_Sync_func at ios_base@std@@CAAEA_NXZ
+@ stub -arch=win32 ?_Wcerr_func at std@@YAAAV?$basic_ostream at GU?$char_traits at G@std@@@1 at XZ
+@ stub -arch=win64 ?_Wcerr_func at std@@YAAEAV?$basic_ostream at GU?$char_traits at G@std@@@1 at XZ
+@ stub -arch=win32 ?_Wcerr_func at std@@YAAAV?$basic_ostream at _WU?$char_traits at _W@std@@@1 at XZ
+@ stub -arch=win64 ?_Wcerr_func at std@@YAAEAV?$basic_ostream at _WU?$char_traits at _W@std@@@1 at XZ
+@ stub -arch=win32 ?_Wcin_func at std@@YAAAV?$basic_istream at GU?$char_traits at G@std@@@1 at XZ
+@ stub -arch=win64 ?_Wcin_func at std@@YAAEAV?$basic_istream at GU?$char_traits at G@std@@@1 at XZ
+@ stub -arch=win32 ?_Wcin_func at std@@YAAAV?$basic_istream at _WU?$char_traits at _W@std@@@1 at XZ
+@ stub -arch=win64 ?_Wcin_func at std@@YAAEAV?$basic_istream at _WU?$char_traits at _W@std@@@1 at XZ
+@ stub -arch=win32 ?_Wclog_func at std@@YAAAV?$basic_ostream at GU?$char_traits at G@std@@@1 at XZ
+@ stub -arch=win64 ?_Wclog_func at std@@YAAEAV?$basic_ostream at GU?$char_traits at G@std@@@1 at XZ
+@ stub -arch=win32 ?_Wclog_func at std@@YAAAV?$basic_ostream at _WU?$char_traits at _W@std@@@1 at XZ
+@ stub -arch=win64 ?_Wclog_func at std@@YAAEAV?$basic_ostream at _WU?$char_traits at _W@std@@@1 at XZ
+@ stub -arch=win32 ?_Wcout_func at std@@YAAAV?$basic_ostream at GU?$char_traits at G@std@@@1 at XZ
+@ stub -arch=win64 ?_Wcout_func at std@@YAAEAV?$basic_ostream at GU?$char_traits at G@std@@@1 at XZ
+@ stub -arch=win32 ?_Wcout_func at std@@YAAAV?$basic_ostream at _WU?$char_traits at _W@std@@@1 at XZ
+@ stub -arch=win64 ?_Wcout_func at std@@YAAEAV?$basic_ostream at _WU?$char_traits at _W@std@@@1 at XZ
+@ stub -arch=win32 ?_Wcrtomb@@YAHPADGPAHPBU_Cvtvec@@@Z
+@ stub -arch=win64 ?_Wcrtomb@@YAHPEADGPEAHPEBU_Cvtvec@@@Z
+@ stub -arch=win32 ?_Wcrtomb@@YAHPAD_WPAHPBU_Cvtvec@@@Z
+@ stub -arch=win64 ?_Wcrtomb@@YAHPEAD_WPEAHPEBU_Cvtvec@@@Z
+@ stub ?_Xinvarg at _String_base@std@@SAXXZ
+@ stub ?_Xlen at _String_base@std@@SAXXZ
+@ stub ?_Xran at _String_base@std@@SAXXZ
+@ stub -arch=win32 ?__Wcrtomb_lk@@YAHPAD_WPAHPBU_Cvtvec@@@Z
+@ stub -arch=win64 ?__Wcrtomb_lk@@YAHPEAD_WPEAHPEBU_Cvtvec@@@Z
+@ stub -arch=win32 ?__get_default_appdomain@@YAJPAPAUIUnknown@@@Z
+@ stub -arch=win64 ?__get_default_appdomain@@YAJPEAPEAUIUnknown@@@Z
+@ stub -arch=win32 ?__query_new_handler_m@@YAP6MHI at ZXZ
+@ stub -arch=win64 ?__query_new_handler_m@@YAP6MH_K at ZXZ
+@ stub -arch=win32 ?__release_appdomain@@YAXPAUIUnknown@@@Z
+@ stub -arch=win64 ?__release_appdomain@@YAXPEAUIUnknown@@@Z
+@ stub -arch=win32 ?_beginthread@@YAIP6MXPAX at ZI0@Z
+@ stub -arch=win64 ?_beginthread@@YA_KP6MXPEAX at ZI0@Z
+@ stub -arch=win32 ?_beginthreadex@@YAIPAXIP6MI0 at Z0IPAI@Z
+@ stub -arch=win64 ?_beginthreadex@@YA_KPEAXIP6MI0 at Z0IPEAI@Z
+@ stub -arch=win32 ?_fpieee_flt@@YAHKPAU_EXCEPTION_POINTERS@@P6MHPAU_FPIEEE_RECORD@@@Z at Z
+@ stub -arch=win64 ?_fpieee_flt@@YAHKPEAU_EXCEPTION_POINTERS@@P6MHPEAU_FPIEEE_RECORD@@@Z at Z
+@ stub -arch=win32 ?_set_invalid_parameter_handler@@YAP6AXPB_W00II at ZH@Z
+@ stub -arch=win64 ?_set_invalid_parameter_handler@@YAP6AXPEB_W00I_K at ZH@Z
+@ stub -arch=win32 ?_set_invalid_parameter_handler@@YAP6MXPB_W00II at ZP6MX000II@Z at Z
+@ stub -arch=win64 ?_set_invalid_parameter_handler@@YAP6MXPEB_W00I_K at ZP6MX000I1@Z at Z
+@ stub -arch=win32 ?_set_new_handler@@YAP6MHI at ZP6MHI@Z at Z
+@ stub -arch=win64 ?_set_new_handler@@YAP6MH_K at ZP6MH0@Z at Z
+@ stub ?_set_purecall_handler@@YAP6AXXZH at Z
+@ stub ?_set_purecall_handler@@YAP6MXXZP6MXXZ at Z
+@ stub ?_uncaught_exception_m at std@@YA_NXZ
+@ stub -arch=win32 ?classic at locale@std@@SAABV12 at XZ
+@ stub -arch=win64 ?classic at locale@std@@SAAEBV12 at XZ
+@ stub ?empty at locale@std@@SA?AV12 at XZ
+@ stub -arch=win32 ?global at locale@std@@SA?AV12 at ABV12@@Z
+@ stub -arch=win64 ?global at locale@std@@SA?AV12 at AEBV12@@Z
+@ stub ?resetiosflags at std@@YA?AU?$_Smanip at H@1 at H@Z
+@ stub ?set_new_handler at std@@YAP6MXXZP6MXXZ at Z
+@ stub ?set_terminate@@YAP6MXXZP6MXXZ at Z
+@ stub ?set_unexpected@@YAP6MXXZP6MXXZ at Z
+@ stub ?setbase at std@@YA?AU?$_Smanip at H@1 at H@Z
+@ stub ?setiosflags at std@@YA?AU?$_Smanip at H@1 at H@Z
+@ stub -arch=win32 ?setprecision at std@@YA?AU?$_Smanip at H@1 at H@Z
+@ stub -arch=win64 ?setprecision at std@@YA?AU?$_Smanip at _J@1 at _J@Z
+@ stub -arch=win32 ?setw at std@@YA?AU?$_Smanip at H@1 at H@Z
+@ stub -arch=win64 ?setw at std@@YA?AU?$_Smanip at _J@1 at _J@Z
+@ stub ?signal@@YAP6MXH at ZHH@Z
+@ stub ?signal@@YAP6MXH at ZHP6MXH@Z at Z
+@ cdecl __setusermatherr_m(ptr) msvcm80.__setusermatherr_m
+@ stub towctrans
+@ stub wctrans
+@ stub wctype
diff --git a/dlls/msvcm90/msvcm90_main.c b/dlls/msvcm90/msvcm90_main.c
new file mode 100644
index 0000000..fe5526f
--- /dev/null
+++ b/dlls/msvcm90/msvcm90_main.c
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2012 Vincent Povirk for CodeWeavers
+ *
+ * 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 "config.h"
+
+#include <stdarg.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(msvcm90);
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+    TRACE("(0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
+
+    switch (fdwReason)
+    {
+        case DLL_WINE_PREATTACH:
+            return FALSE;    /* prefer native version */
+        case DLL_PROCESS_ATTACH:
+            DisableThreadLibraryCalls(hinstDLL);
+            break;
+        case DLL_PROCESS_DETACH:
+            break;
+    }
+
+    return TRUE;
+}
-- 
1.7.9.5


More information about the wine-patches mailing list