#pragma once #include "pch.h" class __declspec(uuid("84d68575-e186-46ad-b0cb-baeb45ee29c0")) ExplorerCommand : public IExplorerCommand { public: // IUnknown IFACEMETHODIMP QueryInterface(REFIID riid, void** ppv); IFACEMETHODIMP_(ULONG) AddRef(); IFACEMETHODIMP_(ULONG) Release(); // IExplorerCommand IFACEMETHODIMP GetTitle(IShellItemArray* psiItemArray, LPWSTR* ppszName) override; IFACEMETHODIMP GetIcon(IShellItemArray* psiItemArray, LPWSTR* ppszIcon) override; IFACEMETHODIMP GetToolTip(IShellItemArray* psiItemArray, LPWSTR* ppszInfotip) override; IFACEMETHODIMP GetCanonicalName(GUID* pguidCommandName) override; IFACEMETHODIMP GetState(IShellItemArray* psiItemArray, BOOL fOkToBeSlow, EXPCMDSTATE* pCmdState) override; IFACEMETHODIMP Invoke(IShellItemArray* psiItemArray, IBindCtx* pbc) override; IFACEMETHODIMP GetFlags(EXPCMDFLAGS* pFlags) override; IFACEMETHODIMP EnumSubCommands(IEnumExplorerCommand** ppEnum) override; private: std::atomic m_ref_count; };