diff --git a/patches/advapi32-Token_Integrity_Level/0007-shell32-Implement-process-elevation-using-runas-verb.patch b/patches/advapi32-Token_Integrity_Level/0007-shell32-Implement-process-elevation-using-runas-verb.patch deleted file mode 100644 index 20c5bbdc..00000000 --- a/patches/advapi32-Token_Integrity_Level/0007-shell32-Implement-process-elevation-using-runas-verb.patch +++ /dev/null @@ -1,66 +0,0 @@ -From cf24ca0854a5b0dca2055f0991fd9a932125c65e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Michael=20M=C3=BCller?= -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 - diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index b2abdec3..a934da7d 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -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: diff --git a/patches/widl-winrt-support/0023-widl-Generate-helper-macros-for-WinRT-implementation.patch b/patches/widl-winrt-support/0023-widl-Generate-helper-macros-for-WinRT-implementation.patch deleted file mode 100644 index bdb7bf62..00000000 --- a/patches/widl-winrt-support/0023-widl-Generate-helper-macros-for-WinRT-implementation.patch +++ /dev/null @@ -1,193 +0,0 @@ -From cfe5dc40372336a60520b2b7d4459c2687984129 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Bernon?= -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 - diff --git a/patches/widl-winrt-support/0024-include-Add-IVectorView-HSTRING-declaration-to-windo.patch b/patches/widl-winrt-support/0024-include-Add-IVectorView-HSTRING-declaration-to-windo.patch deleted file mode 100644 index 0ce9bf66..00000000 --- a/patches/widl-winrt-support/0024-include-Add-IVectorView-HSTRING-declaration-to-windo.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 47ca5f5da753a7aef76f63d14b7be3a50a6889aa Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?R=C3=A9mi=20Bernon?= -Date: Fri, 25 Sep 2020 17:05:17 +0200 -Subject: [PATCH] include: Add IVectorView 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; -+ } -+ } -+} --- -2.20.1 - diff --git a/patches/widl-winrt-support/definition b/patches/widl-winrt-support/definition deleted file mode 100644 index aac7edac..00000000 --- a/patches/widl-winrt-support/definition +++ /dev/null @@ -1,3 +0,0 @@ -Fixes: [49998] widl - Support WinRT idls -# In the process of upstreaming. -Disabled: true diff --git a/patches/windows.gaming.input-dll/0001-windows.gaming.input-Add-stub-dll.patch b/patches/windows.gaming.input-dll/0001-windows.gaming.input-Add-stub-dll.patch index a0dad764..ca6905af 100644 --- a/patches/windows.gaming.input-dll/0001-windows.gaming.input-Add-stub-dll.patch +++ b/patches/windows.gaming.input-dll/0001-windows.gaming.input-Add-stub-dll.patch @@ -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?= 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 diff --git a/patches/windows.gaming.input-dll/0002-windows.gaming.input-Implement-IGamepadStatics-stubs.patch b/patches/windows.gaming.input-dll/0002-windows.gaming.input-Implement-IGamepadStatics-stubs.patch index 51491bab..59327f9d 100644 --- a/patches/windows.gaming.input-dll/0002-windows.gaming.input-Implement-IGamepadStatics-stubs.patch +++ b/patches/windows.gaming.input-dll/0002-windows.gaming.input-Implement-IGamepadStatics-stubs.patch @@ -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?= -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([in] IInspectable *sender, [in] T args); + ++ [ ++ contract(Windows.Foundation.FoundationContract, 1.0), ++ uuid(9de1c534-6ae1-11e0-84e1-18a905bcc53f) ++ ] ++ delegate HRESULT TypedEventHandler([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([in] IInspectable *sender, [in] T args); - -+ [ -+ contract(Windows.Foundation.FoundationContract, 1.0), -+ uuid(9de1c534-6ae1-11e0-84e1-18a905bcc53f) -+ ] -+ delegate void TypedEventHandler([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 diff --git a/patches/windows.gaming.input-dll/0003-windows.gaming.input-Implement-IGamepadStatics-Gamep.patch b/patches/windows.gaming.input-dll/0003-windows.gaming.input-Implement-IGamepadStatics-Gamep.patch index 153c17d0..e7fc7886 100644 --- a/patches/windows.gaming.input-dll/0003-windows.gaming.input-Implement-IGamepadStatics-Gamep.patch +++ b/patches/windows.gaming.input-dll/0003-windows.gaming.input-Implement-IGamepadStatics-Gamep.patch @@ -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?= 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 diff --git a/patches/windows.gaming.input-dll/0004-windows.gaming.input-Fake-empty-IGamepadStatics-Game.patch b/patches/windows.gaming.input-dll/0004-windows.gaming.input-Fake-empty-IGamepadStatics-Game.patch index 7daa2865..c3cde292 100644 --- a/patches/windows.gaming.input-dll/0004-windows.gaming.input-Fake-empty-IGamepadStatics-Game.patch +++ b/patches/windows.gaming.input-dll/0004-windows.gaming.input-Fake-empty-IGamepadStatics-Game.patch @@ -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?= 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 diff --git a/patches/windows.gaming.input-dll/0005-windows.gaming.input-Fake-IEventHandler_Gamepad-supp.patch b/patches/windows.gaming.input-dll/0005-windows.gaming.input-Fake-IEventHandler_Gamepad-supp.patch index d0ce359c..dfe2e5bf 100644 --- a/patches/windows.gaming.input-dll/0005-windows.gaming.input-Fake-IEventHandler_Gamepad-supp.patch +++ b/patches/windows.gaming.input-dll/0005-windows.gaming.input-Fake-IEventHandler_Gamepad-supp.patch @@ -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?= 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 diff --git a/patches/windows.gaming.input-dll/0006-windows.gaming.input-Implement-IRawGameControllerSta.patch b/patches/windows.gaming.input-dll/0006-windows.gaming.input-Implement-IRawGameControllerSta.patch index 26bb548c..d2971e41 100644 --- a/patches/windows.gaming.input-dll/0006-windows.gaming.input-Implement-IRawGameControllerSta.patch +++ b/patches/windows.gaming.input-dll/0006-windows.gaming.input-Implement-IRawGameControllerSta.patch @@ -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?= 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([in] TSender sender, [in] TResult args); + delegate HRESULT TypedEventHandler([in] TSender sender, [in] TArgs args); + interface IAsyncOperation; + @@ -311,7 +285,7 @@ index dd613b68b00..35ce1d68322 100644 + contract(Windows.Foundation.FoundationContract, 1.0), + uuid(fcdcf02c-e5d8-4478-915a-4d90b74b83a5) + ] -+ delegate void AsyncOperationCompletedHandler([in] IAsyncOperation *info, [in] AsyncStatus status); ++ delegate HRESULT AsyncOperationCompletedHandler([in] IAsyncOperation *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; -+ interface Windows.Foundation.AsyncOperationCompletedHandler; -+ interface Windows.Foundation.IAsyncOperation; +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; ++ interface Windows.Foundation.IAsyncOperation; ++ } ++ } ++} 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 diff --git a/patches/windows.gaming.input-dll/0007-windows.gaming.input-Implement-IRawGameControllerSta.patch b/patches/windows.gaming.input-dll/0007-windows.gaming.input-Implement-IRawGameControllerSta.patch index e2a1bf29..6285f2c7 100644 --- a/patches/windows.gaming.input-dll/0007-windows.gaming.input-Implement-IRawGameControllerSta.patch +++ b/patches/windows.gaming.input-dll/0007-windows.gaming.input-Implement-IRawGameControllerSta.patch @@ -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?= 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 diff --git a/patches/windows.gaming.input-dll/0008-windows.gaming.input-Fake-empty-IRawGameControllerSt.patch b/patches/windows.gaming.input-dll/0008-windows.gaming.input-Fake-empty-IRawGameControllerSt.patch index de657920..a22dc344 100644 --- a/patches/windows.gaming.input-dll/0008-windows.gaming.input-Fake-empty-IRawGameControllerSt.patch +++ b/patches/windows.gaming.input-dll/0008-windows.gaming.input-Fake-empty-IRawGameControllerSt.patch @@ -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?= 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 diff --git a/patches/windows.gaming.input-dll/0009-windows.gaming.input-Fake-IEventHandler_RawGameContr.patch b/patches/windows.gaming.input-dll/0009-windows.gaming.input-Fake-IEventHandler_RawGameContr.patch index 99daccf1..8102096e 100644 --- a/patches/windows.gaming.input-dll/0009-windows.gaming.input-Fake-IEventHandler_RawGameContr.patch +++ b/patches/windows.gaming.input-dll/0009-windows.gaming.input-Fake-IEventHandler_RawGameContr.patch @@ -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?= 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 diff --git a/patches/windows.gaming.input-dll/definition b/patches/windows.gaming.input-dll/definition index 9b623c80..120b5bff 100644 --- a/patches/windows.gaming.input-dll/definition +++ b/patches/windows.gaming.input-dll/definition @@ -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 diff --git a/patches/windows.globalization-dll/0001-windows.globalization-Add-stub-dll.patch b/patches/windows.globalization-dll/0001-windows.globalization-Add-stub-dll.patch index 08fcecdc..e82d099e 100644 --- a/patches/windows.globalization-dll/0001-windows.globalization-Add-stub-dll.patch +++ b/patches/windows.globalization-dll/0001-windows.globalization-Add-stub-dll.patch @@ -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?= 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 diff --git a/patches/windows.globalization-dll/0002-windows.globalization-Implement-IGlobalizationPrefer.patch b/patches/windows.globalization-dll/0002-windows.globalization-Implement-IGlobalizationPrefer.patch index 9ee8f79c..e09a03a9 100644 --- a/patches/windows.globalization-dll/0002-windows.globalization-Implement-IGlobalizationPrefer.patch +++ b/patches/windows.globalization-dll/0002-windows.globalization-Implement-IGlobalizationPrefer.patch @@ -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?= 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; + interface Windows.Foundation.IAsyncOperation; ++ interface Windows.Foundation.Collections.IVectorView; + } + } + } 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 diff --git a/patches/windows.globalization-dll/0003-windows.globalization-Implement-IGlobalizationPrefer.patch b/patches/windows.globalization-dll/0003-windows.globalization-Implement-IGlobalizationPrefer.patch index 61ecda24..b9de15d1 100644 --- a/patches/windows.globalization-dll/0003-windows.globalization-Implement-IGlobalizationPrefer.patch +++ b/patches/windows.globalization-dll/0003-windows.globalization-Implement-IGlobalizationPrefer.patch @@ -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?= 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 diff --git a/patches/windows.globalization-dll/0004-windows.globalization-Implement-IGlobalizationPrefer.patch b/patches/windows.globalization-dll/0004-windows.globalization-Implement-IGlobalizationPrefer.patch index 0b6d1255..ba30056c 100644 --- a/patches/windows.globalization-dll/0004-windows.globalization-Implement-IGlobalizationPrefer.patch +++ b/patches/windows.globalization-dll/0004-windows.globalization-Implement-IGlobalizationPrefer.patch @@ -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?= 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 diff --git a/patches/windows.globalization-dll/0005-windows.globalization-Fake-empty-IGlobalizationPrefe.patch b/patches/windows.globalization-dll/0005-windows.globalization-Fake-empty-IGlobalizationPrefe.patch index 26b2189f..e5c78c5f 100644 --- a/patches/windows.globalization-dll/0005-windows.globalization-Fake-empty-IGlobalizationPrefe.patch +++ b/patches/windows.globalization-dll/0005-windows.globalization-Fake-empty-IGlobalizationPrefe.patch @@ -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?= 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 diff --git a/patches/windows.globalization-dll/definition b/patches/windows.globalization-dll/definition index 3df15330..d2a356f4 100644 --- a/patches/windows.globalization-dll/definition +++ b/patches/windows.globalization-dll/definition @@ -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 diff --git a/patches/windows.media.speech.dll/0001-windows.media.speech-Add-stub-dll.patch b/patches/windows.media.speech.dll/0001-windows.media.speech-Add-stub-dll.patch index b209cb75..ea98c52d 100644 --- a/patches/windows.media.speech.dll/0001-windows.media.speech-Add-stub-dll.patch +++ b/patches/windows.media.speech.dll/0001-windows.media.speech-Add-stub-dll.patch @@ -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?= 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 diff --git a/patches/windows.media.speech.dll/0002-windows.media.speech-Implement-IInstalledVoicesStati.patch b/patches/windows.media.speech.dll/0002-windows.media.speech-Implement-IInstalledVoicesStati.patch index fe08087c..5bfa4362 100644 --- a/patches/windows.media.speech.dll/0002-windows.media.speech-Implement-IInstalledVoicesStati.patch +++ b/patches/windows.media.speech.dll/0002-windows.media.speech-Implement-IInstalledVoicesStati.patch @@ -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?= 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 diff --git a/patches/windows.media.speech.dll/0003-windows.media.speech-Implement-IInstalledVoicesStati.patch b/patches/windows.media.speech.dll/0003-windows.media.speech-Implement-IInstalledVoicesStati.patch index 637f87d5..1b793c3b 100644 --- a/patches/windows.media.speech.dll/0003-windows.media.speech-Implement-IInstalledVoicesStati.patch +++ b/patches/windows.media.speech.dll/0003-windows.media.speech-Implement-IInstalledVoicesStati.patch @@ -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?= 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 diff --git a/patches/windows.media.speech.dll/0004-windows.media.speech-Fake-empty-IInstalledVoicesStat.patch b/patches/windows.media.speech.dll/0004-windows.media.speech-Fake-empty-IInstalledVoicesStat.patch index c4faac3b..a6c20095 100644 --- a/patches/windows.media.speech.dll/0004-windows.media.speech-Fake-empty-IInstalledVoicesStat.patch +++ b/patches/windows.media.speech.dll/0004-windows.media.speech-Fake-empty-IInstalledVoicesStat.patch @@ -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?= 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 diff --git a/patches/windows.media.speech.dll/definition b/patches/windows.media.speech.dll/definition index 8baf3b2c..79a44dde 100644 --- a/patches/windows.media.speech.dll/definition +++ b/patches/windows.media.speech.dll/definition @@ -1,4 +1 @@ Fixes: [49740] windows.media.speech: New DLL -Depends: widl-winrt-support -# In the process of upstreaming. -Disabled: true diff --git a/staging/upstream-commit b/staging/upstream-commit index 23db9868..47aedaeb 100644 --- a/staging/upstream-commit +++ b/staging/upstream-commit @@ -1 +1 @@ -35e43ccf1b42e9f67d7765753f0c3ef8cf102c46 +0f972e2247932f255f131792724e4796b4b2b87a