diff --git a/include/wx/msw/ole/oleutils.h b/include/wx/msw/ole/oleutils.h index 521366b9f0..5bc5e19dfe 100644 --- a/include/wx/msw/ole/oleutils.h +++ b/include/wx/msw/ole/oleutils.h @@ -354,4 +354,30 @@ inline void wxOleUninitialize() { } #endif // wxUSE_OLE/!wxUSE_OLE +// RAII class initializing OLE in its ctor and undoing it in its dtor. +class wxOleInitializer +{ +public: + wxOleInitializer() + : m_ok(wxOleInitialize()) + { + } + + bool IsOk() const + { + return m_ok; + } + + ~wxOleInitializer() + { + if ( m_ok ) + wxOleUninitialize(); + } + +private: + const bool m_ok; + + wxDECLARE_NO_COPY_CLASS(wxOleInitializer); +}; + #endif //_WX_OLEUTILS_H