mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Rebase against 41df83c50e1c3cfdd6e8ffb65de7838f8503632c.
This commit is contained in:
parent
34d5c3568f
commit
f8b6fde40c
@ -1,4 +1,4 @@
|
||||
From cef4355bf086ab493401931ae635792bad1186f3 Mon Sep 17 00:00:00 2001
|
||||
From c65ffcf059cf2768a9ca6ee7a7e38d8a6a25fc44 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Fri, 22 May 2020 16:37:37 +1000
|
||||
Subject: [PATCH] ntdll: NtQuerySystemInformation support
|
||||
@ -12,10 +12,10 @@ Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
2 files changed, 44 insertions(+)
|
||||
|
||||
diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c
|
||||
index 909a7c5672f..cf36faf2b78 100644
|
||||
index 6fa71ddfb91..fad1d072962 100644
|
||||
--- a/dlls/ntdll/unix/system.c
|
||||
+++ b/dlls/ntdll/unix/system.c
|
||||
@@ -2557,6 +2557,28 @@ NTSTATUS WINAPI NtQuerySystemInformation( SYSTEM_INFORMATION_CLASS class,
|
||||
@@ -2714,6 +2714,28 @@ NTSTATUS WINAPI NtQuerySystemInformation( SYSTEM_INFORMATION_CLASS class,
|
||||
ret = STATUS_SUCCESS;
|
||||
break;
|
||||
|
||||
@ -45,15 +45,16 @@ index 909a7c5672f..cf36faf2b78 100644
|
||||
FIXME( "(0x%08x,%p,0x%08x,%p) stub\n", class, info, size, ret_size );
|
||||
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index 9226f000557..7e85ee02552 100644
|
||||
index fcdedaec8aa..618fab7d7c2 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -988,10 +988,32 @@ typedef enum _SYSTEM_INFORMATION_CLASS {
|
||||
@@ -1550,11 +1550,33 @@ typedef enum _SYSTEM_INFORMATION_CLASS {
|
||||
SystemMemoryListInformation = 80,
|
||||
SystemFileCacheInformationEx = 81,
|
||||
SystemDynamicTimeZoneInformation = 102,
|
||||
+ SystemCodeIntegrityInformation = 103,
|
||||
SystemLogicalProcessorInformationEx = 107,
|
||||
SystemHypervisorSharedPageInformation = 197,
|
||||
SystemInformationClassMax
|
||||
} SYSTEM_INFORMATION_CLASS, *PSYSTEM_INFORMATION_CLASS;
|
||||
|
||||
@ -82,5 +83,5 @@ index 9226f000557..7e85ee02552 100644
|
||||
ThreadBasicInformation = 0,
|
||||
ThreadTimes,
|
||||
--
|
||||
2.27.0
|
||||
2.30.2
|
||||
|
||||
|
@ -51,7 +51,7 @@ usage()
|
||||
# Get the upstream commit sha
|
||||
upstream_commit()
|
||||
{
|
||||
echo "6d26689484070b2c4ad4e0e16812c6eb8176cd40"
|
||||
echo "41df83c50e1c3cfdd6e8ffb65de7838f8503632c"
|
||||
}
|
||||
|
||||
# Show version information
|
||||
@ -2228,7 +2228,7 @@ fi
|
||||
# | * configure.ac, dlls/dxgkrnl.sys/Makefile.in, dlls/dxgkrnl.sys/dxgkrnl.sys.spec, dlls/dxgkrnl.sys/main.c,
|
||||
# | dlls/dxgmms1.sys/Makefile.in, dlls/dxgmms1.sys/dxgmms1.sys.spec, dlls/dxgmms1.sys/main.c,
|
||||
# | dlls/ntoskrnl.exe/tests/driver.c, dlls/win32k.sys/Makefile.in, dlls/win32k.sys/main.c, dlls/win32k.sys/win32k.sys.spec,
|
||||
# | loader/wine.inf.in, programs/winedevice/device.c, tools/make_specfiles
|
||||
# | programs/winedevice/device.c, tools/make_specfiles
|
||||
# |
|
||||
if test "$enable_winedevice_Default_Drivers" -eq 1; then
|
||||
patch_apply winedevice-Default_Drivers/0001-win32k.sys-Add-stub-driver.patch
|
||||
@ -2257,7 +2257,7 @@ fi
|
||||
# | dlls/dxapi.sys/Makefile.in, dlls/dxapi.sys/dxapi.sys.spec, dlls/dxapi.sys/version.rc, dlls/encapi/Makefile.in,
|
||||
# | dlls/encapi/encapi.spec, dlls/encapi/version.rc, dlls/gcdef/Makefile.in, dlls/gcdef/gcdef.spec, dlls/gcdef/version.rc,
|
||||
# | dlls/qdv/Makefile.in, dlls/qdv/qdv.spec, dlls/qdv/version.rc, dlls/qedwipes/Makefile.in, dlls/qedwipes/qedwipes.spec,
|
||||
# | dlls/qedwipes/version.rc, loader/wine.inf.in
|
||||
# | dlls/qedwipes/version.rc
|
||||
# |
|
||||
if test "$enable_dxdiag_new_dlls" -eq 1; then
|
||||
patch_apply dxdiag-new-dlls/0001-d3dpmesh-add-stub-dll.patch
|
||||
|
@ -1,196 +0,0 @@
|
||||
From df4e50780191fa5ab30808b4b9dc34321650e070 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
|
||||
Date: Fri, 9 Oct 2020 13:38:18 +0200
|
||||
Subject: [PATCH] windows.gaming.input: Add stub dll.
|
||||
|
||||
---
|
||||
configure.ac | 1 +
|
||||
dlls/windows.gaming.input.dll/Makefile.in | 5 +
|
||||
.../windows.gaming.input.spec | 3 +
|
||||
.../windows.gaming.input_main.c | 140 ++++++++++++++++++
|
||||
4 files changed, 149 insertions(+)
|
||||
create mode 100644 dlls/windows.gaming.input.dll/Makefile.in
|
||||
create mode 100644 dlls/windows.gaming.input.dll/windows.gaming.input.spec
|
||||
create mode 100644 dlls/windows.gaming.input.dll/windows.gaming.input_main.c
|
||||
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index 8c092fb020c..558d2e906a2 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -3801,6 +3801,7 @@ WINE_CONFIG_MAKEFILE(dlls/win32s16.dll16,enable_win16)
|
||||
WINE_CONFIG_MAKEFILE(dlls/win87em.dll16,enable_win16)
|
||||
WINE_CONFIG_MAKEFILE(dlls/winaspi.dll16,enable_win16)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windebug.dll16,enable_win16)
|
||||
+WINE_CONFIG_MAKEFILE(dlls/windows.gaming.input.dll)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.media.speech)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windows.media.speech/tests)
|
||||
WINE_CONFIG_MAKEFILE(dlls/windowscodecs)
|
||||
diff --git a/dlls/windows.gaming.input.dll/Makefile.in b/dlls/windows.gaming.input.dll/Makefile.in
|
||||
new file mode 100644
|
||||
index 00000000000..d9478342294
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.gaming.input.dll/Makefile.in
|
||||
@@ -0,0 +1,5 @@
|
||||
+MODULE = windows.gaming.input.dll
|
||||
+IMPORTS = combase uuid
|
||||
+EXTRADLLFLAGS = -mno-cygwin
|
||||
+C_SRCS = \
|
||||
+ windows.gaming.input_main.c
|
||||
diff --git a/dlls/windows.gaming.input.dll/windows.gaming.input.spec b/dlls/windows.gaming.input.dll/windows.gaming.input.spec
|
||||
new file mode 100644
|
||||
index 00000000000..20a8bfa98ea
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input.spec
|
||||
@@ -0,0 +1,3 @@
|
||||
+@ stdcall -private DllCanUnloadNow()
|
||||
+@ stdcall -private DllGetActivationFactory(ptr ptr)
|
||||
+@ stdcall -private DllGetClassObject(ptr ptr ptr)
|
||||
diff --git a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
|
||||
new file mode 100644
|
||||
index 00000000000..2b6abc4dd84
|
||||
--- /dev/null
|
||||
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
|
||||
@@ -0,0 +1,140 @@
|
||||
+#include <stdarg.h>
|
||||
+
|
||||
+#define COBJMACROS
|
||||
+#include "windef.h"
|
||||
+#include "winbase.h"
|
||||
+#include "winstring.h"
|
||||
+#include "wine/debug.h"
|
||||
+#include "objbase.h"
|
||||
+
|
||||
+#include "initguid.h"
|
||||
+#include "activation.h"
|
||||
+
|
||||
+#include "windows.foundation.h"
|
||||
+#include "windows.gaming.input.h"
|
||||
+
|
||||
+WINE_DEFAULT_DEBUG_CHANNEL(input);
|
||||
+
|
||||
+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);
|
||||
+}
|
||||
+
|
||||
+struct windows_gaming_input
|
||||
+{
|
||||
+ IActivationFactory IActivationFactory_iface;
|
||||
+ LONG ref;
|
||||
+};
|
||||
+
|
||||
+static inline struct windows_gaming_input *impl_from_IActivationFactory(IActivationFactory *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct windows_gaming_input, IActivationFactory_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_gaming_input_QueryInterface(
|
||||
+ IActivationFactory *iface, REFIID iid, void **out)
|
||||
+{
|
||||
+ struct windows_gaming_input *impl = impl_from_IActivationFactory(iface);
|
||||
+ TRACE("iface %p, iid %s, out %p stub!\n", iface, debugstr_guid(iid), out);
|
||||
+
|
||||
+ if (IsEqualGUID(iid, &IID_IUnknown) ||
|
||||
+ IsEqualGUID(iid, &IID_IInspectable) ||
|
||||
+ IsEqualGUID(iid, &IID_IActivationFactory))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *out = &impl->IActivationFactory_iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ FIXME("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
|
||||
+ *out = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE windows_gaming_input_AddRef(
|
||||
+ IActivationFactory *iface)
|
||||
+{
|
||||
+ struct windows_gaming_input *impl = impl_from_IActivationFactory(iface);
|
||||
+ ULONG ref = InterlockedIncrement(&impl->ref);
|
||||
+ TRACE("iface %p, ref %u.\n", iface, ref);
|
||||
+ return ref;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE windows_gaming_input_Release(
|
||||
+ IActivationFactory *iface)
|
||||
+{
|
||||
+ struct windows_gaming_input *impl = impl_from_IActivationFactory(iface);
|
||||
+ ULONG ref = InterlockedDecrement(&impl->ref);
|
||||
+ TRACE("iface %p, ref %u.\n", iface, ref);
|
||||
+ return ref;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_gaming_input_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_gaming_input_GetRuntimeClassName(
|
||||
+ IActivationFactory *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_gaming_input_GetTrustLevel(
|
||||
+ IActivationFactory *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE windows_gaming_input_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_gaming_input_QueryInterface,
|
||||
+ windows_gaming_input_AddRef,
|
||||
+ windows_gaming_input_Release,
|
||||
+ /* IInspectable methods */
|
||||
+ windows_gaming_input_GetIids,
|
||||
+ windows_gaming_input_GetRuntimeClassName,
|
||||
+ windows_gaming_input_GetTrustLevel,
|
||||
+ /* IActivationFactory methods */
|
||||
+ windows_gaming_input_ActivateInstance,
|
||||
+};
|
||||
+
|
||||
+static struct windows_gaming_input windows_gaming_input =
|
||||
+{
|
||||
+ {&activation_factory_vtbl},
|
||||
+ 0
|
||||
+};
|
||||
+
|
||||
+HRESULT WINAPI DllCanUnloadNow(void)
|
||||
+{
|
||||
+ return S_FALSE;
|
||||
+}
|
||||
+
|
||||
+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)
|
||||
+{
|
||||
+ TRACE("classid %s, factory %p.\n", debugstr_hstring(classid), factory);
|
||||
+ *factory = &windows_gaming_input.IActivationFactory_iface;
|
||||
+ IUnknown_AddRef(*factory);
|
||||
+ return S_OK;
|
||||
+}
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,208 +0,0 @@
|
||||
From f94d77d2f797f524793f74c455e56f33725b7728 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
|
||||
Date: Sat, 20 Feb 2021 00:51:48 +0100
|
||||
Subject: [PATCH] windows.gaming.input: Implement IGamepadStatics stubs.
|
||||
|
||||
---
|
||||
.../windows.gaming.input_main.c | 125 ++++++++++++++++++
|
||||
include/windows.foundation.collections.idl | 6 +
|
||||
loader/wine.inf.in | 1 +
|
||||
3 files changed, 132 insertions(+)
|
||||
|
||||
diff --git a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
|
||||
index 2b6abc4dd84..a910f9bf40e 100644
|
||||
--- a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
|
||||
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
|
||||
@@ -10,7 +10,10 @@
|
||||
#include "initguid.h"
|
||||
#include "activation.h"
|
||||
|
||||
+#define WIDL_using_Windows_Foundation
|
||||
+#define WIDL_using_Windows_Foundation_Collections
|
||||
#include "windows.foundation.h"
|
||||
+#define WIDL_using_Windows_Gaming_Input
|
||||
#include "windows.gaming.input.h"
|
||||
|
||||
WINE_DEFAULT_DEBUG_CHANNEL(input);
|
||||
@@ -27,6 +30,7 @@ static const char *debugstr_hstring(HSTRING hstr)
|
||||
struct windows_gaming_input
|
||||
{
|
||||
IActivationFactory IActivationFactory_iface;
|
||||
+ IGamepadStatics IGamepadStatics_iface;
|
||||
LONG ref;
|
||||
};
|
||||
|
||||
@@ -35,6 +39,119 @@ static inline struct windows_gaming_input *impl_from_IActivationFactory(IActivat
|
||||
return CONTAINING_RECORD(iface, struct windows_gaming_input, IActivationFactory_iface);
|
||||
}
|
||||
|
||||
+static inline struct windows_gaming_input *impl_from_IGamepadStatics(IGamepadStatics *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct windows_gaming_input, IGamepadStatics_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE gamepad_statics_QueryInterface(
|
||||
+ IGamepadStatics *iface, REFIID iid, void **out)
|
||||
+{
|
||||
+ TRACE("iface %p, iid %s, out %p stub!\n", iface, debugstr_guid(iid), out);
|
||||
+
|
||||
+ if (IsEqualGUID(iid, &IID_IAgileObject))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *out = iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
|
||||
+ *out = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE gamepad_statics_AddRef(
|
||||
+ IGamepadStatics *iface)
|
||||
+{
|
||||
+ struct windows_gaming_input *impl = impl_from_IGamepadStatics(iface);
|
||||
+ ULONG ref = InterlockedIncrement(&impl->ref);
|
||||
+ TRACE("iface %p, ref %u.\n", iface, ref);
|
||||
+ return ref;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE gamepad_statics_Release(
|
||||
+ IGamepadStatics *iface)
|
||||
+{
|
||||
+ struct windows_gaming_input *impl = impl_from_IGamepadStatics(iface);
|
||||
+ ULONG ref = InterlockedDecrement(&impl->ref);
|
||||
+ TRACE("iface %p, ref %u.\n", iface, ref);
|
||||
+ return ref;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE gamepad_statics_GetIids(
|
||||
+ IGamepadStatics *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 gamepad_statics_GetRuntimeClassName(
|
||||
+ IGamepadStatics *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE gamepad_statics_GetTrustLevel(
|
||||
+ IGamepadStatics *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE gamepad_statics_add_GamepadAdded(
|
||||
+ IGamepadStatics *iface, IEventHandler_Gamepad *value, EventRegistrationToken* token)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p, token %p stub!\n", iface, value, token);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE gamepad_statics_remove_GamepadAdded(
|
||||
+ IGamepadStatics *iface, EventRegistrationToken token)
|
||||
+{
|
||||
+ FIXME("iface %p, token %#I64x stub!\n", iface, token.value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE gamepad_statics_add_GamepadRemoved(
|
||||
+ IGamepadStatics *iface, IEventHandler_Gamepad *value, EventRegistrationToken* token)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p, token %p stub!\n", iface, value, token);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE gamepad_statics_remove_GamepadRemoved(
|
||||
+ IGamepadStatics *iface, EventRegistrationToken token)
|
||||
+{
|
||||
+ FIXME("iface %p, token %#I64x stub!\n", iface, token.value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE gamepad_statics_get_Gamepads(
|
||||
+ IGamepadStatics *iface, IVectorView_Gamepad **value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static const struct IGamepadStaticsVtbl gamepad_statics_vtbl =
|
||||
+{
|
||||
+ gamepad_statics_QueryInterface,
|
||||
+ gamepad_statics_AddRef,
|
||||
+ gamepad_statics_Release,
|
||||
+ /* IInspectable methods */
|
||||
+ gamepad_statics_GetIids,
|
||||
+ gamepad_statics_GetRuntimeClassName,
|
||||
+ gamepad_statics_GetTrustLevel,
|
||||
+ /* IGamepadStatics methods */
|
||||
+ gamepad_statics_add_GamepadAdded,
|
||||
+ gamepad_statics_remove_GamepadAdded,
|
||||
+ gamepad_statics_add_GamepadRemoved,
|
||||
+ gamepad_statics_remove_GamepadRemoved,
|
||||
+ gamepad_statics_get_Gamepads,
|
||||
+};
|
||||
+
|
||||
static HRESULT STDMETHODCALLTYPE windows_gaming_input_QueryInterface(
|
||||
IActivationFactory *iface, REFIID iid, void **out)
|
||||
{
|
||||
@@ -50,6 +167,13 @@ static HRESULT STDMETHODCALLTYPE windows_gaming_input_QueryInterface(
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
+ if (IsEqualGUID(iid, &IID_IGamepadStatics))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *out = &impl->IGamepadStatics_iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
FIXME("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
|
||||
*out = NULL;
|
||||
return E_NOINTERFACE;
|
||||
@@ -117,6 +241,7 @@ static const struct IActivationFactoryVtbl activation_factory_vtbl =
|
||||
static struct windows_gaming_input windows_gaming_input =
|
||||
{
|
||||
{&activation_factory_vtbl},
|
||||
+ {&gamepad_statics_vtbl},
|
||||
0
|
||||
};
|
||||
|
||||
diff --git a/include/windows.foundation.collections.idl b/include/windows.foundation.collections.idl
|
||||
index ed05016b96d..ba860a1e82e 100644
|
||||
--- a/include/windows.foundation.collections.idl
|
||||
+++ b/include/windows.foundation.collections.idl
|
||||
@@ -47,6 +47,12 @@ cpp_quote("#endif")
|
||||
]
|
||||
delegate HRESULT EventHandler<T>([in] IInspectable *sender, [in] T args);
|
||||
|
||||
+ [
|
||||
+ contract(Windows.Foundation.FoundationContract, 1.0),
|
||||
+ uuid(9de1c534-6ae1-11e0-84e1-18a905bcc53f)
|
||||
+ ]
|
||||
+ delegate HRESULT TypedEventHandler<TSender, TArgs>([in] TSender sender, [in] TArgs args);
|
||||
+
|
||||
namespace Collections
|
||||
{
|
||||
[
|
||||
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
|
||||
index 4cef944fb88..a1cc73d6e57 100644
|
||||
--- a/loader/wine.inf.in
|
||||
+++ b/loader/wine.inf.in
|
||||
@@ -711,6 +711,7 @@ HKLM,%MciExtStr%,"wmx",,"MPEGVideo"
|
||||
HKLM,%MciExtStr%,"wvx",,"MPEGVideo"
|
||||
|
||||
[Misc]
|
||||
+HKLM,Software\Microsoft\WindowsRuntime\ActivatableClassId\Windows.Gaming.Input.Gamepad,"DllPath",2,"Windows.Gaming.Input.dll"
|
||||
HKLM,Software\Borland\Database Engine\Settings\SYSTEM\INIT,SHAREDMEMLOCATION,,9000
|
||||
HKLM,Software\Clients\Mail,,2,"Native Mail Client"
|
||||
HKLM,Software\Clients\Mail\Native Mail Client,,2,"Native Mail Client"
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1,159 +0,0 @@
|
||||
From 17818a1676a5b177795d6509314f5d75f11b6def Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
|
||||
Date: Tue, 13 Oct 2020 17:58:14 +0200
|
||||
Subject: [PATCH] windows.gaming.input: Implement IGamepadStatics::Gamepads
|
||||
stubs.
|
||||
|
||||
---
|
||||
.../windows.gaming.input_main.c | 113 +++++++++++++++++-
|
||||
1 file changed, 112 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
|
||||
index a910f9bf40e..444eb687175 100644
|
||||
--- a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
|
||||
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
|
||||
@@ -31,6 +31,7 @@ struct windows_gaming_input
|
||||
{
|
||||
IActivationFactory IActivationFactory_iface;
|
||||
IGamepadStatics IGamepadStatics_iface;
|
||||
+ IVectorView_Gamepad IVectorView_Gamepad_iface;
|
||||
LONG ref;
|
||||
};
|
||||
|
||||
@@ -44,6 +45,113 @@ static inline struct windows_gaming_input *impl_from_IGamepadStatics(IGamepadSta
|
||||
return CONTAINING_RECORD(iface, struct windows_gaming_input, IGamepadStatics_iface);
|
||||
}
|
||||
|
||||
+static inline struct windows_gaming_input *impl_from_IVectorView_Gamepad(IVectorView_Gamepad *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct windows_gaming_input, IVectorView_Gamepad_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_gamepad_QueryInterface(
|
||||
+ IVectorView_Gamepad *iface, REFIID iid, void **out)
|
||||
+{
|
||||
+ TRACE("iface %p, iid %s, out %p stub!\n", iface, debugstr_guid(iid), out);
|
||||
+
|
||||
+ if (IsEqualGUID(iid, &IID_IUnknown) ||
|
||||
+ IsEqualGUID(iid, &IID_IInspectable) ||
|
||||
+ IsEqualGUID(iid, &IID_IVectorView_Gamepad))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *out = iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
+
|
||||
+ WARN("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
|
||||
+ *out = NULL;
|
||||
+ return E_NOINTERFACE;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE vector_view_gamepad_AddRef(
|
||||
+ IVectorView_Gamepad *iface)
|
||||
+{
|
||||
+ struct windows_gaming_input *impl = impl_from_IVectorView_Gamepad(iface);
|
||||
+ ULONG ref = InterlockedIncrement(&impl->ref);
|
||||
+ TRACE("iface %p, ref %u.\n", iface, ref);
|
||||
+ return ref;
|
||||
+}
|
||||
+
|
||||
+static ULONG STDMETHODCALLTYPE vector_view_gamepad_Release(
|
||||
+ IVectorView_Gamepad *iface)
|
||||
+{
|
||||
+ struct windows_gaming_input *impl = impl_from_IVectorView_Gamepad(iface);
|
||||
+ ULONG ref = InterlockedDecrement(&impl->ref);
|
||||
+ TRACE("iface %p, ref %u.\n", iface, ref);
|
||||
+ return ref;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_gamepad_GetIids(
|
||||
+ IVectorView_Gamepad *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_gamepad_GetRuntimeClassName(
|
||||
+ IVectorView_Gamepad *iface, HSTRING *class_name)
|
||||
+{
|
||||
+ FIXME("iface %p, class_name %p stub!\n", iface, class_name);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_gamepad_GetTrustLevel(
|
||||
+ IVectorView_Gamepad *iface, TrustLevel *trust_level)
|
||||
+{
|
||||
+ FIXME("iface %p, trust_level %p stub!\n", iface, trust_level);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_gamepad_GetAt(
|
||||
+ IVectorView_Gamepad *iface, ULONG index, IGamepad **value)
|
||||
+{
|
||||
+ FIXME("iface %p, index %#x, value %p stub!\n", iface, index, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_gamepad_get_Size(
|
||||
+ IVectorView_Gamepad *iface, ULONG *value)
|
||||
+{
|
||||
+ FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_gamepad_IndexOf(
|
||||
+ IVectorView_Gamepad *iface, IGamepad *element, ULONG *index, BOOLEAN *value)
|
||||
+{
|
||||
+ FIXME("iface %p, element %p, index %p, value %p stub!\n", iface, element, index, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT STDMETHODCALLTYPE vector_view_gamepad_GetMany(
|
||||
+ IVectorView_Gamepad *iface, ULONG start_index, IGamepad **items, UINT *value)
|
||||
+{
|
||||
+ FIXME("iface %p, start_index %#x, items %p, value %p stub!\n", iface, start_index, items, value);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static const struct IVectorView_GamepadVtbl vector_view_gamepad_vtbl =
|
||||
+{
|
||||
+ vector_view_gamepad_QueryInterface,
|
||||
+ vector_view_gamepad_AddRef,
|
||||
+ vector_view_gamepad_Release,
|
||||
+ /* IInspectable methods */
|
||||
+ vector_view_gamepad_GetIids,
|
||||
+ vector_view_gamepad_GetRuntimeClassName,
|
||||
+ vector_view_gamepad_GetTrustLevel,
|
||||
+ /* IVectorView<Gamepad> methods */
|
||||
+ vector_view_gamepad_GetAt,
|
||||
+ vector_view_gamepad_get_Size,
|
||||
+ vector_view_gamepad_IndexOf,
|
||||
+ vector_view_gamepad_GetMany,
|
||||
+};
|
||||
+
|
||||
static HRESULT STDMETHODCALLTYPE gamepad_statics_QueryInterface(
|
||||
IGamepadStatics *iface, REFIID iid, void **out)
|
||||
{
|
||||
@@ -131,8 +239,10 @@ static HRESULT STDMETHODCALLTYPE gamepad_statics_remove_GamepadRemoved(
|
||||
static HRESULT STDMETHODCALLTYPE gamepad_statics_get_Gamepads(
|
||||
IGamepadStatics *iface, IVectorView_Gamepad **value)
|
||||
{
|
||||
+ struct windows_gaming_input *impl = impl_from_IGamepadStatics(iface);
|
||||
FIXME("iface %p, value %p stub!\n", iface, value);
|
||||
- return E_NOTIMPL;
|
||||
+ *value = &impl->IVectorView_Gamepad_iface;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static const struct IGamepadStaticsVtbl gamepad_statics_vtbl =
|
||||
@@ -242,6 +352,7 @@ static struct windows_gaming_input windows_gaming_input =
|
||||
{
|
||||
{&activation_factory_vtbl},
|
||||
{&gamepad_statics_vtbl},
|
||||
+ {&vector_view_gamepad_vtbl},
|
||||
0
|
||||
};
|
||||
|
||||
--
|
||||
2.20.1
|
||||
|
@ -1 +1 @@
|
||||
6d26689484070b2c4ad4e0e16812c6eb8176cd40
|
||||
41df83c50e1c3cfdd6e8ffb65de7838f8503632c
|
||||
|
Loading…
x
Reference in New Issue
Block a user