Rebase against 0f972e2247932f255f131792724e4796b4b2b87a.

This commit is contained in:
Zebediah Figura 2021-02-26 22:46:07 -06:00
parent 806bbc0198
commit 783002b5de
27 changed files with 333 additions and 521 deletions

View File

@ -1,66 +0,0 @@
From cf24ca0854a5b0dca2055f0991fd9a932125c65e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
Date: Sat, 5 Aug 2017 02:03:20 +0200
Subject: shell32: Implement process elevation using runas verb.
---
dlls/shell32/shlexec.c | 22 ++++++++++++++++++++--
1 file changed, 20 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c
index 0cf112b6373..af50078dbca 100644
--- a/dlls/shell32/shlexec.c
+++ b/dlls/shell32/shlexec.c
@@ -50,6 +50,8 @@
WINE_DEFAULT_DEBUG_CHANNEL(exec);
+extern HANDLE CDECL __wine_create_default_token(BOOL admin);
+
static const WCHAR wszOpen[] = {'o','p','e','n',0};
static const WCHAR wszExe[] = {'.','e','x','e',0};
static const WCHAR wszILPtr[] = {':','%','p',0};
@@ -312,6 +314,8 @@ static HRESULT SHELL_GetPathFromIDListForExecuteW(LPCITEMIDLIST pidl, LPWSTR psz
static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
const SHELLEXECUTEINFOW *psei, LPSHELLEXECUTEINFOW psei_out)
{
+ static WCHAR runasW[] = {'r','u','n','a','s',0};
+ HANDLE token = NULL;
STARTUPINFOW startup;
PROCESS_INFORMATION info;
UINT_PTR retval = SE_ERR_NOASSOC;
@@ -344,8 +348,20 @@ static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
dwCreationFlags = CREATE_UNICODE_ENVIRONMENT;
if (!(psei->fMask & SEE_MASK_NO_CONSOLE))
dwCreationFlags |= CREATE_NEW_CONSOLE;
- if (CreateProcessW(NULL, (LPWSTR)lpCmd, NULL, NULL, FALSE, dwCreationFlags, env,
- lpDirectory, &startup, &info))
+
+ /* Spawning a process with runas verb means that the process should be
+ * executed with admin rights. This function ignores the manifest data,
+ * and allows programs to elevate rights on-demand. On Windows a complex
+ * RPC menchanism is used, using CreateProcessAsUser would fail because
+ * it can only be used to drop rights. */
+ if (psei->lpVerb && !strcmpiW(psei->lpVerb, runasW))
+ {
+ if (!(token = __wine_create_default_token(TRUE)))
+ ERR("Failed to create admin token\n");
+ }
+
+ if (CreateProcessAsUserW(token, NULL, (LPWSTR)lpCmd, NULL, NULL, FALSE,
+ dwCreationFlags, env, lpDirectory, &startup, &info))
{
/* Give 30 seconds to the app to come up, if desired. Probably only needed
when starting app immediately before making a DDE connection. */
@@ -365,6 +381,8 @@ static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
retval = ERROR_BAD_FORMAT;
}
+ if (token) CloseHandle(token);
+
TRACE("returning %lu\n", retval);
psei_out->hInstApp = (HINSTANCE)retval;
--
2.13.1

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "35e43ccf1b42e9f67d7765753f0c3ef8cf102c46"
echo "0f972e2247932f255f131792724e4796b4b2b87a"
}
# Show version information
@ -254,6 +254,9 @@ patch_enable_all ()
enable_uxtheme_CloseThemeClass="$1"
enable_version_VerQueryValue="$1"
enable_widl_SLTG_Typelib_Support="$1"
enable_windows_gaming_input_dll="$1"
enable_windows_globalization_dll="$1"
enable_windows_media_speech_dll="$1"
enable_windowscodecs_GIF_Encoder="$1"
enable_windowscodecs_TIFF_Support="$1"
enable_wine_inf_Directory_ContextMenuHandlers="$1"
@ -832,6 +835,15 @@ patch_enable ()
widl-SLTG_Typelib_Support)
enable_widl_SLTG_Typelib_Support="$2"
;;
windows.gaming.input-dll)
enable_windows_gaming_input_dll="$2"
;;
windows.globalization-dll)
enable_windows_globalization_dll="$2"
;;
windows.media.speech.dll)
enable_windows_media_speech_dll="$2"
;;
windowscodecs-GIF_Encoder)
enable_windowscodecs_GIF_Encoder="$2"
;;
@ -1372,6 +1384,20 @@ if test "$enable_wineboot_ProxySettings" -eq 1; then
enable_wineboot_drivers_etc_Stubs=1
fi
if test "$enable_windows_globalization_dll" -eq 1; then
if test "$enable_windows_gaming_input_dll" -gt 1; then
abort "Patchset windows.gaming.input-dll disabled, but windows.globalization-dll depends on that."
fi
enable_windows_gaming_input_dll=1
fi
if test "$enable_windows_gaming_input_dll" -eq 1; then
if test "$enable_windows_media_speech_dll" -gt 1; then
abort "Patchset windows.media.speech.dll disabled, but windows.gaming.input-dll depends on that."
fi
enable_windows_media_speech_dll=1
fi
if test "$enable_user32_rawinput_mouse_experimental" -eq 1; then
if test "$enable_user32_rawinput_mouse" -gt 1; then
abort "Patchset user32-rawinput-mouse disabled, but user32-rawinput-mouse-experimental depends on that."
@ -4116,6 +4142,71 @@ if test "$enable_version_VerQueryValue" -eq 1; then
patch_apply version-VerQueryValue/0001-version-Test-for-VerQueryValueA-try-2.patch
fi
# Patchset windows.media.speech.dll
# |
# | This patchset fixes the following Wine bugs:
# | * [#49740] windows.media.speech: New DLL
# |
# | Modified files:
# | * configure.ac, dlls/windows.media.speech.dll/Makefile.in, dlls/windows.media.speech.dll/windows.media.speech.spec,
# | dlls/windows.media.speech.dll/windows.media.speech_main.c, loader/wine.inf.in
# |
if test "$enable_windows_media_speech_dll" -eq 1; then
patch_apply windows.media.speech.dll/0001-windows.media.speech-Add-stub-dll.patch
patch_apply windows.media.speech.dll/0002-windows.media.speech-Implement-IInstalledVoicesStati.patch
patch_apply windows.media.speech.dll/0003-windows.media.speech-Implement-IInstalledVoicesStati.patch
patch_apply windows.media.speech.dll/0004-windows.media.speech-Fake-empty-IInstalledVoicesStat.patch
fi
# Patchset windows.gaming.input-dll
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * windows.media.speech.dll
# |
# | This patchset fixes the following Wine bugs:
# | * [#49756] windows.gaming.input: New DLL
# |
# | Modified files:
# | * configure.ac, dlls/windows.gaming.input.dll/Makefile.in, dlls/windows.gaming.input.dll/windows.gaming.input.spec,
# | dlls/windows.gaming.input.dll/windows.gaming.input_main.c, include/Makefile.in, include/asyncinfo.idl,
# | include/windows.foundation.collections.idl, include/windows.foundation.idl,
# | include/windows.gaming.input.forcefeedback.idl, include/windows.gaming.input.idl, include/windows.system.idl,
# | loader/wine.inf.in
# |
if test "$enable_windows_gaming_input_dll" -eq 1; then
patch_apply windows.gaming.input-dll/0001-windows.gaming.input-Add-stub-dll.patch
patch_apply windows.gaming.input-dll/0002-windows.gaming.input-Implement-IGamepadStatics-stubs.patch
patch_apply windows.gaming.input-dll/0003-windows.gaming.input-Implement-IGamepadStatics-Gamep.patch
patch_apply windows.gaming.input-dll/0004-windows.gaming.input-Fake-empty-IGamepadStatics-Game.patch
patch_apply windows.gaming.input-dll/0005-windows.gaming.input-Fake-IEventHandler_Gamepad-supp.patch
patch_apply windows.gaming.input-dll/0006-windows.gaming.input-Implement-IRawGameControllerSta.patch
patch_apply windows.gaming.input-dll/0007-windows.gaming.input-Implement-IRawGameControllerSta.patch
patch_apply windows.gaming.input-dll/0008-windows.gaming.input-Fake-empty-IRawGameControllerSt.patch
patch_apply windows.gaming.input-dll/0009-windows.gaming.input-Fake-IEventHandler_RawGameContr.patch
fi
# Patchset windows.globalization-dll
# |
# | This patchset has the following (direct or indirect) dependencies:
# | * windows.media.speech.dll, windows.gaming.input-dll
# |
# | This patchset fixes the following Wine bugs:
# | * [#49740] windows.globalization: New DLL
# | * [#49998] windows.globalization: New DLL
# |
# | Modified files:
# | * configure.ac, dlls/windows.globalization.dll/Makefile.in, dlls/windows.globalization.dll/windows.globalization.spec,
# | dlls/windows.globalization.dll/windows.globalization_main.c, include/Makefile.in, include/windows.foundation.idl,
# | include/windows.globalization.idl, include/windows.system.userprofile.idl, loader/wine.inf.in
# |
if test "$enable_windows_globalization_dll" -eq 1; then
patch_apply windows.globalization-dll/0001-windows.globalization-Add-stub-dll.patch
patch_apply windows.globalization-dll/0002-windows.globalization-Implement-IGlobalizationPrefer.patch
patch_apply windows.globalization-dll/0003-windows.globalization-Implement-IGlobalizationPrefer.patch
patch_apply windows.globalization-dll/0004-windows.globalization-Implement-IGlobalizationPrefer.patch
patch_apply windows.globalization-dll/0005-windows.globalization-Fake-empty-IGlobalizationPrefe.patch
fi
# Patchset windowscodecs-GIF_Encoder
# |
# | Modified files:

