OSDN Git Service

asyncを使用するようにした
[completeeraser/CompleteEraser.git] / ShellExtension / ContextMenu.h
1 #pragma once\r
2 #include "DllMain.h"\r
3 #pragma warning(push)\r
4 #pragma warning(disable: 4995)\r
5 #include <string>\r
6 #pragma warning(pop)\r
7 \r
8 #define ID_ITEM 500\r
9 \r
10 enum CContextType\r
11 {\r
12         ClearRecyleBin,\r
13         ClearFileNames,\r
14 };\r
15 \r
16 class CContextMenu : public IContextMenu, public IShellExtInit\r
17 {\r
18 public:\r
19         STDMETHODIMP QueryInterface(REFIID riid, void **ppvObject);\r
20         STDMETHODIMP_(ULONG) AddRef();\r
21         STDMETHODIMP_(ULONG) Release();\r
22 \r
23         STDMETHODIMP QueryContextMenu(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);\r
24         STDMETHODIMP GetCommandString(UINT_PTR idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax);\r
25         STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO pici);\r
26 \r
27         STDMETHODIMP Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID);\r
28         \r
29         CContextMenu();\r
30         ~CContextMenu();\r
31 \r
32 private:\r
33         static DWORD WINAPI ThreadFunc(LPVOID pParam);\r
34         static HANDLE m_hMapping;\r
35         static HANDLE RunCompleteEraer(LPTSTR cmdline);\r
36         std::wstring strs;\r
37         LONG m_cRef;\r
38         CContextType menutype;\r
39 };\r