mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2024-11-21 16:46:54 -08:00
Added windows.networking.connectivity.dll patchset
This commit is contained in:
parent
7b32c6a57f
commit
9acfa3b899
@ -275,6 +275,7 @@ patch_enable_all ()
|
||||
enable_windows_gaming_input_dll="$1"
|
||||
enable_windows_globalization_dll="$1"
|
||||
enable_windows_media_speech_dll="$1"
|
||||
enable_windows_networking_connectivity_dll="$1"
|
||||
enable_windowscodecs_GIF_Encoder="$1"
|
||||
enable_windowscodecs_TIFF_Support="$1"
|
||||
enable_wine_inf_Directory_ContextMenuHandlers="$1"
|
||||
@ -918,6 +919,9 @@ patch_enable ()
|
||||
windows.media.speech.dll)
|
||||
enable_windows_media_speech_dll="$2"
|
||||
;;
|
||||
windows.networking.connectivity.dll)
|
||||
enable_windows_networking_connectivity_dll="$2"
|
||||
;;
|
||||
windowscodecs-GIF_Encoder)
|
||||
enable_windowscodecs_GIF_Encoder="$2"
|
||||
;;
|
||||
@ -1471,6 +1475,13 @@ if test "$enable_wineboot_ProxySettings" -eq 1; then
|
||||
enable_wineboot_drivers_etc_Stubs=1
|
||||
fi
|
||||
|
||||
if test "$enable_windows_networking_connectivity_dll" -eq 1; then
|
||||
if test "$enable_windows_globalization_dll" -gt 1; then
|
||||
abort "Patchset windows.globalization-dll disabled, but windows.networking.connectivity.dll depends on that."
|
||||
fi
|
||||
enable_windows_globalization_dll=1
|
||||
fi
|
||||
|
||||
if test "$enable_windows_globalization_dll" -eq 1; then
|
||||
if test "$enable_windows_media_speech_dll" -gt 1; then
|
||||
abort "Patchset windows.media.speech.dll disabled, but windows.globalization-dll depends on that."
|
||||
@ -4462,6 +4473,25 @@ if test "$enable_windows_globalization_dll" -eq 1; then
|
||||
patch_apply windows.globalization-dll/0001-windows.globalization-Add-stub-dll.patch
|
||||
fi
|
||||
|
||||
# Patchset windows.networking.connectivity.dll
|
||||
# |
|
||||
# | This patchset has the following (direct or indirect) dependencies:
|
||||
# | * windows.gaming.input-dll, windows.media.speech.dll, windows.globalization-dll
|
||||
# |
|
||||
# | This patchset fixes the following Wine bugs:
|
||||
# | * [#46534] windows.networking.connectivity: New DLL
|
||||
# |
|
||||
# | Modified files:
|
||||
# | * configure.ac, dlls/windows.networking.connectivity.dll/Makefile.in,
|
||||
# | dlls/windows.networking.connectivity.dll/windows.networking.connectivity.spec,
|
||||
# | dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c, loader/wine.inf.in
|
||||
# |
|
||||
if test "$enable_windows_networking_connectivity_dll" -eq 1; then
|
||||
patch_apply windows.networking.connectivity.dll/0001-windows.networking.connectivity-Add-stub-dll.patch
|
||||
patch_apply windows.networking.connectivity.dll/0002-windows.networking.connectivity-Implement-IActivatio.patch
|
||||
patch_apply windows.networking.connectivity.dll/0003-windows.networking.connectivity-Implement-INetworkIn.patch
|
||||
fi
|
||||
|
||||
# Patchset windowscodecs-GIF_Encoder
|
||||
# |
|
||||
# | Modified files:
|
||||
|
@ -0,0 +1,117 @@
|
||||
From 328a4a388bbfb8a2b3d64a673a7206f5636cc3e5 Mon Sep 17 00:00:00 2001
|
||||
From: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
Date: Wed, 2 Sep 2020 23:41:19 -0300
|
||||
Subject: [PATCH 1/3] windows.networking.connectivity: Add stub dll.
|
||||
|
||||
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46534
|
||||
Signed-off-by: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
---
|
||||
configure.ac | 1 +
|
||||
.../Makefile.in | 7 +++
|
||||
.../windows.networking.connectivity.spec | 3 ++
|
||||
.../windows.networking.connectivity_main.c | 54 +++++++++++++++++++
|
||||
4 files changed, 65 insertions(+)
|
||||
create mode 100644 dlls/windows.networking.connectivity.dll/Makefile.in
|
||||
create mode 100644 dlls/windows.networking.connectivity.dll/windows.networking.connectivity.spec
|
||||
create mode 100644 dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 3ccf9436b39..d7c4f5abf6d 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3890,6 +3890,7 @@ WINE_CONFIG_MAKEFILE(dlls/windebug.dll16,enable_win16)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.gaming.input.dll)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.globalization.dll)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.media.speech.dll)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/windows.networking.connectivity.dll)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windowscodecs)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windowscodecs/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windowscodecsext)
|
||||
diff --git a/dlls/windows.networking.connectivity.dll/Makefile.in b/dlls/windows.networking.connectivity.dll/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..c1b3b1b332c
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity.dll/Makefile.in
|
||||
@@ -0,0 +1,7 @@
|
||||
+MODULE = windows.networking.connectivity.dll
|
||||
+IMPORTS = combase uuid
|
||||
+
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+
|
||||
+C_SRCS = \
|
||||
+ windows.networking.connectivity_main.c
|
||||
\ No newline at end of file
|
||||
diff --git a/dlls/windows.networking.connectivity.dll/windows.networking.connectivity.spec b/dlls/windows.networking.connectivity.dll/windows.networking.connectivity.spec
|
||||
new file mode 100644
|
||||
index 00000000000..4b286869e02
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity.dll/windows.networking.connectivity.spec
|
||||
@@ -0,0 +1,3 @@
|
||||
+@ stdcall -private DllCanUnloadNow()
|
||||
+@ stdcall -private DllGetActivationFactory(ptr ptr)
|
||||
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
|
||||
\ No newline at end of file
|
||||
diff --git a/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c b/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..8737ac441bc
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c
|
||||
@@ -0,0 +1,54 @@
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
+#define COBJMACROS
|
||||
+#include "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "winstring.h"
|
||||
+#include "wine/debug.h"
|
||||
+#include "activation.h"
|
||||
+#include "objbase.h"
|
||||
+#include "initguid.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(network);
|
||||
+
|
||||
+static const char *debugstr_hstring(HSTRING hstr)
|
||||
+{
|
||||
+ const WCHAR *str;
|
||||
+ UINT32 len;
|
||||
+ if (hstr && !((ULONG_PTR)hstr >> 16)) return "(invalid)";
|
||||
+ str = WindowsGetStringRawBuffer(hstr, &len);
|
||||
+ return wine_dbgstr_wn(str, len);
|
||||
+}
|
||||
+
|
||||
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
+{
|
||||
+ TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
+
|
||||
+ switch (reason)
|
||||
+ {
|
||||
+ case DLL_WINE_PREATTACH:
|
||||
+ return FALSE; /* prefer native version */
|
||||
+ case DLL_PROCESS_ATTACH:
|
||||
+ DisableThreadLibraryCalls(instance);
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ return TRUE;
|
||||
+}
|
||||
+
|
||||
+HRESULT WINAPI DllCanUnloadNow(void)
|
||||
+{
|
||||
+ return S_FALSE;
|
||||
+}
|
||||
+
|
||||
+HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID riid, LPVOID *object)
|
||||
+{
|
||||
+ FIXME("clsid %s, riid %s, object %p stub!\n", debugstr_guid(clsid), debugstr_guid(riid), object);
|
||||
+ return CLASS_E_CLASSNOTAVAILABLE;
|
||||
+}
|
||||
+
|
||||
+HRESULT WINAPI DllGetActivationFactory(HSTRING classid, IActivationFactory **factory)
|
||||
+{
|
||||
+ FIXME("classid %s, factory %p stub!\n", debugstr_hstring(classid), factory);
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.28.0
|
||||
|
@ -0,0 +1,121 @@
|
||||
From 221174d37d4029950f900268a7093e3d48dd078f Mon Sep 17 00:00:00 2001
|
||||
From: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
Date: Wed, 2 Sep 2020 23:53:28 -0300
|
||||
Subject: [PATCH 2/3] windows.networking.connectivity: Implement
|
||||
IActivationFactory stubs.
|
||||
|
||||
Signed-off-by: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
---
|
||||
.../windows.networking.connectivity_main.c | 90 ++++++++++++++++++-
|
||||
1 file changed, 88 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c b/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c
|
||||
index 8737ac441bc..8ed544e5644 100644
|
||||
--- a/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c
|
||||
+++ b/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c
|
||||
@@ -20,6 +20,90 @@ static const char *debugstr_hstring(HSTRING hstr)
|
||||
return wine_dbgstr_wn(str, len);
|
||||
}
|
||||
|
||||
+struct windows_networking_connectivity
|
||||
+{
|
||||
+ IActivationFactory IActivationFactory_iface;
|
||||
+ LONG refcount;
|
||||
+};
|
||||
+
|
||||
+static inline struct windows_networking_connectivity *impl_from_IActivationFactory(IActivationFactory *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct windows_networking_connectivity, IActivationFactory_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_QueryInterface(
|
||||
+ IActivationFactory *iface, REFIID iid, void **object)
|
||||
+{
|
||||
+ TRACE("iface %p, iid %s, object %p stub!\n", iface, debugstr_guid(iid), object);
|
||||
+ *object = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE windows_networking_connectivity_AddRef(
|
||||
+ IActivationFactory *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IActivationFactory(iface);
|
||||
+ ULONG rc = InterlockedIncrement(&impl->refcount);
|
||||
+ TRACE("%p increasing refcount to %u.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE windows_networking_connectivity_Release(
|
||||
+ IActivationFactory *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IActivationFactory(iface);
|
||||
+ ULONG rc = InterlockedDecrement(&impl->refcount);
|
||||
+ TRACE("%p decreasing refcount to %u.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_GetIids(
|
||||
+ IActivationFactory *iface, ULONG *iid_count, IID **iids)
|
||||
+{
|
||||
+ FIXME("iface %p, iid_count %p, iids %p stub!\n", iface, iid_count, iids);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_GetRuntimeClassName(
|
||||
+ IActivationFactory *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_GetTrustLevel(
|
||||
+ IActivationFactory *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_ActivateInstance(
|
||||
+ IActivationFactory *iface, IInspectable **instance)
|
||||
+{
|
||||
+ FIXME("iface %p, instance %p stub!\n", iface, instance);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static const struct IActivationFactoryVtbl activation_factory_vtbl =
|
||||
+{
|
||||
+ windows_networking_connectivity_QueryInterface,
|
||||
+ windows_networking_connectivity_AddRef,
|
||||
+ windows_networking_connectivity_Release,
|
||||
+ /* IInspectable methods */
|
||||
+ windows_networking_connectivity_GetIids,
|
||||
+ windows_networking_connectivity_GetRuntimeClassName,
|
||||
+ windows_networking_connectivity_GetTrustLevel,
|
||||
+ /* IActivationFactory methods */
|
||||
+ windows_networking_connectivity_ActivateInstance,
|
||||
+};
|
||||
+
|
||||
+static struct windows_networking_connectivity windows_networking_connectivity =
|
||||
+{
|
||||
+ {&activation_factory_vtbl},
|
||||
+ 0
|
||||
+};
|
||||
+
|
||||
BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, void *reserved)
|
||||
{
|
||||
TRACE("(%p, %u, %p)\n", instance, reason, reserved);
|
||||
@@ -49,6 +133,8 @@ HRESULT WINAPI DllGetClassObject(REFCLSID clsid, REFIID riid, LPVOID *object)
|
||||
|
||||
HRESULT WINAPI DllGetActivationFactory(HSTRING classid, IActivationFactory **factory)
|
||||
{
|
||||
- FIXME("classid %s, factory %p stub!\n", debugstr_hstring(classid), factory);
|
||||
- return E_NOINTERFACE;
|
||||
+ TRACE("classid %s, factory %p.\n", debugstr_hstring(classid), factory);
|
||||
+ *factory = &windows_networking_connectivity.IActivationFactory_iface;
|
||||
+ IUnknown_AddRef(*factory);
|
||||
+ return S_OK;
|
||||
}
|
||||
\ No newline at end of file
|
||||
--
|
||||
2.28.0
|
||||
|
@ -0,0 +1,378 @@
|
||||
From b9e7c78901421dd486ef407a6f09c280ef2858f1 Mon Sep 17 00:00:00 2001
|
||||
From: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
Date: Wed, 2 Sep 2020 23:57:44 -0300
|
||||
Subject: [PATCH 3/3] windows.networking.connectivity: Implement
|
||||
INetworkInformationStatics stubs.
|
||||
|
||||
Signed-off-by: Esdras Tarsis <esdrastarsis@gmail.com>
|
||||
---
|
||||
.../windows.networking.connectivity_main.c | 319 ++++++++++++++++++
|
||||
loader/wine.inf.in | 1 +
|
||||
2 files changed, 320 insertions(+)
|
||||
|
||||
diff --git a/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c b/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c
|
||||
index 8ed544e5644..b8507acf558 100644
|
||||
--- a/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c
|
||||
+++ b/dlls/windows.networking.connectivity.dll/windows.networking.connectivity_main.c
|
||||
@@ -20,9 +20,127 @@ static const char *debugstr_hstring(HSTRING hstr)
|
||||
return wine_dbgstr_wn(str, len);
|
||||
}
|
||||
|
||||
+DEFINE_GUID(IID_INetworkInformationStatics,0x5074f851,0x950d,0x4165,0x9c,0x15,0x36,0x56,0x19,0x48,0x1e,0xea);
|
||||
+
|
||||
+typedef struct EventRegistrationToken
|
||||
+{
|
||||
+ __int64 value;
|
||||
+} EventRegistrationToken;
|
||||
+
|
||||
+typedef struct IVectorView IVectorView;
|
||||
+
|
||||
+typedef struct IVectorViewVtbl
|
||||
+{
|
||||
+ /*** IUnknown methods ***/
|
||||
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
||||
+ IVectorView *This,
|
||||
+ REFIID riid,
|
||||
+ void **ppvObject);
|
||||
+
|
||||
+ ULONG (STDMETHODCALLTYPE *AddRef)(
|
||||
+ IVectorView *This);
|
||||
+
|
||||
+ ULONG (STDMETHODCALLTYPE *Release)(
|
||||
+ IVectorView *This);
|
||||
+
|
||||
+ /*** IInspectable methods ***/
|
||||
+ HRESULT (STDMETHODCALLTYPE *GetIids)(
|
||||
+ IVectorView *This,
|
||||
+ ULONG *iidCount,
|
||||
+ IID **iids);
|
||||
+
|
||||
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
|
||||
+ IVectorView *This,
|
||||
+ HSTRING *className);
|
||||
+
|
||||
+ HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
|
||||
+ IVectorView *This,
|
||||
+ TrustLevel *trustLevel);
|
||||
+
|
||||
+ /*** IVectorView<T> methods ***/
|
||||
+ HRESULT (STDMETHODCALLTYPE *GetAt)(
|
||||
+ IVectorView *This,
|
||||
+ ULONG index,
|
||||
+ /* T */ void *out_value);
|
||||
+
|
||||
+ HRESULT (STDMETHODCALLTYPE *get_Size)(
|
||||
+ IVectorView *This,
|
||||
+ ULONG *out_value);
|
||||
+
|
||||
+ HRESULT (STDMETHODCALLTYPE *IndexOf)(
|
||||
+ IVectorView *This,
|
||||
+ /* T */ void *value,
|
||||
+ ULONG *index,
|
||||
+ BOOLEAN *out_value);
|
||||
+
|
||||
+ HRESULT (STDMETHODCALLTYPE *GetMany)(
|
||||
+ IVectorView *This,
|
||||
+ ULONG start_index,
|
||||
+ /* T[] */ void **items,
|
||||
+ UINT *out_value);
|
||||
+} IVectorViewVtbl;
|
||||
+
|
||||
+struct IVectorView
|
||||
+{
|
||||
+ CONST_VTBL IVectorViewVtbl* lpVtbl;
|
||||
+};
|
||||
+
|
||||
+typedef struct INetworkInformationStatics INetworkInformationStatics;
|
||||
+
|
||||
+typedef struct INetworkInformationStaticsVtbl
|
||||
+{
|
||||
+ BEGIN_INTERFACE
|
||||
+
|
||||
+ /*** IUnknown methods ***/
|
||||
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
|
||||
+ INetworkInformationStatics *This,
|
||||
+ REFIID riid,
|
||||
+ void **ppvObject);
|
||||
+
|
||||
+ ULONG (STDMETHODCALLTYPE *AddRef)(
|
||||
+ INetworkInformationStatics *This);
|
||||
+
|
||||
+ ULONG (STDMETHODCALLTYPE *Release)(
|
||||
+ INetworkInformationStatics *This);
|
||||
+
|
||||
+ /*** IInspectable methods ***/
|
||||
+ HRESULT (STDMETHODCALLTYPE *GetIids)(
|
||||
+ INetworkInformationStatics *This,
|
||||
+ ULONG *iidCount,
|
||||
+ IID **iids);
|
||||
+
|
||||
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
|
||||
+ INetworkInformationStatics *This,
|
||||
+ HSTRING *className);
|
||||
+
|
||||
+ HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
|
||||
+ INetworkInformationStatics *This,
|
||||
+ TrustLevel *trustLevel);
|
||||
+
|
||||
+ /*** INetworkInformationStatics methods ***/
|
||||
+ HRESULT (STDMETHODCALLTYPE *eventadd_NetworkStatusChanged)(
|
||||
+ INetworkInformationStatics *This,
|
||||
+ /* Windows.Foundation.EventHandler<Windows.Networking.Connectivity.NetworkInformation*> */
|
||||
+ void *value,
|
||||
+ EventRegistrationToken* token);
|
||||
+
|
||||
+ HRESULT (STDMETHODCALLTYPE *eventremove_NetworkStatusChanged)(
|
||||
+ INetworkInformationStatics *This,
|
||||
+ EventRegistrationToken token);
|
||||
+
|
||||
+ END_INTERFACE
|
||||
+} INetworkInformationStaticsVtbl;
|
||||
+
|
||||
+struct INetworkInformationStatics
|
||||
+{
|
||||
+ CONST_VTBL INetworkInformationStaticsVtbl* lpVtbl;
|
||||
+};
|
||||
+
|
||||
struct windows_networking_connectivity
|
||||
{
|
||||
IActivationFactory IActivationFactory_iface;
|
||||
+ INetworkInformationStatics INetworkInformationStatics_iface;
|
||||
+ IVectorView IVectorView_iface;
|
||||
LONG refcount;
|
||||
};
|
||||
|
||||
@@ -31,10 +149,209 @@ static inline struct windows_networking_connectivity *impl_from_IActivationFacto
|
||||
return CONTAINING_RECORD(iface, struct windows_networking_connectivity, IActivationFactory_iface);
|
||||
}
|
||||
|
||||
+static inline struct windows_networking_connectivity *impl_from_INetworkInformationStatics(INetworkInformationStatics *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct windows_networking_connectivity, INetworkInformationStatics_iface);
|
||||
+}
|
||||
+
|
||||
+static inline struct windows_networking_connectivity *impl_from_IVectorView(IVectorView *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct windows_networking_connectivity, IVectorView_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_QueryInterface(
|
||||
+ IVectorView *iface, REFIID iid, void **object)
|
||||
+{
|
||||
+ TRACE("iface %p, iid %s, object %p stub!\n", iface, debugstr_guid(iid), object);
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *object = iface;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE vector_view_AddRef(
|
||||
+ IVectorView *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IVectorView(iface);
|
||||
+ ULONG rc = InterlockedIncrement(&impl->refcount);
|
||||
+ TRACE("%p increasing refcount to %u.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE vector_view_Release(
|
||||
+ IVectorView *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IVectorView(iface);
|
||||
+ ULONG rc = InterlockedDecrement(&impl->refcount);
|
||||
+ TRACE("%p decreasing refcount to %u.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetIids(
|
||||
+ IVectorView *iface, ULONG *iid_count, IID **iids)
|
||||
+{
|
||||
+ FIXME("iface %p, iid_count %p, iids %p stub!\n", iface, iid_count, iids);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetRuntimeClassName(
|
||||
+ IVectorView *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetTrustLevel(
|
||||
+ IVectorView *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetAt(
|
||||
+ IVectorView *iface, ULONG index, void *out_value)
|
||||
+{
|
||||
+ FIXME("iface %p, index %#x, out_value %p stub!\n", iface, index, out_value);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_get_Size(
|
||||
+ IVectorView *iface, ULONG *out_value)
|
||||
+{
|
||||
+ FIXME("iface %p, out_value %p stub!\n", iface, out_value);
|
||||
+ *out_value = 0;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_IndexOf(
|
||||
+ IVectorView *iface, void *value, ULONG *index, BOOLEAN *out_value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p, index %p, out_value %p stub!\n", iface, value, index, out_value);
|
||||
+ *out_value = FALSE;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_GetMany(
|
||||
+ IVectorView *iface, ULONG start_index, void **items, UINT *out_value)
|
||||
+{
|
||||
+ FIXME("iface %p, start_index %#x, items %p, out_value %p stub!\n", iface, start_index, items, out_value);
|
||||
+ *out_value = 0;
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static const struct IVectorViewVtbl vector_view_vtbl =
|
||||
+{
|
||||
+ vector_view_QueryInterface,
|
||||
+ vector_view_AddRef,
|
||||
+ vector_view_Release,
|
||||
+ /* IInspectable methods */
|
||||
+ vector_view_GetIids,
|
||||
+ vector_view_GetRuntimeClassName,
|
||||
+ vector_view_GetTrustLevel,
|
||||
+ /*** IVectorView<T> methods ***/
|
||||
+ vector_view_GetAt,
|
||||
+ vector_view_get_Size,
|
||||
+ vector_view_IndexOf,
|
||||
+ vector_view_GetMany,
|
||||
+};
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_QueryInterface(
|
||||
+ INetworkInformationStatics *iface, REFIID iid, void **object)
|
||||
+{
|
||||
+ TRACE("iface %p, iid %s, object %p stub!\n", iface, debugstr_guid(iid), object);
|
||||
+
|
||||
+ if (IsEqualGUID(iid, &IID_IAgileObject))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *object = iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
|
||||
+ *object = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE network_information_statics_AddRef(
|
||||
+ INetworkInformationStatics *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_INetworkInformationStatics(iface);
|
||||
+ ULONG rc = InterlockedIncrement(&impl->refcount);
|
||||
+ TRACE("%p increasing refcount to %u.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE network_information_statics_Release(
|
||||
+ INetworkInformationStatics *iface)
|
||||
+{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_INetworkInformationStatics(iface);
|
||||
+ ULONG rc = InterlockedDecrement(&impl->refcount);
|
||||
+ TRACE("%p decreasing refcount to %u.\n", impl, rc);
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetIids(
|
||||
+ INetworkInformationStatics *iface, ULONG *iid_count, IID **iids)
|
||||
+{
|
||||
+ FIXME("iface %p, iid_count %p, iids %p stub!\n", iface, iid_count, iids);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetRuntimeClassName(
|
||||
+ INetworkInformationStatics *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_GetTrustLevel(
|
||||
+ INetworkInformationStatics *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_eventadd_NetworkStatusChanged(
|
||||
+ INetworkInformationStatics *iface, void *value, EventRegistrationToken* token)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p, token %p stub!\n", iface, value, token);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE network_information_statics_eventremove_NetworkStatusChanged(
|
||||
+ INetworkInformationStatics *iface, EventRegistrationToken token)
|
||||
+{
|
||||
+ FIXME("iface %p, token %#I64x stub!\n", iface, token.value);
|
||||
+ return S_OK;
|
||||
+}
|
||||
+
|
||||
+static const struct INetworkInformationStaticsVtbl network_information_statics_vtbl =
|
||||
+{
|
||||
+ network_information_statics_QueryInterface,
|
||||
+ network_information_statics_AddRef,
|
||||
+ network_information_statics_Release,
|
||||
+ /* IInspectable methods */
|
||||
+ network_information_statics_GetIids,
|
||||
+ network_information_statics_GetRuntimeClassName,
|
||||
+ network_information_statics_GetTrustLevel,
|
||||
+ /* INetworkInformationStatics methods */
|
||||
+ network_information_statics_eventadd_NetworkStatusChanged,
|
||||
+ network_information_statics_eventremove_NetworkStatusChanged,
|
||||
+};
|
||||
+
|
||||
static HRESULT STDMETHODCALLTYPE windows_networking_connectivity_QueryInterface(
|
||||
IActivationFactory *iface, REFIID iid, void **object)
|
||||
{
|
||||
+ struct windows_networking_connectivity *impl = impl_from_IActivationFactory(iface);
|
||||
TRACE("iface %p, iid %s, object %p stub!\n", iface, debugstr_guid(iid), object);
|
||||
+
|
||||
+ if (IsEqualGUID(iid, &IID_INetworkInformationStatics))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *object = &impl->INetworkInformationStatics_iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
|
||||
*object = NULL;
|
||||
return E_NOINTERFACE;
|
||||
}
|
||||
@@ -101,6 +418,8 @@ static const struct IActivationFactoryVtbl activation_factory_vtbl =
|
||||
static struct windows_networking_connectivity windows_networking_connectivity =
|
||||
{
|
||||
{&activation_factory_vtbl},
|
||||
+ {&network_information_statics_vtbl},
|
||||
+ {&vector_view_vtbl},
|
||||
0
|
||||
};
|
||||
|
||||
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
|
||||
index 164d9f3df61..d3bae5ee3ce 100644
|
||||
--- a/loader/wine.inf.in
|
||||
+++ b/loader/wine.inf.in
|
||||
@@ -732,6 +732,7 @@ HKLM,%MciExtStr%,"wvx",,"MPEGVideo"
|
||||
HKLM,Software\Microsoft\WindowsRuntime\ActivatableClassId\Windows.Gaming.Input.Gamepad,"DllPath",2,"Windows.Gaming.Input.dll"
|
||||
HKLM,Software\Microsoft\WindowsRuntime\ActivatableClassId\Windows.Gaming.Input.RawGameController,"DllPath",2,"Windows.Gaming.Input.dll"
|
||||
HKLM,Software\Microsoft\WindowsRuntime\ActivatableClassId\Windows.Media.SpeechSynthesis.SpeechSynthesizer,"DllPath",2,"Windows.Media.Speech.dll"
|
||||
+HKLM,Software\Microsoft\WindowsRuntime\ActivatableClassId\Windows.Networking.Connectivity.NetworkInformation,"DllPath",2,"Windows.Networking.Connectivity.dll"
|
||||
HKLM,Software\Microsoft\WindowsRuntime\ActivatableClassId\Windows.System.UserProfile.GlobalizationPreferences,"DllPath",2,"Windows.Globalization.dll"
|
||||
HKLM,Software\Borland\Database Engine\Settings\SYSTEM\INIT,SHAREDMEMLOCATION,,9000
|
||||
HKLM,Software\Clients\Mail,,2,"Native Mail Client"
|
||||
--
|
||||
2.28.0
|
||||
|
2
patches/windows.networking.connectivity.dll/definition
Normal file
2
patches/windows.networking.connectivity.dll/definition
Normal file
@ -0,0 +1,2 @@
|
||||
Fixes: [46534] windows.networking.connectivity: New DLL
|
||||
Depends: windows.globalization-dll
|
Loading…
Reference in New Issue
Block a user