Index: src/chext/ShellExtControl.h =================================================================== diff -u -N -r134983cab6122e3fff73994a6f9c417aaeab3bc2 -r6609ba39811176f4803f0556db3da30e9e457b9d --- src/chext/ShellExtControl.h (.../ShellExtControl.h) (revision 134983cab6122e3fff73994a6f9c417aaeab3bc2) +++ src/chext/ShellExtControl.h (.../ShellExtControl.h) (revision 6609ba39811176f4803f0556db3da30e9e457b9d) @@ -20,47 +20,40 @@ #define __SHELLEXTCONTROL_H_ #include "resource.h" // main symbols +#include "guids.h" #include "../liblogger/TLogger.h" #include "../libchcore/TIpcMutex.h" #include "../libchcore/TSharedMemory.h" +#include "IShellExtControl.h" -///////////////////////////////////////////////////////////////////////////// -// CDropMenuExt -class ATL_NO_VTABLE CShellExtControl : - public CComObjectRootEx, - public CComCoClass, - public IDispatchImpl +class CShellExtControl : public IShellExtControl { public: CShellExtControl(); ~CShellExtControl(); + STDMETHODIMP QueryInterface(REFIID, LPVOID FAR *) override; + STDMETHODIMP_(ULONG) AddRef() override; + STDMETHODIMP_(ULONG) Release() override; + STDMETHOD(GetVersion)(LONG* plVersion, BSTR* pbstrVersion); STDMETHOD(SetFlags)(LONG lFlags, LONG lMask); STDMETHOD(GetFlags)(LONG* plFlags); -DECLARE_REGISTRY_RESOURCEID(IDR_SHELLEXTCONTROL) - -DECLARE_PROTECT_FINAL_CONSTRUCT() - -BEGIN_COM_MAP(CShellExtControl) - COM_INTERFACE_ENTRY(IUnknown) - COM_INTERFACE_ENTRY(IShellExtControl) -END_COM_MAP() - private: HRESULT Initialize(); private: + volatile ULONG m_ulRefCnt = 0; + HANDLE m_hMemory = nullptr; chcore::TIpcMutex m_mutex; struct SHELLEXT_DATA { long m_lFlags = 0; - } *m_pShellExtData; + } *m_pShellExtData = nullptr; - CComAutoCriticalSection m_lock; logger::TLoggerPtr m_spLog; chcore::TSharedMemory m_shmConfiguration; bool m_bInitialized = false;