msls31: Add stub dll (try 3)

Josh DuBois duboisj at codeweavers.com
Wed Sep 12 11:53:47 CDT 2012


Presence of a stub of msls31.dll allows Visio 2003 to open .svg files, 
which it fails to do without the stub. Visio 2003 does complain that 
some values in the files are missing or of the incorrect data type when 
opening these files, but it will nonetheless open them and can edit them 
successfully when the stubbed .dll is present.

3rd try fixes format specifiers in TRACE in DllMain().
(these were pointed out as incorrect off-line).

-------------- next part --------------
>From 1883d39c39984426e16acc5a9d1c887244bc1e39 Mon Sep 17 00:00:00 2001
From: Josh DuBois <duboisj at codeweavers.com>
Date: Tue, 11 Sep 2012 15:46:46 -0500
Subject: Stub of msls31.dll.
Reply-To: duboisj at codeweavers.com

Presence of this stub allows Visio 2003 to open .svg files.
---
 configure.ac              |  1 +
 dlls/msls31/Makefile.in   |  6 ++++
 dlls/msls31/msls31.spec   | 79 +++++++++++++++++++++++++++++++++++++++++++++++
 dlls/msls31/msls31_main.c | 52 +++++++++++++++++++++++++++++++
 4 files changed, 138 insertions(+)
 create mode 100644 dlls/msls31/Makefile.in
 create mode 100644 dlls/msls31/msls31.spec
 create mode 100644 dlls/msls31/msls31_main.c

diff --git a/configure.ac b/configure.ac
index 7e761af..b620b02 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2702,6 +2702,7 @@ WINE_CONFIG_DLL(gdi.exe16,enable_win16)
 WINE_CONFIG_DLL(gdi32,,[implib,po])
 WINE_CONFIG_TEST(dlls/gdi32/tests)
 WINE_CONFIG_DLL(gdiplus,,[implib])
+WINE_CONFIG_DLL(msls31)
 WINE_CONFIG_TEST(dlls/gdiplus/tests)
 WINE_CONFIG_DLL(glu32,,[implib])
 WINE_CONFIG_DLL(gphoto2.ds,,[po])
diff --git a/dlls/msls31/Makefile.in b/dlls/msls31/Makefile.in
new file mode 100644
index 0000000..91db958
--- /dev/null
+++ b/dlls/msls31/Makefile.in
@@ -0,0 +1,6 @@
+MODULE    = msls31.dll
+
+C_SRCS = \
+	msls31_main.c
+
+ at MAKE_DLL_RULES@
diff --git a/dlls/msls31/msls31.spec b/dlls/msls31/msls31.spec
new file mode 100644
index 0000000..f962a91
--- /dev/null
+++ b/dlls/msls31/msls31.spec
@@ -0,0 +1,79 @@
+@ stub LsAppendRunToCurrentSubline
+@ stub LsCompressSubline
+@ stub LsCreateContext
+@ stub LsCreateLine
+@ stub LsCreateSubline
+@ stub LsDestroyContext
+@ stub LsDestroyLine
+@ stub LsDestroySubline
+@ stub LsDisplayLine
+@ stub LsDisplaySubline
+@ stub LsEnumLine
+@ stub LsEnumSubline
+@ stub LsExpandSubline
+@ stub LsFetchAppendToCurrentSubline
+@ stub LsFetchAppendToCurrentSublineResume
+@ stub LsFindNextBreakSubline
+@ stub LsFindPrevBreakSubline
+@ stub LsFinishCurrentSubline
+@ stub LsForceBreakSubline
+@ stub LsGetHihLsimethods
+@ stub LsGetLineDur
+@ stub LsGetMinDurBreaks
+@ stub LsGetReverseLsimethods
+@ stub LsGetRubyLsimethods
+@ stub LsGetSpecialEffectsSubline
+@ stub LsGetTatenakayokoLsimethods
+@ stub LsGetWarichuLsimethods
+@ stub LsLwMultDivR
+@ stub LsMatchPresSubline
+@ stub LsModifyLineHeight
+@ stub LsPointUV2FromPointUV1
+@ stub LsPointXYFromPointUV
+@ stub LsQueryCpPpointSubline
+@ stub LsQueryFLineEmpty
+@ stub LsQueryLineCpPpoint
+@ stub LsQueryLineDup
+@ stub LsQueryLinePointPcp
+@ stub LsQueryPointPcpSubline
+@ stub LsQueryTextCellDetails
+@ stub LsResetRMInCurrentSubline
+@ stub LsSetBreakSubline
+@ stub LsSetBreaking
+@ stub LsSetCompression
+@ stub LsSetDoc
+@ stub LsSetExpansion
+@ stub LsSetModWidthPairs
+@ stub LsSqueezeSubline
+@ stub LsTruncateSubline
+@ stub LsdnDistribute
+@ stub LsdnFinishByOneChar
+@ stub LsdnFinishByPen
+@ stub LsdnFinishBySubline
+@ stub LsdnFinishDelete
+@ stub LsdnFinishDeleteAll
+@ stub LsdnFinishRegular
+@ stub LsdnFinishRegularAddAdvancePen
+@ stub LsdnGetCurTabInfo
+@ stub LsdnGetDup
+@ stub LsdnGetFormatDepth
+@ stub LsdnModifyParaEnding
+@ stub LsdnQueryObjDimRange
+@ stub LsdnQueryPenNode
+@ stub LsdnResetObjDim
+@ stub LsdnResetPenNode
+@ stub LsdnResolvePrevTab
+@ stub LsdnSetAbsBaseLine
+@ stub LsdnSetRigidDup
+@ stub LsdnSkipCurTab
+@ stub LsdnSubmitSublines
+@ stub LssbFDoneDisplay
+@ stub LssbFDonePresSubline
+@ stub LssbFIsSublineEmpty
+@ stub LssbGetDupSubline
+@ stub LssbGetDurTrailInSubline
+@ stub LssbGetDurTrailWithPensInSubline
+@ stub LssbGetNumberDnodesInSubline
+@ stub LssbGetObjDimSubline
+@ stub LssbGetPlsrunsFromSubline
+@ stub LssbGetVisibleDcpInSubline
diff --git a/dlls/msls31/msls31_main.c b/dlls/msls31/msls31_main.c
new file mode 100644
index 0000000..b628434
--- /dev/null
+++ b/dlls/msls31/msls31_main.c
@@ -0,0 +1,52 @@
+/* 
+ *   msls31.dll
+ *   Copyright CodeWeavers, Inc.
+ *   Created: 9/10/2012 by Josh DuBois 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(msls31);
+
+BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+{
+    TRACE("(%p, %u, %p)\n", hinstDLL, fdwReason, lpvReserved);
+
+    switch (fdwReason)
+    {
+        case DLL_WINE_PREATTACH:
+            /*
+             *   prefer native.
+             */
+            return FALSE;
+        case DLL_PROCESS_ATTACH:
+            DisableThreadLibraryCalls(hinstDLL);
+            break;
+        case DLL_PROCESS_DETACH:
+            break;
+    }
+
+    return TRUE;
+}
-- 
1.7.11.5



More information about the wine-patches mailing list