Index: src/chext/DropMenuExt.cpp =================================================================== diff -u -N -r6609ba39811176f4803f0556db3da30e9e457b9d -r3732b8ed8b65619c1000598c843c2c627186427c --- src/chext/DropMenuExt.cpp (.../DropMenuExt.cpp) (revision 6609ba39811176f4803f0556db3da30e9e457b9d) +++ src/chext/DropMenuExt.cpp (.../DropMenuExt.cpp) (revision 3732b8ed8b65619c1000598c843c2c627186427c) @@ -26,13 +26,17 @@ #include "ShellExtensionVerifier.h" #include "HResultFormatter.h" +extern std::atomic g_DllRefCount; + ///////////////////////////////////////////////////////////////////////////// // CDropMenuExt CDropMenuExt::CDropMenuExt() : m_piShellExtControl(nullptr), m_spLog(GetLogger(L"CDropMenuExt")) { + ++g_DllRefCount; + HRESULT hResult = CoCreateInstance(CLSID_CShellExtControl, nullptr, CLSCTX_ALL, IID_IShellExtControl, (void**)&m_piShellExtControl); LOG_HRESULT(m_spLog, hResult) << L"Create instance of ShellExtControl"; @@ -45,6 +49,8 @@ m_piShellExtControl->Release(); m_piShellExtControl = nullptr; } + + --g_DllRefCount; } STDMETHODIMP CDropMenuExt::QueryInterface(REFIID riid, LPVOID FAR *ppvObject)