From: Vibhav Pant vibhavp@gmail.com
--- dlls/wintypes/Makefile.in | 8 ++++++-- dlls/wintypes/main.c | 6 ------ dlls/wintypes/wintypes.spec | 3 +++ dlls/wintypes/wintypes_proxy.idl | 25 +++++++++++++++++++++++++ loader/wine.inf.in | 1 + 5 files changed, 35 insertions(+), 8 deletions(-) create mode 100644 dlls/wintypes/wintypes_proxy.idl
diff --git a/dlls/wintypes/Makefile.in b/dlls/wintypes/Makefile.in index fd370133cf8..2ad52b0480e 100644 --- a/dlls/wintypes/Makefile.in +++ b/dlls/wintypes/Makefile.in @@ -1,6 +1,6 @@ MODULE = wintypes.dll IMPORTLIB = wintypes -IMPORTS = combase +IMPORTS = combase rpcrt4
SOURCES = \ buffer.c \ @@ -8,4 +8,8 @@ SOURCES = \ main.c \ propertyset.c \ storage.c \ - wintypes_private.idl + wintypes_private.idl \ + wintypes_proxy.idl + +dlldata_EXTRADEFS = -DPROXY_DELEGATION -DREGISTER_PROXY_DLL \ + -DPROXY_CLSID_IS="{0x11659A23,0x5884,0x4D1B,{0x9C,0xF6,0x67,0xD6,0xF4,0xF9,0x0B,0x36}}" diff --git a/dlls/wintypes/main.c b/dlls/wintypes/main.c index 02121194956..72d6e2da59c 100644 --- a/dlls/wintypes/main.c +++ b/dlls/wintypes/main.c @@ -1712,12 +1712,6 @@ static struct property_value_statics property_value_statics = 1 };
-HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID riid, void **out) -{ - FIXME("clsid %s, riid %s, out %p stub!\n", debugstr_guid(clsid), debugstr_guid(riid), out); - return CLASS_E_CLASSNOTAVAILABLE; -} - HRESULT WINAPI DllGetActivationFactory(HSTRING classid, IActivationFactory **factory) { const WCHAR *buffer = WindowsGetStringRawBuffer(classid, NULL); diff --git a/dlls/wintypes/wintypes.spec b/dlls/wintypes/wintypes.spec index a1eb0f3830d..bf5f4741281 100644 --- a/dlls/wintypes/wintypes.spec +++ b/dlls/wintypes/wintypes.spec @@ -1,6 +1,9 @@ +3 stdcall -private GetProxyDllInfo(ptr ptr) @ stdcall -private DllCanUnloadNow() @ stdcall -private DllGetActivationFactory(ptr ptr) @ stdcall -private DllGetClassObject(ptr ptr ptr) +@ stdcall -private DllRegisterServer() +@ stdcall -private DllUnregisterServer() @ stub RoCreateNonAgilePropertySet @ stub RoCreatePropertySetSerializer @ stub RoGetBufferMarshaler diff --git a/dlls/wintypes/wintypes_proxy.idl b/dlls/wintypes/wintypes_proxy.idl new file mode 100644 index 00000000000..9463b2d4d05 --- /dev/null +++ b/dlls/wintypes/wintypes_proxy.idl @@ -0,0 +1,25 @@ +/* + * Proxies for wintypes.dll + * + * Copyright 2025 Vibhav Pant + * + * 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 + */ + +#pragma makedep proxy +#pragma makedep register +#pragma winrt ns_prefix + +#include "windows.foundation.idl" diff --git a/loader/wine.inf.in b/loader/wine.inf.in index 892078a4a96..6e8369fc7ab 100644 --- a/loader/wine.inf.in +++ b/loader/wine.inf.in @@ -705,6 +705,7 @@ HKLM,SOFTWARE\Microsoft\VisualStudio\14.0\VC\Runtimes\x86,"Version",2,"14.42.344 11,,wmadmod.dll,1 11,,wmvdecod.dll,1 11,,iexplore.exe,1 +11,,wintypes.dll,1
; 32bit-only fake dlls [FakeDllsWin32]