JD2022-TU1/main/tools/legacy/UA_Configure/FrameworkShellDLL/FrameworkContextMenuExt.h

42 lines
No EOL
1.1 KiB
C++

#pragma once
#include <Windows.h>
#include <ShlObj.h>
#include <vector>
class FrameWorkContextMenuExt: public IShellExtInit, public IContextMenu
{
public:
// IUnknown
IFACEMETHODIMP QueryInterface(REFIID riid, void **ppv);
IFACEMETHODIMP_(ULONG) AddRef();
IFACEMETHODIMP_(ULONG) Release();
// IShellExtInit
IFACEMETHODIMP Initialize(LPCITEMIDLIST pidlFolder, LPDATAOBJECT pDataObj, HKEY hKeyProgID);
// IContextMenu
IFACEMETHODIMP QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
IFACEMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO pici);
IFACEMETHODIMP GetCommandString(UINT_PTR idCommand, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax);
FrameWorkContextMenuExt();
protected:
~FrameWorkContextMenuExt();
void SendFilesToPScan();
unsigned GetDataRoot(wchar_t *_dest, unsigned _dstSize) const;
void LaunchPScan() const;
private:
// ref counter
long m_cRef;
struct File
{
wchar_t Name[MAX_PATH];
};
std::vector<File> m_selectedFiles;
};