Index: src/chext/DropMenuExt.h =================================================================== diff -u -N -rb26ced3298e3e7e51d91f3ac70b56746786da83b -r6609ba39811176f4803f0556db3da30e9e457b9d --- src/chext/DropMenuExt.h (.../DropMenuExt.h) (revision b26ced3298e3e7e51d91f3ac70b56746786da83b) +++ src/chext/DropMenuExt.h (.../DropMenuExt.h) (revision 6609ba39811176f4803f0556db3da30e9e457b9d) @@ -24,30 +24,23 @@ #include "../common/TShellExtMenuConfig.h" #include "TShellExtData.h" #include "../liblogger/TLogger.h" +#include "ShellExtControl.h" ///////////////////////////////////////////////////////////////////////////// // CDropMenuExt -class ATL_NO_VTABLE CDropMenuExt : - public CComObjectRootEx, - public CComCoClass, +class CDropMenuExt : public IShellExtInit, public IContextMenu3 { public: CDropMenuExt(); ~CDropMenuExt(); -DECLARE_REGISTRY_RESOURCEID(IDR_DROPMENUEXT) -DECLARE_NOT_AGGREGATABLE(CDropMenuExt) - -DECLARE_PROTECT_FINAL_CONSTRUCT() - -BEGIN_COM_MAP(CDropMenuExt) - COM_INTERFACE_ENTRY(IShellExtInit) - COM_INTERFACE_ENTRY(IContextMenu) -END_COM_MAP() - public: + STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *) override; + STDMETHODIMP_(ULONG) AddRef() override; + STDMETHODIMP_(ULONG) Release() override; + STDMETHOD(InvokeCommand) (LPCMINVOKECOMMANDINFO lpici); STDMETHOD(Initialize)(LPCITEMIDLIST pidlFolder, IDataObject* piDataObject, HKEY /*hkeyProgID*/); STDMETHOD(GetCommandString)(UINT_PTR idCmd, UINT uFlags, UINT* /*pwReserved*/, LPSTR pszName, UINT cchMax); @@ -57,6 +50,8 @@ STDMETHOD(HandleMenuMsg2)(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT* plResult); protected: + volatile ULONG m_ulRefCnt = 0; + IShellExtControl* m_piShellExtControl; TShellExtData m_tShellExtData;