ReactOS 0.4.15-dev-8100-g1887773
CCopyAsPathMenu.h
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS shell32
3 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later)
4 * PURPOSE: Copy as Path Menu implementation
5 * COPYRIGHT: Copyright 2024 Whindmar Saksit <whindsaks@proton.me>
6 * Copyright 2024 Thamatip Chitpong <thamatip.chitpong@reactos.org>
7 */
8
9#pragma once
10
12 public CComCoClass<CCopyAsPathMenu, &CLSID_CopyAsPathMenu>,
13 public CComObjectRootEx<CComMultiThreadModelNoCS>,
14 public IContextMenu,
15 public IShellExtInit
16{
17private:
18 CComPtr<IDataObject> m_pDataObject;
19
21
22public:
25
26 // IContextMenu
27 STDMETHODIMP QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override;
29 STDMETHODIMP GetCommandString(UINT_PTR idCommand, UINT uFlags, UINT *lpReserved, LPSTR lpszName, UINT uMaxNameLen) override;
30
31 // IShellExtInit
32 STDMETHODIMP Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID) override;
33
36
38
40 COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu)
41 COM_INTERFACE_ENTRY_IID(IID_IShellExtInit, IShellExtInit)
43};
#define STDMETHODIMP
Definition: basetyps.h:43
CComPtr< IDataObject > m_pDataObject
STDMETHODIMP GetCommandString(UINT_PTR idCommand, UINT uFlags, UINT *lpReserved, LPSTR lpszName, UINT uMaxNameLen) override
STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) override
STDMETHODIMP QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
HRESULT DoCopyAsPath(IDataObject *pdto)
UINT uFlags
Definition: api.c:59
#define BEGIN_COM_MAP(x)
Definition: atlcom.h:581
#define COM_INTERFACE_ENTRY_IID(iid, x)
Definition: atlcom.h:601
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
Definition: atlcom.h:679
#define DECLARE_NOT_AGGREGATABLE(x)
Definition: atlcom.h:651
#define DECLARE_REGISTRY_RESOURCEID(x)
Definition: atlcom.h:645
#define END_COM_MAP()
Definition: atlcom.h:592
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
unsigned int UINT
Definition: ndis.h:50
#define IDR_COPYASPATHMENU
Definition: shresdef.h:913
static void Initialize()
Definition: xlate.c:212
char * LPSTR
Definition: xmlstorage.h:182