From: Zhiyi Zhang zzhang@codeweavers.com
--- dlls/combase/combase.spec | 2 +- dlls/combase/roapi.c | 15 +++++++++++++++ dlls/combase/tests/roapi.c | 15 +++++++++++++++ include/roerrorapi.h | 1 + 4 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/dlls/combase/combase.spec b/dlls/combase/combase.spec index fb5d673db47..73c3e7ec8ef 100644 --- a/dlls/combase/combase.spec +++ b/dlls/combase/combase.spec @@ -294,7 +294,7 @@ @ stdcall RoGetActivationFactory(ptr ptr ptr) @ stdcall RoGetAgileReference(long ptr ptr ptr) @ stdcall RoGetApartmentIdentifier(ptr) -@ stub RoGetErrorReportingFlags +@ stdcall RoGetErrorReportingFlags(ptr) @ stub RoGetMatchingRestrictedErrorInfo @ stdcall RoGetParameterizedTypeInstanceIID(long ptr ptr ptr ptr) @ stdcall RoGetServerActivatableClasses(ptr ptr ptr) diff --git a/dlls/combase/roapi.c b/dlls/combase/roapi.c index 4e52612d08e..f40eb55cd2f 100644 --- a/dlls/combase/roapi.c +++ b/dlls/combase/roapi.c @@ -535,6 +535,21 @@ HRESULT WINAPI RoSetErrorReportingFlags(UINT32 flags) return S_OK; }
+/*********************************************************************** + * RoGetErrorReportingFlags (combase.@) + */ +HRESULT WINAPI RoGetErrorReportingFlags(UINT32 *flags) +{ + FIXME("(%p): stub\n", flags); + + if (!flags) + return E_POINTER; + + *flags = RO_ERROR_REPORTING_USESETERRORINFO; + return S_OK; +} + + /*********************************************************************** * CleanupTlsOleState (combase.@) */ diff --git a/dlls/combase/tests/roapi.c b/dlls/combase/tests/roapi.c index 7606c61c165..ab5dbff6017 100644 --- a/dlls/combase/tests/roapi.c +++ b/dlls/combase/tests/roapi.c @@ -25,6 +25,7 @@
#include "initguid.h" #include "roapi.h" +#include "roerrorapi.h"
#include "wine/test.h"
@@ -537,6 +538,19 @@ static void test_RoGetAgileReference(void) } }
+static void test_RoGetErrorReportingFlags(void) +{ + UINT32 flags; + HRESULT hr; + + hr = RoGetErrorReportingFlags(NULL); + ok(hr == E_POINTER, "Got unexpected hr %#lx.\n", hr); + + hr = RoGetErrorReportingFlags(&flags); + ok(hr == S_OK, "Got unexpected hr %#lx.\n", hr); + ok(flags == RO_ERROR_REPORTING_USESETERRORINFO, "Got unexpected flag %#x.\n", flags); +} + START_TEST(roapi) { BOOL ret; @@ -546,6 +560,7 @@ START_TEST(roapi) test_implicit_mta(); test_ActivationFactories(); test_RoGetAgileReference(); + test_RoGetErrorReportingFlags();
SetLastError(0xdeadbeef); ret = DeleteFileW(L"wine.combase.test.dll"); diff --git a/include/roerrorapi.h b/include/roerrorapi.h index 4831e3afe40..ec02448e496 100644 --- a/include/roerrorapi.h +++ b/include/roerrorapi.h @@ -33,6 +33,7 @@ typedef enum } RO_ERROR_REPORTING_FLAGS;
HRESULT WINAPI GetRestrictedErrorInfo(IRestrictedErrorInfo **info); +HRESULT WINAPI RoGetErrorReportingFlags(UINT32 *flags); BOOL WINAPI RoOriginateError(HRESULT error, HSTRING message); BOOL WINAPI RoOriginateErrorW(HRESULT error, UINT max_len, const WCHAR *message); BOOL WINAPI RoOriginateLanguageException(HRESULT error, HSTRING message, IUnknown *language_exception);