View File

@ -1,193 +0,0 @@
From cfe5dc40372336a60520b2b7d4459c2687984129 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Wed, 26 Aug 2020 22:46:02 +0200
Subject: [PATCH] widl: Generate helper macros for WinRT implementation.
This generates additional macros to help keeping implementation simple,
guarded with WIDL_USING ifdefs, like this:
#ifdef WIDL_USING_WINDOWS_FOO_IFOO
#define IFooVtbl __x_ABI_CWindows_CFoo_CIFooVtbl
#define IFoo __x_ABI_CWindows_CFoo_CIFoo
#define IFoo_DoFoo __x_ABI_CWindows_CFoo_CIFoo_DoFoo
#endif /* WIDL_USING_WINDOWS_FOO_IFOO */
Implementation files can define the desired WIDL_USING preprocessor
macros before including the header, and then implement or use the
interface methods with the simple non-prefixed names instead.
---
tools/widl/header.c | 72 ++++++++++++++++++++++++++++++++++++++++--
tools/widl/typetree.c | 19 +++++++++++
tools/widl/widltypes.h | 1 +
3 files changed, 90 insertions(+), 2 deletions(-)
diff --git a/tools/widl/header.c b/tools/widl/header.c
index 7ab79d3b6e1..a8141d5f61d 100644
--- a/tools/widl/header.c
+++ b/tools/widl/header.c
@@ -48,6 +48,8 @@ static void write_type_v(FILE *f, const decl_spec_t *t, int is_field, int declon
static void write_apicontract_guard_start(FILE *header, const expr_t *expr);
static void write_apicontract_guard_end(FILE *header, const expr_t *expr);
+static void write_widl_using_macros(FILE *header, type_t *iface);
+
static void indent(FILE *h, int delta)
{
int c;
@@ -603,10 +605,11 @@ static void write_type_definition(FILE *f, type_t *t, int declonly)
t->written = save_written;
write_namespace_end(f, t->namespace);
fprintf(f, "extern \"C\" {\n");
- fprintf(f, "#else\n");
+ fprintf(f, "#else /* __cplusplus */\n");
write_type_left(f, &ds, NAME_C, declonly, TRUE);
fprintf(f, ";\n");
- fprintf(f, "#endif\n\n");
+ if (winrt_mode) write_widl_using_macros(f, t);
+ fprintf(f, "#endif /* __cplusplus */\n\n");
}
if (contract) write_apicontract_guard_end(f, contract);
}
@@ -1536,6 +1539,70 @@ static void write_com_interface_start(FILE *header, const type_t *iface)
fprintf(header,"#define __%s_%sINTERFACE_DEFINED__\n\n", iface->c_name, dispinterface ? "DISP" : "");
}
+static char *get_winrt_guard_macro(type_t *iface)
+{
+ unsigned int len;
+ char *macro, *tmp = (char *)iface->c_name;
+ int i;
+
+ if (!strncmp(tmp, "__x", 3)) tmp += 3;
+ if (!strncmp(tmp, "_ABI", 4)) tmp += 4;
+ macro = xstrdup(tmp);
+
+ len = strlen(macro) + 1;
+ for (tmp = strstr(macro, "__F"); tmp; tmp = strstr(tmp, "__F"))
+ memmove(tmp + 1, tmp + 3, len - (tmp - macro) - 3);
+ for (tmp = strstr(macro, "__C"); tmp; tmp = strstr(tmp, "__C"))
+ memmove(tmp + 1, tmp + 3, len - (tmp - macro) - 3);
+ for (tmp = strstr(macro, "_C"); tmp; tmp = strstr(tmp, "_C"))
+ memmove(tmp + 1, tmp + 2, len - (tmp - macro) - 2);
+
+ for (i = strlen(macro); i > 0; --i) macro[i - 1] = toupper(macro[i - 1]);
+
+ return macro;
+}
+
+static void write_widl_using_method_macros(FILE *header, const type_t *iface, const type_t *top_iface)
+{
+ const statement_t *stmt;
+ const char *name = top_iface->short_name ? top_iface->short_name : top_iface->name;
+
+ if (type_iface_get_inherit(iface)) write_widl_using_method_macros(header, type_iface_get_inherit(iface), top_iface);
+
+ STATEMENTS_FOR_EACH_FUNC(stmt, type_iface_get_stmts(iface))
+ {
+ const var_t *func = stmt->u.var;
+ const char *func_name;
+
+ if (is_override_method(iface, top_iface, func)) continue;
+ if (is_callas(func->attrs)) continue;
+
+ func_name = get_name(func);
+ fprintf(header, "#define %s_%s %s_%s\n", name, func_name, top_iface->c_name, func_name);
+ }
+}
+
+static void write_widl_using_macros(FILE *header, type_t *iface)
+{
+ const UUID *uuid = get_attrp(iface->attrs, ATTR_UUID);
+ const char *name = iface->short_name ? iface->short_name : iface->name;
+ char *macro;
+
+ if (!strcmp(iface->name, iface->c_name)) return;
+
+ macro = get_winrt_guard_macro(iface);
+ fprintf(header, "#ifdef WIDL_USING%s\n", macro);
+
+ if (uuid) fprintf(header, "#define IID_%s IID_%s\n", name, iface->c_name);
+ if (iface->type_type == TYPE_INTERFACE) fprintf(header, "#define %sVtbl %sVtbl\n", name, iface->c_name);
+ fprintf(header, "#define %s %s\n", name, iface->c_name);
+
+ if (iface->type_type == TYPE_INTERFACE) write_widl_using_method_macros(header, iface, iface);
+
+ fprintf(header, "#endif /* WIDL_USING_%s */\n", macro);
+ free(macro);
+}
+
static void write_com_interface_end(FILE *header, type_t *iface)
{
int dispinterface = is_attr(iface->attrs, ATTR_DISPINTERFACE);
@@ -1608,6 +1675,7 @@ static void write_com_interface_end(FILE *header, type_t *iface)
fprintf(header, "#else\n");
write_inline_wrappers(header, type, type, iface->c_name);
fprintf(header, "#endif\n");
+ if (winrt_mode) write_widl_using_macros(header, iface);
fprintf(header, "#endif\n");
fprintf(header, "\n");
fprintf(header, "#endif\n");
diff --git a/tools/widl/typetree.c b/tools/widl/typetree.c
index ae11a7cb171..65bc24edb0f 100644
--- a/tools/widl/typetree.c
+++ b/tools/widl/typetree.c
@@ -51,6 +51,7 @@ type_t *make_type(enum type_type type)
t->attrs = NULL;
t->c_name = NULL;
t->signature = NULL;
+ t->short_name = NULL;
memset(&t->details, 0, sizeof(t->details));
t->typestring_offset = 0;
t->ptrdesc = 0;
@@ -322,6 +323,22 @@ static char *format_parameterized_type_signature(type_t *type, type_list_t *para
return buf;
}
+static char *format_parameterized_type_short_name(type_t *type, type_list_t *params, const char *prefix)
+{
+ size_t len = 0, pos = 0;
+ char *buf = NULL;
+ type_list_t *entry;
+
+ pos += strappend(&buf, &len, pos, "%s%s", prefix, type->name);
+ for (entry = params; entry; entry = entry->next)
+ {
+ for (type = entry->type; type->type_type == TYPE_POINTER; type = type_pointer_get_ref_type(type)) {}
+ pos += strappend(&buf, &len, pos, "_%s", type->name);
+ }
+
+ return buf;
+}
+
type_t *type_new_function(var_list_t *args)
{
var_t *arg;
@@ -1112,11 +1129,13 @@ type_t *type_parameterized_type_specialize_declare(type_t *type, type_list_t *pa
new_type->name = format_parameterized_type_name(type, params);
reg_type(new_type, new_type->name, new_type->namespace, 0);
new_type->c_name = format_parameterized_type_c_name(type, params, "");
+ new_type->short_name = format_parameterized_type_short_name(type, params, "");
if (new_type->type_type == TYPE_DELEGATE)
{
new_type->details.delegate.iface = duptype(tmpl->details.delegate.iface, 0);
compute_delegate_iface_names(new_type, type, params);
+ new_type->details.delegate.iface->short_name = format_parameterized_type_short_name(type, params, "I");
}
return new_type;
diff --git a/tools/widl/widltypes.h b/tools/widl/widltypes.h
index a1fce0ef87d..21598a9213d 100644
--- a/tools/widl/widltypes.h
+++ b/tools/widl/widltypes.h
@@ -504,6 +504,7 @@ struct _type_t {
} details;
const char *c_name;
const char *signature;
+ const char *short_name;
unsigned int typestring_offset;
unsigned int ptrdesc; /* used for complex structs */
int typelib_idx;
--
2.20.1

View File

@ -1,29 +0,0 @@
From 47ca5f5da753a7aef76f63d14b7be3a50a6889aa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Fri, 25 Sep 2020 17:05:17 +0200
Subject: [PATCH] include: Add IVectorView<HSTRING> declaration to
windows.foundation.idl.
---
include/windows.foundation.idl | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl
index 9583fa5bcc8..9b9b40897be 100644
--- a/include/windows.foundation.idl
+++ b/include/windows.foundation.idl
@@ -157,3 +157,11 @@ namespace Windows {
#endif
}
}
+
+namespace Windows {
+ namespace Foundation {
+ declare {
+ interface Windows.Foundation.Collections.IVectorView<HSTRING>;
+ }
+ }
+}
--
2.20.1

View File

@ -1,3 +0,0 @@
Fixes: [49998] widl - Support WinRT idls
# In the process of upstreaming.
Disabled: true

View File

@ -1,4 +1,4 @@
From 57e813244a401d27959d8689942e787fafcaa15b Mon Sep 17 00:00:00 2001
From 101a33fbffa02e2437d4ef62bc830c6b72e29280 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.
@ -17,10 +17,10 @@ Subject: [PATCH] windows.gaming.input: Add stub dll.
create mode 100644 include/windows.gaming.input.idl
diff --git a/configure.ac b/configure.ac
index 6fbf7f2d4e5..bdcfe84f87d 100644
index 78720ab188f..405d1a6ecc4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3850,6 +3850,7 @@ WINE_CONFIG_MAKEFILE(dlls/win32s16.dll16,enable_win16)
@@ -3796,6 +3796,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)
@ -195,12 +195,12 @@ index 00000000000..2b6abc4dd84
+ return S_OK;
+}
diff --git a/include/Makefile.in b/include/Makefile.in
index 466ac6fd5dc..24cc64a3407 100644
index 6c16e01a271..ac403a78a4d 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -753,6 +753,7 @@ SOURCES = \
windef.h \
@@ -748,6 +748,7 @@ SOURCES = \
windns.h \
windows.foundation.collections.idl \
windows.foundation.idl \
+ windows.gaming.input.idl \
windows.h \
@ -237,5 +237,5 @@ index 00000000000..575f34ccb58
+import "inspectable.idl";
+import "windows.foundation.idl";
--
2.29.2
2.20.1

