From 4df02b9d23b868cf4e481d6461715f21d1b0f7e9 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes 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