[PATCH 1/6] comdlg32: Add implementation of DllRegisterServer/DllUnregisterServer. (try 2)

David Hedberg david.hedberg at gmail.com
Tue Mar 29 14:13:18 CDT 2011


Try 2: Using IRegistrar.
---
 dlls/comdlg32/Makefile.in          |    2 ++
 dlls/comdlg32/cdlg32.c             |   18 ++++++++++++++++++
 dlls/comdlg32/comdlg32.spec        |    2 ++
 dlls/comdlg32/comdlg32_classes.idl |   33 +++++++++++++++++++++++++++++++++
 tools/wine.inf.in                  |    1 +
 5 files changed, 56 insertions(+), 0 deletions(-)
 create mode 100644 dlls/comdlg32/comdlg32_classes.idl

diff --git a/dlls/comdlg32/Makefile.in b/dlls/comdlg32/Makefile.in
index 6bf1c1a..f75c706 100644
--- a/dlls/comdlg32/Makefile.in
+++ b/dlls/comdlg32/Makefile.in
@@ -57,4 +57,6 @@ SVG_SRCS = \
 	pd32_nocollate.svg \
 	pd32_portrait.svg
 
+IDL_R_SRCS = comdlg32_classes.idl
+
 @MAKE_DLL_RULES@
diff --git a/dlls/comdlg32/cdlg32.c b/dlls/comdlg32/cdlg32.c
index de0f486..4f6b98a 100644
--- a/dlls/comdlg32/cdlg32.c
+++ b/dlls/comdlg32/cdlg32.c
@@ -27,6 +27,8 @@
 #include "winbase.h"
 #include "wingdi.h"
 #include "winuser.h"
+#include "objbase.h"
+#include "rpcproxy.h"
 #include "commdlg.h"
 #include "cderr.h"
 #include "wine/debug.h"
@@ -273,3 +275,19 @@ HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void **ppv)
 
     return CLASS_E_CLASSNOTAVAILABLE;
 }
+
+/***********************************************************************
+ *          DllRegisterServer (COMMDLG32.@)
+ */
+HRESULT WINAPI DllRegisterServer(void)
+{
+    return __wine_register_resources(COMDLG32_hInstance, NULL);
+}
+
+/***********************************************************************
+ *          DllUnregisterServer (COMMDLG32.@)
+ */
+HRESULT WINAPI DllUnregisterServer(void)
+{
+    return __wine_unregister_resources(COMDLG32_hInstance, NULL);
+}
diff --git a/dlls/comdlg32/comdlg32.spec b/dlls/comdlg32/comdlg32.spec
index 118d3d7..01c7cf6 100644
--- a/dlls/comdlg32/comdlg32.spec
+++ b/dlls/comdlg32/comdlg32.spec
@@ -4,6 +4,8 @@
 @ stdcall ChooseFontW(ptr)
 @ stdcall CommDlgExtendedError()
 @ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
 @ stdcall FindTextA(ptr)
 @ stdcall FindTextW(ptr)
 @ stdcall GetFileTitleA(str ptr long)
diff --git a/dlls/comdlg32/comdlg32_classes.idl b/dlls/comdlg32/comdlg32_classes.idl
new file mode 100644
index 0000000..b45eeb5
--- /dev/null
+++ b/dlls/comdlg32/comdlg32_classes.idl
@@ -0,0 +1,33 @@
+/*
+ * Coclasses for comdlg32
+ *
+ * Copyright 2011 David Hedberg
+ *
+ * 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
+ */
+
+[
+    helpstring("File Open Dialog"),
+    threading(apartment),
+    uuid(dc1c5a9c-e88a-4dde-a5a1-60f82a20aef7)
+]
+coclass FileOpenDialog { interface IFileOpenDialog; }
+
+[
+    helpstring("File Save Dialog"),
+    threading(apartment),
+    uuid(c0b4e2f3-ba21-4773-8dba-335ec946eb8b)
+]
+coclass FileSaveDialog { interface IFileSaveDialog; }
diff --git a/tools/wine.inf.in b/tools/wine.inf.in
index ff72e56..5c09faf 100644
--- a/tools/wine.inf.in
+++ b/tools/wine.inf.in
@@ -2489,6 +2489,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G"
 11,,avifil32.dll,1
 11,,browseui.dll,1
 11,,comctl32.dll,2
+11,,comdlg32.dll,1
 11,,cryptdlg.dll,1
 11,,cryptnet.dll,1
 11,,d3dxof.dll,1
-- 
1.7.4.1




More information about the wine-patches mailing list