Index: src/chext/MenuExt.cpp =================================================================== diff -u -N -r6609ba39811176f4803f0556db3da30e9e457b9d -r86528d792f82b7ceb7b0fe34345bf66a9656d538 --- src/chext/MenuExt.cpp (.../MenuExt.cpp) (revision 6609ba39811176f4803f0556db3da30e9e457b9d) +++ src/chext/MenuExt.cpp (.../MenuExt.cpp) (revision 86528d792f82b7ceb7b0fe34345bf66a9656d538) @@ -29,12 +29,16 @@ #include "Logger.h" #include "../libchengine/TTaskDefinition.h" +extern std::atomic g_DllRefCount; + ///////////////////////////////////////////////////////////////////////////// // CMenuExt CMenuExt::CMenuExt() : m_piShellExtControl(nullptr), m_spLog(GetLogger(L"CMenuExt")) { + ++g_DllRefCount; + HRESULT hResult = CoCreateInstance(CLSID_CShellExtControl, nullptr, CLSCTX_ALL, IID_IShellExtControl, (void**)&m_piShellExtControl); LOG_HRESULT(m_spLog, hResult) << L"Creation of ShellExtControl " << LOG_PARAM(m_piShellExtControl); } @@ -46,6 +50,8 @@ m_piShellExtControl->Release(); m_piShellExtControl = nullptr; } + + --g_DllRefCount; } STDMETHODIMP CMenuExt::QueryInterface(REFIID riid, LPVOID FAR *ppvObject)