From 48cc6ce421332b4b32ac500b6f9362442feda6da Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Mon, 25 Oct 2021 20:34:29 +1100 Subject: [PATCH] msdasql: New DLL. Signed-off-by: Alistair Leslie-Hughes Signed-off-by: Alexandre Julliard --- configure | 2 + configure.ac | 1 + dlls/msdasql/Makefile.in | 7 +++ dlls/msdasql/msdasql.spec | 4 ++ dlls/msdasql/msdasql_main.c | 91 +++++++++++++++++++++++++++++++++++++ loader/wine.inf.in | 2 + 6 files changed, 107 insertions(+) create mode 100644 dlls/msdasql/Makefile.in create mode 100644 dlls/msdasql/msdasql.spec create mode 100644 dlls/msdasql/msdasql_main.c diff --git a/configure b/configure index 5100dd8af5f..229aaa288ac 100755 --- a/configure +++ b/configure @@ -1451,6 +1451,7 @@ enable_mscorwks enable_msctf enable_msctfp enable_msdaps +enable_msdasql enable_msdelta enable_msdmo enable_msdrm @@ -19409,6 +19410,7 @@ wine_fn_config_makefile dlls/msctf enable_msctf wine_fn_config_makefile dlls/msctf/tests enable_tests wine_fn_config_makefile dlls/msctfp enable_msctfp wine_fn_config_makefile dlls/msdaps enable_msdaps +wine_fn_config_makefile dlls/msdasql enable_msdasql wine_fn_config_makefile dlls/msdelta enable_msdelta wine_fn_config_makefile dlls/msdmo enable_msdmo wine_fn_config_makefile dlls/msdmo/tests enable_tests diff --git a/configure.ac b/configure.ac index 6941b2c73a8..70e90c54558 100644 --- a/configure.ac +++ b/configure.ac @@ -3119,6 +3119,7 @@ WINE_CONFIG_MAKEFILE(dlls/msctf) WINE_CONFIG_MAKEFILE(dlls/msctf/tests) WINE_CONFIG_MAKEFILE(dlls/msctfp) WINE_CONFIG_MAKEFILE(dlls/msdaps) +WINE_CONFIG_MAKEFILE(dlls/msdasql) WINE_CONFIG_MAKEFILE(dlls/msdelta) WINE_CONFIG_MAKEFILE(dlls/msdmo) WINE_CONFIG_MAKEFILE(dlls/msdmo/tests) diff --git a/dlls/msdasql/Makefile.in b/dlls/msdasql/Makefile.in new file mode 100644 index 00000000000..71db923d09e --- /dev/null +++ b/dlls/msdasql/Makefile.in @@ -0,0 +1,7 @@ +MODULE = msdasql.dll +IMPORTS = uuid + +EXTRADLLFLAGS = -Wb,--prefer-native + +C_SRCS = \ + msdasql_main.c diff --git a/dlls/msdasql/msdasql.spec b/dlls/msdasql/msdasql.spec new file mode 100644 index 00000000000..b16365d0c9f --- /dev/null +++ b/dlls/msdasql/msdasql.spec @@ -0,0 +1,4 @@ +@ stdcall -private DllCanUnloadNow() +@ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() diff --git a/dlls/msdasql/msdasql_main.c b/dlls/msdasql/msdasql_main.c new file mode 100644 index 00000000000..1b3f5f5ed24 --- /dev/null +++ b/dlls/msdasql/msdasql_main.c @@ -0,0 +1,91 @@ +/* + * 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 + +#include "windef.h" +#include "winbase.h" +#include "objbase.h" +#include "rpcproxy.h" +#include "wine/debug.h" + +WINE_DEFAULT_DEBUG_CHANNEL(msdasql); + +static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv) +{ + *ppv = NULL; + + if(IsEqualGUID(&IID_IUnknown, riid)) { + TRACE("(%p)->(IID_IUnknown %p)\n", iface, ppv); + *ppv = iface; + }else if(IsEqualGUID(&IID_IClassFactory, riid)) { + TRACE("(%p)->(IID_IClassFactory %p)\n", iface, ppv); + *ppv = iface; + } + + if(*ppv) { + IUnknown_AddRef((IUnknown*)*ppv); + return S_OK; + } + + WARN("(%p)->(%s %p)\n", iface, debugstr_guid(riid), ppv); + return E_NOINTERFACE; +} + +static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface) +{ + TRACE("(%p)\n", iface); + return 2; +} + +static ULONG WINAPI ClassFactory_Release(IClassFactory *iface) +{ + TRACE("(%p)\n", iface); + return 1; +} + +HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv) +{ + FIXME("(%p %s %p)\n", outer, debugstr_guid(riid), ppv); + + return CLASS_E_CLASSNOTAVAILABLE; +} + +static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL fLock) +{ + TRACE("(%p)->(%x)\n", iface, fLock); + return S_OK; +} + +static const IClassFactoryVtbl cffactoryVtbl = { + ClassFactory_QueryInterface, + ClassFactory_AddRef, + ClassFactory_Release, + ClassFactory_CreateInstance, + ClassFactory_LockServer +}; + +static IClassFactory cffactory = { &cffactoryVtbl }; + +HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID riid, void **ppv ) +{ + FIXME("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv); + return IClassFactory_QueryInterface(&cffactory, riid, ppv); +} diff --git a/loader/wine.inf.in b/loader/wine.inf.in index d023701c04b..b1894dcba61 100644 --- a/loader/wine.inf.in +++ b/loader/wine.inf.in @@ -2657,6 +2657,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G" 16422,Windows NT\Accessories,wordpad.exe 16427,System\OLE DB,oledb32.dll 16427,System\OLE DB,msdaps.dll +16427,System\OLE DB,msdasql.dll 16427,System\ADO,msado15.dll 66000,3,wineps.drv 12,,*.sys,- @@ -2716,6 +2717,7 @@ HKLM,%CurrentVersion%\Telephony\Country List\998,"SameAreaRule",,"G" 16427,Microsoft Shared\TextConv, 16427,System\OLE DB,oledb32.dll 16427,System\OLE DB,msdaps.dll +16427,System\OLE DB,msdasql.dll 16427,System\ADO,msado15.dll 66000,3,wineps.drv 12,,*.sys