Tolerate RPC_E_CHANGED_MODE on COM initialization

This commit is contained in:
Simon Rozman 2018-09-03 11:35:39 +02:00
parent 732f180117
commit 37eae89d67
2 changed files with 8 additions and 5 deletions

View File

@ -1,5 +1,5 @@
/* /*
Copyright 2016-2017 Amebis Copyright 2016-2018 Amebis
Copyright 2016 GÉANT Copyright 2016 GÉANT
This file is part of wxExtend. This file is part of wxExtend.
@ -62,7 +62,7 @@ public:
operator bool() const { return m_ok; } operator bool() const { return m_ok; }
private: private:
bool m_ok; bool m_ok, m_initialized;
}; };
/// @} /// @}

View File

@ -1,5 +1,5 @@
/* /*
Copyright 2015-2017 Amebis Copyright 2015-2018 Amebis
Copyright 2016 GÉANT Copyright 2016 GÉANT
This file is part of wxExtend. This file is part of wxExtend.
@ -27,12 +27,15 @@
wxCoInitializer::wxCoInitializer(DWORD dwCoInit) wxCoInitializer::wxCoInitializer(DWORD dwCoInit)
{ {
m_ok = SUCCEEDED(::CoInitializeEx(NULL, dwCoInit)); HRESULT hr = ::CoInitializeEx(NULL, dwCoInit);
m_initialized = SUCCEEDED(hr);
m_ok = SUCCEEDED(hr) || hr == RPC_E_CHANGED_MODE;
} }
wxCoInitializer::~wxCoInitializer() wxCoInitializer::~wxCoInitializer()
{ {
if (m_ok) if (m_initialized)
::CoUninitialize(); ::CoUninitialize();
} }