View File

@ -1,31 +1,32 @@
From b24e0e059c1734c3a9d287d0be1450c2b29cc259 Mon Sep 17 00:00:00 2001
From ad17bb4a309b632d3075f427d46afa8870720184 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Mon, 12 Oct 2020 12:50:32 +0200
Subject: [PATCH 2/9] windows.gaming.input: Implement IGamepadStatics stubs.
Date: Sat, 20 Feb 2021 00:51:48 +0100
Subject: [PATCH] windows.gaming.input: Implement IGamepadStatics stubs.
---
.../windows.gaming.input_main.c | 127 +++++++++++++++++
include/windows.foundation.idl | 11 ++
.../windows.gaming.input_main.c | 125 +++++++++++++++++
include/windows.foundation.collections.idl | 6 +
include/windows.foundation.idl | 5 +
include/windows.gaming.input.idl | 128 ++++++++++++++++++
loader/wine.inf.in | 1 +
4 files changed, 267 insertions(+)
5 files changed, 265 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..33c260b27b3 100644
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,6 +10,10 @@
@@ -10,7 +10,10 @@
#include "initguid.h"
#include "activation.h"
+#define WIDL_USING_IVECTORVIEW_1_WINDOWS_GAMING_INPUT_GAMEPAD
+#define WIDL_USING_IEVENTHANDLER_1_WINDOWS_GAMING_INPUT_GAMEPAD
+#define WIDL_USING_WINDOWS_GAMING_INPUT_IGAMEPAD
+#define WIDL_USING_WINDOWS_GAMING_INPUT_IGAMEPADSTATICS
+#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"
@@ -27,6 +31,7 @@ static const char *debugstr_hstring(HSTRING hstr)
WINE_DEFAULT_DEBUG_CHANNEL(input);
@@ -27,6 +30,7 @@ static const char *debugstr_hstring(HSTRING hstr)
struct windows_gaming_input
{
IActivationFactory IActivationFactory_iface;
@ -33,7 +34,7 @@ index 2b6abc4dd84..33c260b27b3 100644
LONG ref;
};
@@ -35,6 +40,120 @@ static inline struct windows_gaming_input *impl_from_IActivationFactory(IActivat
@@ -35,6 +39,119 @@ static inline struct windows_gaming_input *impl_from_IActivationFactory(IActivat
return CONTAINING_RECORD(iface, struct windows_gaming_input, IActivationFactory_iface);
}
@ -129,7 +130,6 @@ index 2b6abc4dd84..33c260b27b3 100644
+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;
+}
@ -154,7 +154,7 @@ index 2b6abc4dd84..33c260b27b3 100644
static HRESULT STDMETHODCALLTYPE windows_gaming_input_QueryInterface(
IActivationFactory *iface, REFIID iid, void **out)
{
@@ -50,6 +169,13 @@ static HRESULT STDMETHODCALLTYPE windows_gaming_input_QueryInterface(
@@ -50,6 +167,13 @@ static HRESULT STDMETHODCALLTYPE windows_gaming_input_QueryInterface(
return S_OK;
}
@ -168,7 +168,7 @@ index 2b6abc4dd84..33c260b27b3 100644
FIXME("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
*out = NULL;
return E_NOINTERFACE;
@@ -117,6 +243,7 @@ static const struct IActivationFactoryVtbl activation_factory_vtbl =
@@ -117,6 +241,7 @@ static const struct IActivationFactoryVtbl activation_factory_vtbl =
static struct windows_gaming_input windows_gaming_input =
{
{&activation_factory_vtbl},
@ -176,13 +176,30 @@ index 2b6abc4dd84..33c260b27b3 100644
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/include/windows.foundation.idl b/include/windows.foundation.idl
index 9b9b40897be..dd613b68b00 100644
index 3c60278cf05..90bbc876339 100644
--- a/include/windows.foundation.idl
+++ b/include/windows.foundation.idl
@@ -26,6 +26,11 @@ import "windowscontracts.idl";
/* import "eventtoken.idl"; */
@@ -27,6 +27,11 @@ import "windowscontracts.idl";
/* import "ivectorchangedeventargs.idl"; */
import "windows.foundation.collections.idl";
+typedef struct EventRegistrationToken
+{
@ -192,19 +209,6 @@ index 9b9b40897be..dd613b68b00 100644
namespace Windows {
namespace Foundation {
[contract(Windows.Foundation.FoundationContract, 1.0)]
@@ -119,6 +124,12 @@ namespace Windows {
]
delegate void EventHandler<T>([in] IInspectable *sender, [in] T args);
+ [
+ contract(Windows.Foundation.FoundationContract, 1.0),
+ uuid(9de1c534-6ae1-11e0-84e1-18a905bcc53f)
+ ]
+ delegate void TypedEventHandler<TSender, TResult>([in] TSender sender, [in] TResult args);
+
namespace Collections
{
[
diff --git a/include/windows.gaming.input.idl b/include/windows.gaming.input.idl
index 575f34ccb58..b5af4e24a66 100644
--- a/include/windows.gaming.input.idl
@ -342,7 +346,7 @@ index 575f34ccb58..b5af4e24a66 100644
+ }
+}
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
index 157b146a857..9d738859b81 100644
index db816327a51..79a7b2c0503 100644
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -713,6 +713,7 @@ HKLM,%MciExtStr%,"wmx",,"MPEGVideo"
@ -354,5 +358,5 @@ index 157b146a857..9d738859b81 100644
HKLM,Software\Borland\Database Engine\Settings\SYSTEM\INIT,SHAREDMEMLOCATION,,9000
HKLM,Software\Clients\Mail,,2,"Native Mail Client"
--
2.28.0
2.20.1

View File

@ -1,18 +1,18 @@
From 39cabcb0a109f9705740120186858defe1c1cf2c Mon Sep 17 00:00:00 2001
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 3/9] windows.gaming.input: Implement IGamepadStatics::Gamepads
Subject: [PATCH] windows.gaming.input: Implement IGamepadStatics::Gamepads
stubs.
---
.../windows.gaming.input_main.c | 112 +++++++++++++++++-
1 file changed, 111 insertions(+), 1 deletion(-)
.../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 33c260b27b3..a7d9a89244b 100644
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
@@ -32,6 +32,7 @@ struct windows_gaming_input
@@ -31,6 +31,7 @@ struct windows_gaming_input
{
IActivationFactory IActivationFactory_iface;
IGamepadStatics IGamepadStatics_iface;
@ -20,7 +20,7 @@ index 33c260b27b3..a7d9a89244b 100644
LONG ref;
};
@@ -45,6 +46,113 @@ static inline struct windows_gaming_input *impl_from_IGamepadStatics(IGamepadSta
@@ -44,6 +45,113 @@ static inline struct windows_gaming_input *impl_from_IGamepadStatics(IGamepadSta
return CONTAINING_RECORD(iface, struct windows_gaming_input, IGamepadStatics_iface);
}
@ -134,9 +134,11 @@ index 33c260b27b3..a7d9a89244b 100644
static HRESULT STDMETHODCALLTYPE gamepad_statics_QueryInterface(
IGamepadStatics *iface, REFIID iid, void **out)
{
@@ -134,7 +242,8 @@ static HRESULT STDMETHODCALLTYPE gamepad_statics_get_Gamepads(
@@ -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);
+ 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;
@ -144,7 +146,7 @@ index 33c260b27b3..a7d9a89244b 100644
}
static const struct IGamepadStaticsVtbl gamepad_statics_vtbl =
@@ -244,6 +353,7 @@ static struct windows_gaming_input windows_gaming_input =
@@ -242,6 +352,7 @@ static struct windows_gaming_input windows_gaming_input =
{
{&activation_factory_vtbl},
{&gamepad_statics_vtbl},
@ -153,5 +155,5 @@ index 33c260b27b3..a7d9a89244b 100644
};
--
2.28.0
2.20.1

View File

@ -1,18 +1,18 @@
From bedffa28b0137a32106c3c126e842c9469555d98 Mon Sep 17 00:00:00 2001
From e6de4311bc082beedabf8aec5d43ab03c009e0b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 17:59:51 +0200
Subject: [PATCH 4/9] windows.gaming.input: Fake empty
IGamepadStatics::Gamepads vector.
Subject: [PATCH] windows.gaming.input: Fake empty IGamepadStatics::Gamepads
vector.
---
.../windows.gaming.input_main.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
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 a7d9a89244b..7d81e22ddd6 100644
index 444eb687175..0df7927a57b 100644
--- a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
@@ -113,28 +113,31 @@ static HRESULT STDMETHODCALLTYPE vector_view_gamepad_GetAt(
@@ -112,28 +112,31 @@ 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);
@ -49,5 +49,5 @@ index a7d9a89244b..7d81e22ddd6 100644
static const struct IVectorView_GamepadVtbl vector_view_gamepad_vtbl =
--
2.28.0
2.20.1

View File

@ -1,17 +1,17 @@
From 3e2a77be328b8fe724256ffa1ebd5bae72c27a70 Mon Sep 17 00:00:00 2001
From 9ea954d5306aa3240584c86fff56972b718fd605 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 17:57:05 +0200
Subject: [PATCH 5/9] windows.gaming.input: Fake IEventHandler_Gamepad support.
Subject: [PATCH] windows.gaming.input: Fake IEventHandler_Gamepad support.
---
dlls/windows.gaming.input.dll/windows.gaming.input_main.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
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 7d81e22ddd6..dad5a196214 100644
index 0df7927a57b..dec9d39e7a3 100644
--- a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
@@ -216,28 +216,28 @@ static HRESULT STDMETHODCALLTYPE gamepad_statics_add_GamepadAdded(
@@ -215,28 +215,28 @@ 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);
@ -45,5 +45,5 @@ index 7d81e22ddd6..dad5a196214 100644
static HRESULT STDMETHODCALLTYPE gamepad_statics_get_Gamepads(
--
2.28.0
2.20.1

View File

@ -1,44 +1,29 @@
From 3d6807e5da2a30f33b7517a3d3a3457c53a4ebc7 Mon Sep 17 00:00:00 2001
From b875ea79f656a5192b8214f2598cd62866b9fbee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Mon, 12 Oct 2020 12:50:32 +0200
Subject: [PATCH] windows.gaming.input: Implement IRawGameControllerStatics
stubs.
---
.../windows.gaming.input_main.c | 142 +++++++++++++
.../windows.gaming.input_main.c | 130 ++++++++++++
include/Makefile.in | 3 +
include/asyncinfo.idl | 45 ++++
include/windows.foundation.idl | 23 ++-
include/windows.foundation.collections.idl | 21 +-
include/windows.foundation.idl | 11 +-
.../windows.gaming.input.forcefeedback.idl | 111 ++++++++++
include/windows.gaming.input.idl | 195 ++++++++++++++++++
include/windows.system.idl | 70 +++++++
loader/wine.inf.in | 1 +
8 files changed, 589 insertions(+), 1 deletion(-)
9 files changed, 585 insertions(+), 2 deletions(-)
create mode 100644 include/asyncinfo.idl
create mode 100644 include/windows.gaming.input.forcefeedback.idl
create mode 100644 include/windows.system.idl
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 dad5a196214..078043b0963 100644
index dec9d39e7a3..1a40a8ddc35 100644
--- a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
@@ -11,9 +11,15 @@
#include "activation.h"
#define WIDL_USING_IVECTORVIEW_1_WINDOWS_GAMING_INPUT_GAMEPAD
+#define WIDL_USING_IVECTORVIEW_1_WINDOWS_GAMING_INPUT_RAWGAMECONTROLLER
#define WIDL_USING_IEVENTHANDLER_1_WINDOWS_GAMING_INPUT_GAMEPAD
+#define WIDL_USING_IEVENTHANDLER_1_WINDOWS_GAMING_INPUT_RAWGAMECONTROLLER
#define WIDL_USING_WINDOWS_GAMING_INPUT_IGAMEPAD
#define WIDL_USING_WINDOWS_GAMING_INPUT_IGAMEPADSTATICS
+#define WIDL_USING_WINDOWS_GAMING_INPUT_IRAWGAMECONTROLLERSTATICS
+#define WIDL_USING_WINDOWS_GAMING_INPUT_IGAMECONTROLLER
+#define WIDL_USING_WINDOWS_GAMING_INPUT_IRAWGAMECONTROLLER
+#define WIDL_USING_WINDOWS_GAMING_INPUT_RAWGAMECONTROLLER
#include "windows.foundation.h"
#include "windows.gaming.input.h"
@@ -32,6 +38,7 @@ struct windows_gaming_input
@@ -31,6 +31,7 @@ struct windows_gaming_input
{
IActivationFactory IActivationFactory_iface;
IGamepadStatics IGamepadStatics_iface;
@ -46,7 +31,7 @@ index dad5a196214..078043b0963 100644
IVectorView_Gamepad IVectorView_Gamepad_iface;
LONG ref;
};
@@ -46,11 +53,21 @@ static inline struct windows_gaming_input *impl_from_IGamepadStatics(IGamepadSta
@@ -45,6 +46,11 @@ static inline struct windows_gaming_input *impl_from_IGamepadStatics(IGamepadSta
return CONTAINING_RECORD(iface, struct windows_gaming_input, IGamepadStatics_iface);
}
@ -58,17 +43,7 @@ index dad5a196214..078043b0963 100644
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 inline struct windows_gaming_input *impl_from_IVectorView_RawGameController(IVectorView_RawGameController *iface)
+{
+ return CONTAINING_RECORD(iface, struct windows_gaming_input, IVectorView_RawGameController_iface);
+}
+
static HRESULT STDMETHODCALLTYPE vector_view_gamepad_QueryInterface(
IVectorView_Gamepad *iface, REFIID iid, void **out)
{
@@ -266,6 +283,123 @@ static const struct IGamepadStaticsVtbl gamepad_statics_vtbl =
@@ -265,6 +271,122 @@ static const struct IGamepadStaticsVtbl gamepad_statics_vtbl =
gamepad_statics_get_Gamepads,
};
@ -159,7 +134,6 @@ index dad5a196214..078043b0963 100644
+static HRESULT STDMETHODCALLTYPE raw_game_controller_statics_get_RawGameControllers(
+ IRawGameControllerStatics *iface, IVectorView_RawGameController **value)
+{
+ struct windows_gaming_input *impl = impl_from_IRawGameControllerStatics(iface);
+ FIXME("iface %p, value %p stub!\n", iface, value);
+ return E_NOTIMPL;
+}
@ -192,7 +166,7 @@ index dad5a196214..078043b0963 100644
static HRESULT STDMETHODCALLTYPE windows_gaming_input_QueryInterface(
IActivationFactory *iface, REFIID iid, void **out)
{
@@ -288,6 +422,13 @@ static HRESULT STDMETHODCALLTYPE windows_gaming_input_QueryInterface(
@@ -287,6 +409,13 @@ static HRESULT STDMETHODCALLTYPE windows_gaming_input_QueryInterface(
return S_OK;
}
@ -206,7 +180,7 @@ index dad5a196214..078043b0963 100644
FIXME("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
*out = NULL;
return E_NOINTERFACE;
@@ -356,6 +497,7 @@ static struct windows_gaming_input windows_gaming_input =
@@ -355,6 +484,7 @@ static struct windows_gaming_input windows_gaming_input =
{
{&activation_factory_vtbl},
{&gamepad_statics_vtbl},
@ -215,10 +189,10 @@ index dad5a196214..078043b0963 100644
0
};
diff --git a/include/Makefile.in b/include/Makefile.in
index 24cc64a3407..2f68c258f1b 100644
index ac403a78a4d..90e9b660633 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -21,6 +21,7 @@ SOURCES = \
@@ -20,6 +20,7 @@ SOURCES = \
appmodel.h \
asferr.h \
asptlb.idl \
@ -226,8 +200,8 @@ index 24cc64a3407..2f68c258f1b 100644
asynot.idl \
asysta.idl \
atlbase.h \
@@ -754,8 +755,10 @@ SOURCES = \
windns.h \
@@ -749,8 +750,10 @@ SOURCES = \
windows.foundation.collections.idl \
windows.foundation.idl \
windows.gaming.input.idl \
+ windows.gaming.input.forcefeedback.idl \
@ -288,10 +262,10 @@ index 00000000000..61784bc65ac
+ HRESULT Cancel();
+ HRESULT Close();
+}
diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl
index dd613b68b00..35ce1d68322 100644
--- a/include/windows.foundation.idl
+++ b/include/windows.foundation.idl
diff --git a/include/windows.foundation.collections.idl b/include/windows.foundation.collections.idl
index ba860a1e82e..2562d34791f 100644
--- a/include/windows.foundation.collections.idl
+++ b/include/windows.foundation.collections.idl
@@ -21,7 +21,7 @@
#endif
@ -300,10 +274,10 @@ index dd613b68b00..35ce1d68322 100644
+import "asyncinfo.idl";
import "windowscontracts.idl";
/* import "eventtoken.idl"; */
/* import "ivectorchangedeventargs.idl"; */
@@ -130,6 +130,25 @@ namespace Windows {
@@ -53,6 +53,25 @@ cpp_quote("#endif")
]
delegate void TypedEventHandler<TSender, TResult>([in] TSender sender, [in] TResult args);
delegate HRESULT TypedEventHandler<TSender, TArgs>([in] TSender sender, [in] TArgs args);
+ interface IAsyncOperation<TResult>;
+
@ -311,7 +285,7 @@ index dd613b68b00..35ce1d68322 100644
+ contract(Windows.Foundation.FoundationContract, 1.0),
+ uuid(fcdcf02c-e5d8-4478-915a-4d90b74b83a5)
+ ]
+ delegate void AsyncOperationCompletedHandler<TResult>([in] IAsyncOperation<TResult> *info, [in] AsyncStatus status);
+ delegate HRESULT AsyncOperationCompletedHandler<TResult>([in] IAsyncOperation<TResult> *info, [in] AsyncStatus status);
+
+ [
+ contract(Windows.Foundation.FoundationContract, 1.0),
@ -327,15 +301,32 @@ index dd613b68b00..35ce1d68322 100644
namespace Collections
{
[
@@ -173,6 +192,8 @@ namespace Windows {
namespace Foundation {
declare {
interface Windows.Foundation.Collections.IVectorView<HSTRING>;
+ interface Windows.Foundation.AsyncOperationCompletedHandler<boolean>;
+ interface Windows.Foundation.IAsyncOperation<boolean>;
diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl
index 90bbc876339..2bed3d54cda 100644
--- a/include/windows.foundation.idl
+++ b/include/windows.foundation.idl
@@ -21,7 +21,7 @@
#endif
import "inspectable.idl";
-/* import "asyncinfo.idl"; */
+import "asyncinfo.idl";
import "windowscontracts.idl";
/* import "eventtoken.idl"; */
/* import "ivectorchangedeventargs.idl"; */
@@ -119,3 +119,12 @@ namespace Windows {
}
}
}
+
+namespace Windows {
+ namespace Foundation {
+ declare {
+ interface Windows.Foundation.AsyncOperationCompletedHandler<boolean>;
+ interface Windows.Foundation.IAsyncOperation<boolean>;
+ }
+ }
+}
diff --git a/include/windows.gaming.input.forcefeedback.idl b/include/windows.gaming.input.forcefeedback.idl
new file mode 100644
index 00000000000..fa9da2f7656
@ -792,10 +783,10 @@ index 00000000000..824441eaff9
+ }
+}
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
index 8d65bfb72d1..9e02369f341 100644
index 79a7b2c0503..71c6cac0366 100644
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -718,6 +718,7 @@ HKLM,%MciExtStr%,"wvx",,"MPEGVideo"
@@ -714,6 +714,7 @@ HKLM,%MciExtStr%,"wvx",,"MPEGVideo"
[Misc]
HKLM,Software\Microsoft\WindowsRuntime\ActivatableClassId\Windows.Gaming.Input.Gamepad,"DllPath",2,"Windows.Gaming.Input.dll"
@ -804,5 +795,5 @@ index 8d65bfb72d1..9e02369f341 100644
HKLM,Software\Borland\Database Engine\Settings\SYSTEM\INIT,SHAREDMEMLOCATION,,9000
HKLM,Software\Clients\Mail,,2,"Native Mail Client"
--
2.29.2
2.20.1

View File

@ -1,18 +1,18 @@
From 655ea5abd545db3990caf7c79909cb4993b52cef Mon Sep 17 00:00:00 2001
From 0386aec8078e9f75e1841db486a187bc9d07249d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 18:02:39 +0200
Subject: [PATCH 7/9] windows.gaming.input: Implement
Subject: [PATCH] windows.gaming.input: Implement
IRawGameControllerStatics::RawGameControllers stubs.
---
.../windows.gaming.input_main.c | 107 +++++++++++++++++-
1 file changed, 106 insertions(+), 1 deletion(-)
.../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 078043b0963..c73f08b248d 100644
index 1a40a8ddc35..b56a2a5962f 100644
--- a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
@@ -40,6 +40,7 @@ struct windows_gaming_input
@@ -33,6 +33,7 @@ struct windows_gaming_input
IGamepadStatics IGamepadStatics_iface;
IRawGameControllerStatics IRawGameControllerStatics_iface;
IVectorView_Gamepad IVectorView_Gamepad_iface;
@ -20,7 +20,19 @@ index 078043b0963..c73f08b248d 100644
LONG ref;
};
@@ -173,6 +174,108 @@ static const struct IVectorView_GamepadVtbl vector_view_gamepad_vtbl =
@@ -56,6 +57,11 @@ static inline struct windows_gaming_input *impl_from_IVectorView_Gamepad(IVector
return CONTAINING_RECORD(iface, struct windows_gaming_input, IVectorView_Gamepad_iface);
}
+static inline struct windows_gaming_input *impl_from_IVectorView_RawGameController(IVectorView_RawGameController *iface)
+{
+ return CONTAINING_RECORD(iface, struct windows_gaming_input, IVectorView_RawGameController_iface);
+}
+
static HRESULT STDMETHODCALLTYPE vector_view_gamepad_QueryInterface(
IVectorView_Gamepad *iface, REFIID iid, void **out)
{
@@ -161,6 +167,108 @@ static const struct IVectorView_GamepadVtbl vector_view_gamepad_vtbl =
vector_view_gamepad_GetMany,
};
@ -129,9 +141,11 @@ index 078043b0963..c73f08b248d 100644
static HRESULT STDMETHODCALLTYPE gamepad_statics_QueryInterface(
IGamepadStatics *iface, REFIID iid, void **out)
{
@@ -372,7 +475,8 @@ static HRESULT STDMETHODCALLTYPE raw_game_controller_statics_get_RawGameControll
@@ -358,8 +466,10 @@ static HRESULT STDMETHODCALLTYPE raw_game_controller_statics_remove_RawGameContr
static HRESULT STDMETHODCALLTYPE raw_game_controller_statics_get_RawGameControllers(
IRawGameControllerStatics *iface, IVectorView_RawGameController **value)
{
struct windows_gaming_input *impl = impl_from_IRawGameControllerStatics(iface);
+ struct windows_gaming_input *impl = impl_from_IRawGameControllerStatics(iface);
FIXME("iface %p, value %p stub!\n", iface, value);
- return E_NOTIMPL;
+ *value = &impl->IVectorView_RawGameController_iface;
@ -139,7 +153,7 @@ index 078043b0963..c73f08b248d 100644
}
static HRESULT STDMETHODCALLTYPE raw_game_controller_statics_FromGameController(
@@ -499,6 +603,7 @@ static struct windows_gaming_input windows_gaming_input =
@@ -486,6 +596,7 @@ static struct windows_gaming_input windows_gaming_input =
{&gamepad_statics_vtbl},
{&raw_game_controller_statics_vtbl},
{&vector_view_gamepad_vtbl},
@ -148,5 +162,5 @@ index 078043b0963..c73f08b248d 100644
};
--
2.28.0
2.20.1

View File

@ -1,7 +1,7 @@
From 66d48431b91c17e3f87246e2c2243b2c2b5b30fb Mon Sep 17 00:00:00 2001
From 5350d7a4983151aef2435687b43017a78026d3c9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 18:03:24 +0200
Subject: [PATCH 8/9] windows.gaming.input: Fake empty
Subject: [PATCH] windows.gaming.input: Fake empty
IRawGameControllerStatics::RawGameControllers vector.
---
@ -9,10 +9,10 @@ Subject: [PATCH 8/9] windows.gaming.input: Fake empty
1 file changed, 7 insertions(+), 4 deletions(-)
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 c73f08b248d..53f0b7e61fd 100644
index b56a2a5962f..813668a32da 100644
--- a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
@@ -236,28 +236,31 @@ static HRESULT STDMETHODCALLTYPE vector_view_raw_game_controller_GetAt(
@@ -229,28 +229,31 @@ static HRESULT STDMETHODCALLTYPE vector_view_raw_game_controller_GetAt(
IVectorView_RawGameController *iface, ULONG index, IRawGameController **value)
{
FIXME("iface %p, index %#x, value %p stub!\n", iface, index, value);
@ -49,5 +49,5 @@ index c73f08b248d..53f0b7e61fd 100644
static const struct IVectorView_RawGameControllerVtbl vector_view_raw_game_controller_vtbl =
--
2.28.0
2.20.1

View File

@ -1,18 +1,18 @@
From 47c3fa730f9607b5907747a143cf0458a2a76c35 Mon Sep 17 00:00:00 2001
From 0f7f9030a46d09da6d75c36a46b7854fb0128a46 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 18:03:42 +0200
Subject: [PATCH 9/9] windows.gaming.input: Fake
IEventHandler_RawGameController support.
Subject: [PATCH] windows.gaming.input: Fake IEventHandler_RawGameController
support.
---
dlls/windows.gaming.input.dll/windows.gaming.input_main.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
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 53f0b7e61fd..a9d09d4a446 100644
index 813668a32da..6274a9144dc 100644
--- a/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
+++ b/dlls/windows.gaming.input.dll/windows.gaming.input_main.c
@@ -449,28 +449,28 @@ static HRESULT STDMETHODCALLTYPE raw_game_controller_statics_add_RawGameControll
@@ -442,28 +442,28 @@ static HRESULT STDMETHODCALLTYPE raw_game_controller_statics_add_RawGameControll
IRawGameControllerStatics *iface, IEventHandler_RawGameController *value, EventRegistrationToken* token)
{
FIXME("iface %p, value %p, token %p stub!\n", iface, value, token);
@ -46,5 +46,5 @@ index 53f0b7e61fd..a9d09d4a446 100644
static HRESULT STDMETHODCALLTYPE raw_game_controller_statics_get_RawGameControllers(
--
2.28.0
2.20.1

View File

@ -6,5 +6,3 @@
# To support Death Stranding
Fixes: [49756] windows.gaming.input: New DLL
Depends: windows.media.speech.dll
# In the process of upstreaming.
Disabled: true

View File

@ -1,4 +1,4 @@
From 06487c40a8cc1cb928992d8873ed6e778d9e15b9 Mon Sep 17 00:00:00 2001
From 5f5660930fa0579352bdf3bbcf85b80bfbaf0b33 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Fri, 28 Aug 2020 15:59:50 +0200
Subject: [PATCH] windows.globalization: Add stub dll.
@ -18,10 +18,10 @@ Subject: [PATCH] windows.globalization: Add stub dll.
create mode 100644 include/windows.globalization.idl
diff --git a/configure.ac b/configure.ac
index bdcfe84f87d..4654e994e29 100644
index 405d1a6ecc4..e291201a541 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3851,6 +3851,7 @@ WINE_CONFIG_MAKEFILE(dlls/win87em.dll16,enable_win16)
@@ -3797,6 +3797,7 @@ 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)
@ -197,10 +197,10 @@ index 00000000000..840ce08c0c5
+ return S_OK;
+}
diff --git a/include/Makefile.in b/include/Makefile.in
index 2f68c258f1b..69837a1ca97 100644
index 90e9b660633..95013040926 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -756,6 +756,7 @@ SOURCES = \
@@ -751,6 +751,7 @@ SOURCES = \
windows.foundation.idl \
windows.gaming.input.idl \
windows.gaming.input.forcefeedback.idl \
@ -242,10 +242,10 @@ index 00000000000..c3f80999af5
+namespace Windows {
+}
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
index 9e02369f341..06bb1e68c24 100644
index 71c6cac0366..ba7b1ee08c9 100644
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -720,6 +720,7 @@ HKLM,%MciExtStr%,"wvx",,"MPEGVideo"
@@ -716,6 +716,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"
@ -254,5 +254,5 @@ index 9e02369f341..06bb1e68c24 100644
HKLM,Software\Clients\Mail,,2,"Native Mail Client"
HKLM,Software\Clients\Mail\Native Mail Client,,2,"Native Mail Client"
--
2.29.2
2.20.1

View File

@ -1,4 +1,4 @@
From 7892b025109656123c7253739c9c1b0f0f0b507c Mon Sep 17 00:00:00 2001
From f184cbcf4416e8a5365bd6c63cc5649e9e53393c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 18:11:35 +0200
Subject: [PATCH] windows.globalization: Implement
@ -6,11 +6,12 @@ Subject: [PATCH] windows.globalization: Implement
---
dlls/windows.globalization.dll/Makefile.in | 2 +-
.../windows.globalization_main.c | 133 ++++++++++++++++++
.../windows.globalization_main.c | 134 ++++++++++++++++++
include/Makefile.in | 1 +
include/windows.foundation.idl | 1 +
include/windows.globalization.idl | 20 ++-
include/windows.system.userprofile.idl | 56 ++++++++
5 files changed, 210 insertions(+), 2 deletions(-)
6 files changed, 212 insertions(+), 2 deletions(-)
create mode 100644 include/windows.system.userprofile.idl
diff --git a/dlls/windows.globalization.dll/Makefile.in b/dlls/windows.globalization.dll/Makefile.in
@ -25,20 +26,23 @@ index 25dc1cac3e6..7ddd97aef52 100644
C_SRCS = \
windows.globalization_main.c
diff --git a/dlls/windows.globalization.dll/windows.globalization_main.c b/dlls/windows.globalization.dll/windows.globalization_main.c
index 840ce08c0c5..97afc941219 100644
index 840ce08c0c5..5bb0b46866d 100644
--- a/dlls/windows.globalization.dll/windows.globalization_main.c
+++ b/dlls/windows.globalization.dll/windows.globalization_main.c
@@ -10,6 +10,9 @@
@@ -10,8 +10,12 @@
#include "initguid.h"
#include "activation.h"
+#define WIDL_USING_IVECTORVIEW_1_HSTRING
+#define WIDL_USING_WINDOWS_GLOBALIZATION_DAYOFWEEK
+#define WIDL_USING_WINDOWS_SYSTEM_USERPROFILE_IGLOBALIZATIONPREFERENCESSTATICS
+#define WIDL_using_Windows_Foundation
+#define WIDL_using_Windows_Foundation_Collections
#include "windows.foundation.h"
+#define WIDL_using_Windows_Globalization
#include "windows.globalization.h"
+#define WIDL_using_Windows_System_UserProfile
#include "windows.system.userprofile.h"
@@ -28,6 +31,7 @@ static const char *debugstr_hstring(HSTRING hstr)
WINE_DEFAULT_DEBUG_CHANNEL(locale);
@@ -28,6 +32,7 @@ static const char *debugstr_hstring(HSTRING hstr)
struct windows_globalization
{
IActivationFactory IActivationFactory_iface;
@ -46,7 +50,7 @@ index 840ce08c0c5..97afc941219 100644
LONG ref;
};
@@ -36,6 +40,127 @@ static inline struct windows_globalization *impl_from_IActivationFactory(IActiva
@@ -36,6 +41,127 @@ static inline struct windows_globalization *impl_from_IActivationFactory(IActiva
return CONTAINING_RECORD(iface, struct windows_globalization, IActivationFactory_iface);
}
@ -174,7 +178,7 @@ index 840ce08c0c5..97afc941219 100644
static HRESULT STDMETHODCALLTYPE windows_globalization_QueryInterface(
IActivationFactory *iface, REFIID iid, void **out)
{
@@ -51,6 +176,13 @@ static HRESULT STDMETHODCALLTYPE windows_globalization_QueryInterface(
@@ -51,6 +177,13 @@ static HRESULT STDMETHODCALLTYPE windows_globalization_QueryInterface(
return S_OK;
}
@ -188,7 +192,7 @@ index 840ce08c0c5..97afc941219 100644
FIXME("%s not implemented, returning E_NOINTERFACE.\n", debugstr_guid(iid));
*out = NULL;
return E_NOINTERFACE;
@@ -118,6 +250,7 @@ static const struct IActivationFactoryVtbl activation_factory_vtbl =
@@ -118,6 +251,7 @@ static const struct IActivationFactoryVtbl activation_factory_vtbl =
static struct windows_globalization windows_globalization =
{
{&activation_factory_vtbl},
@ -197,10 +201,10 @@ index 840ce08c0c5..97afc941219 100644
};
diff --git a/include/Makefile.in b/include/Makefile.in
index 69837a1ca97..d6ae2988493 100644
index 95013040926..958530388b4 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -760,6 +760,7 @@ SOURCES = \
@@ -755,6 +755,7 @@ SOURCES = \
windows.h \
windows.media.speechsynthesis.idl \
windows.system.idl \
@ -208,6 +212,18 @@ index 69837a1ca97..d6ae2988493 100644
windowscontracts.idl \
windowsx.h \
wine/debug.h \
diff --git a/include/windows.foundation.idl b/include/windows.foundation.idl
index 2bed3d54cda..0d53fa6f407 100644
--- a/include/windows.foundation.idl
+++ b/include/windows.foundation.idl
@@ -125,6 +125,7 @@ namespace Windows {
declare {
interface Windows.Foundation.AsyncOperationCompletedHandler<boolean>;
interface Windows.Foundation.IAsyncOperation<boolean>;
+ interface Windows.Foundation.Collections.IVectorView<HSTRING>;
}
}
}
diff --git a/include/windows.globalization.idl b/include/windows.globalization.idl
index c3f80999af5..ac76455b847 100644
--- a/include/windows.globalization.idl
@ -303,5 +319,5 @@ index 00000000000..e2676f9dd89
+ }
+}
--
2.29.2
2.20.1

View File

@ -1,7 +1,7 @@
From 26dc75ab2eb7ac9f8c21da1d0f2be70fe2430460 Mon Sep 17 00:00:00 2001
From 4508defd1c20893e534824ea07821912745175a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 18:19:17 +0200
Subject: [PATCH 3/5] windows.globalization: Implement
Subject: [PATCH] windows.globalization: Implement
IGlobalizationPreferencesStatics::HomeGeographicRegion semi-stub.
Returning the system default country.
@ -10,10 +10,10 @@ Returning the system default country.
1 file changed, 16 insertions(+), 2 deletions(-)
diff --git a/dlls/windows.globalization.dll/windows.globalization_main.c b/dlls/windows.globalization.dll/windows.globalization_main.c
index 97afc941219..6d17317677e 100644
index 5bb0b46866d..83e269bead6 100644
--- a/dlls/windows.globalization.dll/windows.globalization_main.c
+++ b/dlls/windows.globalization.dll/windows.globalization_main.c
@@ -132,8 +132,22 @@ static HRESULT STDMETHODCALLTYPE globalization_preferences_get_Languages(IGlobal
@@ -133,8 +133,22 @@ static HRESULT STDMETHODCALLTYPE globalization_preferences_get_Languages(IGlobal
static HRESULT STDMETHODCALLTYPE globalization_preferences_get_HomeGeographicRegion(IGlobalizationPreferencesStatics *iface,
HSTRING* value)
{
@ -39,5 +39,5 @@ index 97afc941219..6d17317677e 100644
static HRESULT STDMETHODCALLTYPE globalization_preferences_get_WeekStartsOn(IGlobalizationPreferencesStatics *iface,
--
2.28.0
2.20.1

View File

@ -1,7 +1,7 @@
From 0eaa05ab9ae489154aefe7241b3189bb57d0af40 Mon Sep 17 00:00:00 2001
From d9b955f1d36e9356fdf4d069ca2c48269ba3fd9e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 18:20:27 +0200
Subject: [PATCH 4/5] windows.globalization: Implement
Subject: [PATCH] windows.globalization: Implement
IGlobalizationPreferencesStatics::Languages semi-stub.
Returning system default language in a 1-element HSTRING vector.
@ -10,10 +10,10 @@ Returning system default language in a 1-element HSTRING vector.
1 file changed, 175 insertions(+), 2 deletions(-)
diff --git a/dlls/windows.globalization.dll/windows.globalization_main.c b/dlls/windows.globalization.dll/windows.globalization_main.c
index 6d17317677e..16bcb9344dd 100644
index 83e269bead6..0d7a1bd6dcf 100644
--- a/dlls/windows.globalization.dll/windows.globalization_main.c
+++ b/dlls/windows.globalization.dll/windows.globalization_main.c
@@ -28,6 +28,165 @@ static const char *debugstr_hstring(HSTRING hstr)
@@ -29,6 +29,165 @@ static const char *debugstr_hstring(HSTRING hstr)
return wine_dbgstr_wn(str, len);
}
@ -179,7 +179,7 @@ index 6d17317677e..16bcb9344dd 100644
struct windows_globalization
{
IActivationFactory IActivationFactory_iface;
@@ -125,8 +284,22 @@ static HRESULT STDMETHODCALLTYPE globalization_preferences_get_Currencies(IGloba
@@ -126,8 +285,22 @@ static HRESULT STDMETHODCALLTYPE globalization_preferences_get_Currencies(IGloba
static HRESULT STDMETHODCALLTYPE globalization_preferences_get_Languages(IGlobalizationPreferencesStatics *iface,
IVectorView_HSTRING **value)
{
@ -205,5 +205,5 @@ index 6d17317677e..16bcb9344dd 100644
static HRESULT STDMETHODCALLTYPE globalization_preferences_get_HomeGeographicRegion(IGlobalizationPreferencesStatics *iface,
--
2.28.0
2.20.1

View File

@ -1,7 +1,7 @@
From 91eee8c901692177e62e86e7ac9e705de2b01c7a Mon Sep 17 00:00:00 2001
From 6538767a19e1d6ea0a50501b727be6851b765acd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 18:11:35 +0200
Subject: [PATCH 5/5] windows.globalization: Fake empty
Subject: [PATCH] windows.globalization: Fake empty
IGlobalizationPreferencesStatics properties.
---
@ -9,10 +9,10 @@ Subject: [PATCH 5/5] windows.globalization: Fake empty
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/windows.globalization.dll/windows.globalization_main.c b/dlls/windows.globalization.dll/windows.globalization_main.c
index 16bcb9344dd..c5da98cc22f 100644
index 0d7a1bd6dcf..ff33cf40bdc 100644
--- a/dlls/windows.globalization.dll/windows.globalization_main.c
+++ b/dlls/windows.globalization.dll/windows.globalization_main.c
@@ -264,21 +264,21 @@ static HRESULT STDMETHODCALLTYPE globalization_preferences_get_Calendars(IGlobal
@@ -265,21 +265,21 @@ static HRESULT STDMETHODCALLTYPE globalization_preferences_get_Calendars(IGlobal
IVectorView_HSTRING **value)
{
FIXME("iface %p, value %p stub!\n", iface, value);
@ -38,5 +38,5 @@ index 16bcb9344dd..c5da98cc22f 100644
static HRESULT STDMETHODCALLTYPE globalization_preferences_get_Languages(IGlobalizationPreferencesStatics *iface,
--
2.28.0
2.20.1

View File

@ -1,5 +1,3 @@
Fixes: [49740] windows.globalization: New DLL
Fixes: [49998] windows.globalization: New DLL
Depends: windows.gaming.input-dll
# In the process of upstreaming.
Disabled: true

View File

@ -1,7 +1,7 @@
From b38b826ee230339be27e83e42822a69afe13259f Mon Sep 17 00:00:00 2001
From e01b6dd56efc033ddb8b5e3951431c57f6953751 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 25 Aug 2020 19:07:58 +0200
Subject: [PATCH 1/4] windows.media.speech: Add stub dll.
Subject: [PATCH] windows.media.speech: Add stub dll.
---
configure.ac | 1 +
@ -15,10 +15,10 @@ Subject: [PATCH 1/4] windows.media.speech: Add stub dll.
create mode 100644 dlls/windows.media.speech.dll/windows.media.speech_main.c
diff --git a/configure.ac b/configure.ac
index a57697a0ddf..a8649a2e40b 100644
index caff5d1fe52..78720ab188f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3822,6 +3822,7 @@ WINE_CONFIG_MAKEFILE(dlls/win32s16.dll16,enable_win16)
@@ -3796,6 +3796,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)
@ -193,7 +193,7 @@ index 00000000000..c7c14deef78
+ return S_OK;
+}
diff --git a/loader/wine.inf.in b/loader/wine.inf.in
index ff9a221feaa..157b146a857 100644
index d5dd2d5b66b..db816327a51 100644
--- a/loader/wine.inf.in
+++ b/loader/wine.inf.in
@@ -713,6 +713,7 @@ HKLM,%MciExtStr%,"wmx",,"MPEGVideo"
@ -205,5 +205,5 @@ index ff9a221feaa..157b146a857 100644
HKLM,Software\Clients\Mail,,2,"Native Mail Client"
HKLM,Software\Clients\Mail\Native Mail Client,,2,"Native Mail Client"
--
2.28.0
2.20.1

View File

@ -1,27 +1,27 @@
From 7a0957631d225f7eee1bf4c6409f72eab76b3f92 Mon Sep 17 00:00:00 2001
From efd9cc1ddc4dd24cd605d07818942a390e9b6486 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Fri, 9 Oct 2020 13:53:55 +0200
Subject: [PATCH 2/4] windows.media.speech: Implement IInstalledVoicesStatic
stub.
Subject: [PATCH] windows.media.speech: Implement IInstalledVoicesStatic stub.
---
.../windows.media.speech_main.c | 104 ++++++++++++++++++
1 file changed, 104 insertions(+)
diff --git a/dlls/windows.media.speech.dll/windows.media.speech_main.c b/dlls/windows.media.speech.dll/windows.media.speech_main.c
index c7c14deef78..cb686ccc0b5 100644
index c7c14deef78..f12d9bab74d 100644
--- a/dlls/windows.media.speech.dll/windows.media.speech_main.c
+++ b/dlls/windows.media.speech.dll/windows.media.speech_main.c
@@ -10,6 +10,9 @@
@@ -10,7 +10,10 @@
#include "initguid.h"
#include "activation.h"
+#define WIDL_USING_IVECTORVIEW_1_WINDOWS_MEDIA_SPEECHSYNTHESIS_VOICEINFORMATION
+#define WIDL_USING_WINDOWS_MEDIA_SPEECHSYNTHESIS_IINSTALLEDVOICESSTATIC
+#define WIDL_USING_WINDOWS_MEDIA_SPEECHSYNTHESIS_IVOICEINFORMATION
+#define WIDL_using_Windows_Foundation
+#define WIDL_using_Windows_Foundation_Collections
#include "windows.foundation.h"
+#define WIDL_using_Windows_Media_SpeechSynthesis
#include "windows.media.speechsynthesis.h"
WINE_DEFAULT_DEBUG_CHANNEL(speech);
@@ -27,6 +30,7 @@ static const char *debugstr_hstring(HSTRING hstr)
struct windows_media_speech
{
@ -152,5 +152,5 @@ index c7c14deef78..cb686ccc0b5 100644
};
--
2.28.0
2.20.1

View File

@ -1,26 +1,18 @@
From 66203027d2c82fd502e1ff30213bc4ba09f73d5b Mon Sep 17 00:00:00 2001
From af5401ddc8d760f18eb73aaed30078b1c1fca6d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Tue, 13 Oct 2020 17:02:57 +0200
Subject: [PATCH 3/4] windows.media.speech: Implement
Subject: [PATCH] windows.media.speech: Implement
IInstalledVoicesStatic::AllVoices stub.
---
.../windows.media.speech_main.c | 114 +++++++++++++++++-
1 file changed, 113 insertions(+), 1 deletion(-)
.../windows.media.speech_main.c | 113 +++++++++++++++++-
1 file changed, 112 insertions(+), 1 deletion(-)
diff --git a/dlls/windows.media.speech.dll/windows.media.speech_main.c b/dlls/windows.media.speech.dll/windows.media.speech_main.c
index cb686ccc0b5..1f9c2bdc0b9 100644
index f12d9bab74d..69f434c87c4 100644
--- a/dlls/windows.media.speech.dll/windows.media.speech_main.c
+++ b/dlls/windows.media.speech.dll/windows.media.speech_main.c
@@ -13,6 +13,7 @@
#define WIDL_USING_IVECTORVIEW_1_WINDOWS_MEDIA_SPEECHSYNTHESIS_VOICEINFORMATION
#define WIDL_USING_WINDOWS_MEDIA_SPEECHSYNTHESIS_IINSTALLEDVOICESSTATIC
#define WIDL_USING_WINDOWS_MEDIA_SPEECHSYNTHESIS_IVOICEINFORMATION
+#define WIDL_USING_WINDOWS_MEDIA_SPEECHSYNTHESIS_VOICEINFORMATION
#include "windows.foundation.h"
#include "windows.media.speechsynthesis.h"
@@ -31,6 +32,7 @@ struct windows_media_speech
@@ -31,6 +31,7 @@ struct windows_media_speech
{
IActivationFactory IActivationFactory_iface;
IInstalledVoicesStatic IInstalledVoicesStatic_iface;
@ -28,7 +20,7 @@ index cb686ccc0b5..1f9c2bdc0b9 100644
LONG ref;
};
@@ -44,6 +46,113 @@ static inline struct windows_media_speech *impl_from_IInstalledVoicesStatic(IIns
@@ -44,6 +45,113 @@ static inline struct windows_media_speech *impl_from_IInstalledVoicesStatic(IIns
return CONTAINING_RECORD(iface, struct windows_media_speech, IInstalledVoicesStatic_iface);
}
@ -142,7 +134,7 @@ index cb686ccc0b5..1f9c2bdc0b9 100644
static HRESULT STDMETHODCALLTYPE installed_voices_static_QueryInterface(
IInstalledVoicesStatic *iface, REFIID iid, void **out)
{
@@ -106,8 +215,10 @@ static HRESULT STDMETHODCALLTYPE installed_voices_static_GetTrustLevel(
@@ -106,8 +214,10 @@ static HRESULT STDMETHODCALLTYPE installed_voices_static_GetTrustLevel(
static HRESULT STDMETHODCALLTYPE installed_voices_static_get_AllVoices(
IInstalledVoicesStatic *iface, IVectorView_VoiceInformation **value)
{
@ -154,7 +146,7 @@ index cb686ccc0b5..1f9c2bdc0b9 100644
}
static HRESULT STDMETHODCALLTYPE installed_voices_static_get_DefaultVoice(
@@ -221,6 +332,7 @@ static struct windows_media_speech windows_media_speech =
@@ -221,6 +331,7 @@ static struct windows_media_speech windows_media_speech =
{
{&activation_factory_vtbl},
{&installed_voices_static_vtbl},
@ -163,5 +155,5 @@ index cb686ccc0b5..1f9c2bdc0b9 100644
};
--
2.28.0
2.20.1

View File

@ -1,7 +1,7 @@
From 619f2108b20c843ca1ba75d18fb7cbc50c80bd5e Mon Sep 17 00:00:00 2001
From 4b0875adffb2552b89fa5c04a6eb8a50d36ab6a8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?R=C3=A9mi=20Bernon?= <rbernon@codeweavers.com>
Date: Fri, 9 Oct 2020 14:06:33 +0200
Subject: [PATCH 4/4] windows.media.speech: Fake empty
Subject: [PATCH] windows.media.speech: Fake empty
IInstalledVoicesStatic::AllVoices vector.
---
@ -9,10 +9,10 @@ Subject: [PATCH 4/4] windows.media.speech: Fake empty
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/dlls/windows.media.speech.dll/windows.media.speech_main.c b/dlls/windows.media.speech.dll/windows.media.speech_main.c
index 1f9c2bdc0b9..5fe2e60ec42 100644
index 69f434c87c4..bc075b16f17 100644
--- a/dlls/windows.media.speech.dll/windows.media.speech_main.c
+++ b/dlls/windows.media.speech.dll/windows.media.speech_main.c
@@ -113,28 +113,31 @@ static HRESULT STDMETHODCALLTYPE vector_view_voice_information_GetAt(
@@ -112,28 +112,31 @@ static HRESULT STDMETHODCALLTYPE vector_view_voice_information_GetAt(
IVectorView_VoiceInformation *iface, ULONG index, IVoiceInformation **value)
{
FIXME("iface %p, index %#x, value %p stub!\n", iface, index, value);
@ -49,5 +49,5 @@ index 1f9c2bdc0b9..5fe2e60ec42 100644
static const struct IVectorView_VoiceInformationVtbl vector_view_voice_information_vtbl =
--
2.28.0
2.20.1

View File

@ -1,4 +1 @@
Fixes: [49740] windows.media.speech: New DLL
Depends: widl-winrt-support
# In the process of upstreaming.
Disabled: true

View File

@ -1 +1 @@
35e43ccf1b42e9f67d7765753f0c3ef8cf102c46
0f972e2247932f255f131792724e4796b4b2b87a