wine-staging/patches/dsdmo-new-dll/0001-dsdmo-Added-dll.patch
2019-09-19 11:54:33 +10:00

165 lines
4.8 KiB
Diff

From 4df02b9d23b868cf4e481d6461715f21d1b0f7e9 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 14 Aug 2019 12:17:08 +1000
Subject: [PATCH 01/27] dsdmo: Added dll
---
configure | 2 +
configure.ac | 1 +
dlls/dsdmo/Makefile.in | 6 +++
dlls/dsdmo/dsdmo.spec | 4 ++
dlls/dsdmo/main.c | 85 ++++++++++++++++++++++++++++++++++++++++++
5 files changed, 98 insertions(+)
create mode 100644 dlls/dsdmo/Makefile.in
create mode 100644 dlls/dsdmo/dsdmo.spec
create mode 100644 dlls/dsdmo/main.c
diff --git a/configure b/configure
index 5ed6ed6c26..bea103fc37 100755
--- a/configure
+++ b/configure
@@ -1257,6 +1257,7 @@ enable_dpnlobby
enable_dpvoice
enable_dpwsockx
enable_drmclien
+enable_dsdmo
enable_dsound
enable_dsquery
enable_dssenh
@@ -20364,6 +20365,7 @@ wine_fn_config_makefile dlls/dpvoice enable_dpvoice
wine_fn_config_makefile dlls/dpvoice/tests enable_tests
wine_fn_config_makefile dlls/dpwsockx enable_dpwsockx
wine_fn_config_makefile dlls/drmclien enable_drmclien
+wine_fn_config_makefile dlls/dsdmo enable_dsdmo
wine_fn_config_makefile dlls/dsound enable_dsound
wine_fn_config_makefile dlls/dsound/tests enable_tests
wine_fn_config_makefile dlls/dsquery enable_dsquery
diff --git a/configure.ac b/configure.ac
index 1c912a30a2..27547ae3c7 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3232,6 +3232,7 @@ WINE_CONFIG_MAKEFILE(dlls/dpvoice)
WINE_CONFIG_MAKEFILE(dlls/dpvoice/tests)
WINE_CONFIG_MAKEFILE(dlls/dpwsockx)
WINE_CONFIG_MAKEFILE(dlls/drmclien)
+WINE_CONFIG_MAKEFILE(dlls/dsdmo)
WINE_CONFIG_MAKEFILE(dlls/dsound)
WINE_CONFIG_MAKEFILE(dlls/dsound/tests)
WINE_CONFIG_MAKEFILE(dlls/dsquery)
diff --git a/dlls/dsdmo/Makefile.in b/dlls/dsdmo/Makefile.in
new file mode 100644
index 0000000000..99816ae0c0
--- /dev/null
+++ b/dlls/dsdmo/Makefile.in
@@ -0,0 +1,6 @@
+MODULE = dsdmo.dll
+
+EXTRADLLFLAGS = -mno-cygwin
+
+C_SRCS = \
+ main.c
diff --git a/dlls/dsdmo/dsdmo.spec b/dlls/dsdmo/dsdmo.spec
new file mode 100644
index 0000000000..b16365d0c9
--- /dev/null
+++ b/dlls/dsdmo/dsdmo.spec
@@ -0,0 +1,4 @@
+@ stdcall -private DllCanUnloadNow()
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
+@ stdcall -private DllRegisterServer()
+@ stdcall -private DllUnregisterServer()
diff --git a/dlls/dsdmo/main.c b/dlls/dsdmo/main.c
new file mode 100644
index 0000000000..61a67f44d8
--- /dev/null
+++ b/dlls/dsdmo/main.c
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2019 Alistair Leslie-Hughes
+ *
+ * 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
+ */
+#define COBJMACROS
+
+#include "ole2.h"
+#include "rpcproxy.h"
+
+#include "wine/debug.h"
+
+WINE_DEFAULT_DEBUG_CHANNEL(dsdmo);
+
+static HINSTANCE dsdmo_instance;
+
+/******************************************************************
+ * DllMain
+ */
+BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
+{
+ TRACE("(%p %d %p)\n", hInstDLL, fdwReason, lpv);
+
+ switch(fdwReason)
+ {
+ case DLL_WINE_PREATTACH:
+ return FALSE; /* prefer native version */
+ case DLL_PROCESS_ATTACH:
+ dsdmo_instance = hInstDLL;
+ DisableThreadLibraryCalls(dsdmo_instance);
+ break;
+ case DLL_PROCESS_DETACH:
+ if (lpv) break;
+ break;
+ }
+
+ return TRUE;
+}
+
+/***********************************************************************
+ * DllGetClassObject
+ */
+HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
+{
+ FIXME("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
+ return CLASS_E_CLASSNOTAVAILABLE;
+}
+
+/***********************************************************************
+ * DllCanUnloadNow
+ */
+HRESULT WINAPI DllCanUnloadNow(void)
+{
+ return S_FALSE;
+}
+
+/***********************************************************************
+ * DllRegisterServer
+ */
+HRESULT WINAPI DllRegisterServer(void)
+{
+ TRACE("()\n");
+ return __wine_register_resources(dsdmo_instance);
+}
+
+/***********************************************************************
+ * DllUnregisterServer
+ */
+HRESULT WINAPI DllUnregisterServer(void)
+{
+ TRACE("()\n");
+ return __wine_unregister_resources(dsdmo_instance);
+}
--
2.17.1