diff --git a/patches/combase-GetRestrictedErrorInfo/0001-include-Add-restrictederrorinfo.idl.patch b/patches/combase-GetRestrictedErrorInfo/0001-include-Add-restrictederrorinfo.idl.patch new file mode 100644 index 00000000..51c76c08 --- /dev/null +++ b/patches/combase-GetRestrictedErrorInfo/0001-include-Add-restrictederrorinfo.idl.patch @@ -0,0 +1,68 @@ +From e72b9a5931139e2d4c651e62f9b5ac226af2bedd Mon Sep 17 00:00:00 2001 +From: Louis Lenders +Date: Mon, 8 Apr 2019 08:26:43 +0200 +Subject: [PATCH 1/2] include: Add restrictederrorinfo.idl. + +Signed-off-by: Louis Lenders +--- + include/Makefile.in | 1 + + include/restrictederrorinfo.idl | 35 +++++++++++++++++++++++++++++++++++ + 2 files changed, 36 insertions(+) + create mode 100644 include/restrictederrorinfo.idl + +diff --git a/include/Makefile.in b/include/Makefile.in +index b03b967..5bc8dde 100644 +--- a/include/Makefile.in ++++ b/include/Makefile.in +@@ -545,6 +545,7 @@ SOURCES = \ + reason.h \ + regstr.h \ + restartmanager.h \ ++ restrictederrorinfo.idl \ + richedit.h \ + richole.idl \ + rmxfguid.h \ +diff --git a/include/restrictederrorinfo.idl b/include/restrictederrorinfo.idl +new file mode 100644 +index 0000000..e444256 +--- /dev/null ++++ b/include/restrictederrorinfo.idl +@@ -0,0 +1,35 @@ ++/* ++ * Copyright 2019 Louis Lenders ++ * ++ * This library is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * This library is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ * Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this library; if not, write to the Free Software ++ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA ++ */ ++ ++import "oaidl.idl"; ++ ++[ ++ object, ++ uuid(82ba7092-4c88-427d-a7bc-16dd93feb67e), ++ pointer_default(unique) ++] ++interface IRestrictedErrorInfo : IUnknown ++{ ++ HRESULT GetErrorDetails ( ++ [out] BSTR *desc, ++ [out] HRESULT *error, ++ [out] BSTR *restricted_desc, ++ [out] BSTR *sid); ++ ++ HRESULT GetReference ([out] BSTR *reference); ++} +-- +1.9.1 + diff --git a/patches/combase-GetRestrictedErrorInfo/0002-combase-Add-GetRestrictedErrorInfo-and-RoOriginateLa.patch b/patches/combase-GetRestrictedErrorInfo/0002-combase-Add-GetRestrictedErrorInfo-and-RoOriginateLa.patch new file mode 100644 index 00000000..a02ea395 --- /dev/null +++ b/patches/combase-GetRestrictedErrorInfo/0002-combase-Add-GetRestrictedErrorInfo-and-RoOriginateLa.patch @@ -0,0 +1,105 @@ +From 61b96f3dab24d3aec26237c8760d75f964474bc5 Mon Sep 17 00:00:00 2001 +From: Louis Lenders +Date: Mon, 8 Apr 2019 17:06:58 +0200 +Subject: [PATCH 2/2] combase: Add GetRestrictedErrorInfo and + RoOriginateLanguageException stubs. + +Signed-off-by: Louis Lenders +--- + .../api-ms-win-core-winrt-error-l1-1-0.spec | 2 +- + .../api-ms-win-core-winrt-error-l1-1-1.spec | 4 ++-- + dlls/combase/combase.spec | 4 ++-- + dlls/combase/roapi.c | 19 +++++++++++++++++++ + 4 files changed, 24 insertions(+), 5 deletions(-) + +diff --git a/dlls/api-ms-win-core-winrt-error-l1-1-0/api-ms-win-core-winrt-error-l1-1-0.spec b/dlls/api-ms-win-core-winrt-error-l1-1-0/api-ms-win-core-winrt-error-l1-1-0.spec +index de0a6d8..99f1ca3 100644 +--- a/dlls/api-ms-win-core-winrt-error-l1-1-0/api-ms-win-core-winrt-error-l1-1-0.spec ++++ b/dlls/api-ms-win-core-winrt-error-l1-1-0/api-ms-win-core-winrt-error-l1-1-0.spec +@@ -1,4 +1,4 @@ +-@ stub GetRestrictedErrorInfo ++@ stdcall GetRestrictedErrorInfo(ptr) combase.GetRestrictedErrorInfo + @ stub RoCaptureErrorContext + @ stub RoFailFastWithErrorContext + @ stub RoGetErrorReportingFlags +diff --git a/dlls/api-ms-win-core-winrt-error-l1-1-1/api-ms-win-core-winrt-error-l1-1-1.spec b/dlls/api-ms-win-core-winrt-error-l1-1-1/api-ms-win-core-winrt-error-l1-1-1.spec +index b1ad813..0b390f1 100644 +--- a/dlls/api-ms-win-core-winrt-error-l1-1-1/api-ms-win-core-winrt-error-l1-1-1.spec ++++ b/dlls/api-ms-win-core-winrt-error-l1-1-1/api-ms-win-core-winrt-error-l1-1-1.spec +@@ -1,4 +1,4 @@ +-@ stub GetRestrictedErrorInfo ++@ stdcall GetRestrictedErrorInfo(ptr) combase.GetRestrictedErrorInfo + @ stub IsErrorPropagationEnabled + @ stub RoCaptureErrorContext + @ stub RoClearError +@@ -9,7 +9,7 @@ + @ stub RoInspectThreadErrorInfo + @ stub RoOriginateError + @ stub RoOriginateErrorW +-@ stub RoOriginateLanguageException ++@ stdcall RoOriginateLanguageException(long ptr ptr) combase.RoOriginateLanguageException + @ stub RoReportFailedDelegate + @ stub RoReportUnhandledError + @ stub RoResolveRestrictedErrorInfoReference +diff --git a/dlls/combase/combase.spec b/dlls/combase/combase.spec +index 93575d5..f67527a 100644 +--- a/dlls/combase/combase.spec ++++ b/dlls/combase/combase.spec +@@ -180,7 +180,7 @@ + @ stub GetFuncDescs + @ stdcall GetHGlobalFromStream(ptr ptr) ole32.GetHGlobalFromStream + @ stub GetHookInterface +-@ stub GetRestrictedErrorInfo ++@ stdcall GetRestrictedErrorInfo(ptr) + @ stub HSTRING_UserFree + @ stub HSTRING_UserFree64 + @ stub HSTRING_UserMarshal +@@ -260,7 +260,7 @@ + @ stub RoInspectThreadErrorInfo + @ stub RoOriginateError + @ stub RoOriginateErrorW +-@ stub RoOriginateLanguageException ++@ stdcall RoOriginateLanguageException(long ptr ptr) + @ stub RoParameterizedTypeExtraGetTypeSignature + @ stdcall RoRegisterActivationFactories(ptr ptr long ptr) + @ stdcall RoRegisterForApartmentShutdown(ptr ptr ptr) +diff --git a/dlls/combase/roapi.c b/dlls/combase/roapi.c +index c9fe80f..2a6dcdf 100644 +--- a/dlls/combase/roapi.c ++++ b/dlls/combase/roapi.c +@@ -21,6 +21,7 @@ + #include "initguid.h" + #include "roapi.h" + #include "roparameterizediid.h" ++#include "restrictederrorinfo.h" + #include "winstring.h" + + #include "wine/debug.h" +@@ -276,6 +277,24 @@ HRESULT WINAPI RoRegisterActivationFactories(HSTRING *classes, PFNGETACTIVATIONF + } + + /*********************************************************************** ++ * GetRestrictedErrorInfo (combase.@) ++ */ ++HRESULT WINAPI GetRestrictedErrorInfo( IRestrictedErrorInfo **info ) ++{ ++ FIXME( "(%p)\n", info ); ++ return E_NOTIMPL; ++} ++ ++/*********************************************************************** ++ * RoOriginateLanguageException (combase.@) ++ */ ++BOOL WINAPI RoOriginateLanguageException( HRESULT error, HSTRING message, IUnknown *language_exception ) ++{ ++ FIXME("(%x %s %p) stub\n", error, debugstr_hstring(message), language_exception); ++ return FALSE; ++} ++ ++/*********************************************************************** + * CleanupTlsOleState (combase.@) + */ + void WINAPI CleanupTlsOleState(void *unknown) +-- +1.9.1 + diff --git a/patches/combase-GetRestrictedErrorInfo/definition b/patches/combase-GetRestrictedErrorInfo/definition new file mode 100644 index 00000000..1e53e2f3 --- /dev/null +++ b/patches/combase-GetRestrictedErrorInfo/definition @@ -0,0 +1 @@ +Fixes: [46972] combase: Add GetRestrictedErrorInfo/RoOriginateLanguageException stubs. diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 3c5d063d..ed368eb8 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -96,6 +96,7 @@ patch_enable_all () enable_avifil32_IGetFrame_fnSetFormat="$1" enable_avifile_dll16_AVIStreamGetFrame="$1" enable_bcrypt_BCryptSecretAgreement="$1" + enable_combase_GetRestrictedErrorInfo="$1" enable_comctl32_Listview_DrawItem="$1" enable_comctrl_rebar_capture="$1" enable_comdlg32_lpstrFileTitle="$1" @@ -428,6 +429,9 @@ patch_enable () bcrypt-BCryptSecretAgreement) enable_bcrypt_BCryptSecretAgreement="$2" ;; + combase-GetRestrictedErrorInfo) + enable_combase_GetRestrictedErrorInfo="$2" + ;; comctl32-Listview_DrawItem) enable_comctl32_Listview_DrawItem="$2" ;; @@ -2390,6 +2394,25 @@ if test "$enable_bcrypt_BCryptSecretAgreement" -eq 1; then ) >> "$patchlist" fi +# Patchset combase-GetRestrictedErrorInfo +# | +# | This patchset fixes the following Wine bugs: +# | * [#46972] combase: Add GetRestrictedErrorInfo/RoOriginateLanguageException stubs. +# | +# | Modified files: +# | * dlls/api-ms-win-core-winrt-error-l1-1-0/api-ms-win-core-winrt-error-l1-1-0.spec, dlls/api-ms-win-core-winrt-error-l1-1-1 +# | /api-ms-win-core-winrt-error-l1-1-1.spec, dlls/combase/combase.spec, dlls/combase/roapi.c, include/Makefile.in, +# | include/restrictederrorinfo.idl +# | +if test "$enable_combase_GetRestrictedErrorInfo" -eq 1; then + patch_apply combase-GetRestrictedErrorInfo/0001-include-Add-restrictederrorinfo.idl.patch + patch_apply combase-GetRestrictedErrorInfo/0002-combase-Add-GetRestrictedErrorInfo-and-RoOriginateLa.patch + ( + printf '%s\n' '+ { "Louis Lenders", "include: Add restrictederrorinfo.idl.", 1 },'; + printf '%s\n' '+ { "Louis Lenders", "combase: Add GetRestrictedErrorInfo and RoOriginateLanguageException stubs.", 1 },'; + ) >> "$patchlist" +fi + # Patchset comctl32-Listview_DrawItem # | # | This patchset fixes the following Wine bugs: