diff --git a/include/wx/msw/rt/utils.h b/include/wx/msw/rt/utils.h index 213dfe41b7..14186a8d4e 100644 --- a/include/wx/msw/rt/utils.h +++ b/include/wx/msw/rt/utils.h @@ -28,7 +28,7 @@ bool WXDLLIMPEXP_CORE Initialize(); void WXDLLIMPEXP_CORE Uninitialize(); -bool WXDLLIMPEXP_CORE GetActivationFactory(const wxString& activatableClassId, REFIID iid, void ** factory); +HRESULT WXDLLIMPEXP_CORE GetActivationFactory(const wxString& activatableClassId, REFIID iid, void ** factory); // RAII class initializing WinRT in its ctor and undoing it in its dtor. class WXDLLIMPEXP_CORE Initializer diff --git a/src/msw/rt/utilsrt.cpp b/src/msw/rt/utilsrt.cpp index ec2fb3491e..05168422df 100644 --- a/src/msw/rt/utilsrt.cpp +++ b/src/msw/rt/utilsrt.cpp @@ -215,19 +215,17 @@ void Uninitialize() RTCore::Get().RoUninitialize(); } -bool GetActivationFactory(const wxString& activatableClassId, REFIID iid, void ** factory) +HRESULT GetActivationFactory(const wxString& activatableClassId, REFIID iid, void ** factory) { if ( !RTCore::IsAvailable() ) - return false; + return CLASS_E_CLASSNOTAVAILABLE; HRESULT hr = RTCore::Get().RoGetActivationFactory(TempStringRef(activatableClassId), iid, factory); if ( FAILED(hr) ) { wxLogDebug("RoGetActivationFactory failed %.8x", hr); - return false; } - else - return true; + return hr; } // ----------------------------------------------------------------------------