ReactOS
0.4.16-dev-522-gb68104a
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
11
class
CCopyAsPathMenu
:
12
public
CComCoClass<CCopyAsPathMenu, &CLSID_CopyAsPathMenu>,
13
public
CComObjectRootEx<CComMultiThreadModelNoCS>,
14
public
IContextMenu
,
15
public
IShellExtInit
16
{
17
private
:
18
CComPtr<IDataObject>
m_pDataObject
;
19
20
HRESULT
DoCopyAsPath
(
IDataObject
*pdto);
21
22
public
:
23
CCopyAsPathMenu
();
24
~CCopyAsPathMenu
();
25
26
// IContextMenu
27
STDMETHODIMP
QueryContextMenu
(
HMENU
hMenu,
UINT
indexMenu,
UINT
idCmdFirst,
UINT
idCmdLast,
UINT
uFlags
)
override
;
28
STDMETHODIMP
InvokeCommand
(
LPCMINVOKECOMMANDINFO
lpcmi)
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
34
DECLARE_REGISTRY_RESOURCEID
(
IDR_COPYASPATHMENU
)
35
DECLARE_NOT_AGGREGATABLE
(
CCopyAsPathMenu
)
36
37
DECLARE_PROTECT_FINAL_CONSTRUCT
()
38
39
BEGIN_COM_MAP
(
CCopyAsPathMenu
)
40
COM_INTERFACE_ENTRY_IID
(IID_IContextMenu,
IContextMenu
)
41
COM_INTERFACE_ENTRY_IID
(IID_IShellExtInit,
IShellExtInit
)
42
END_COM_MAP
()
43
};
lpReserved
static DWORD const LPVOID const lpReserved
Definition:
appcrt_dllmain.cpp:58
STDMETHODIMP
#define STDMETHODIMP
Definition:
basetyps.h:43
CCopyAsPathMenu
Definition:
CCopyAsPathMenu.h:16
CCopyAsPathMenu::m_pDataObject
CComPtr< IDataObject > m_pDataObject
Definition:
CCopyAsPathMenu.h:18
CCopyAsPathMenu::GetCommandString
STDMETHODIMP GetCommandString(UINT_PTR idCommand, UINT uFlags, UINT *lpReserved, LPSTR lpszName, UINT uMaxNameLen) override
Definition:
CCopyAsPathMenu.cpp:150
CCopyAsPathMenu::CCopyAsPathMenu
CCopyAsPathMenu()
Definition:
CCopyAsPathMenu.cpp:15
CCopyAsPathMenu::~CCopyAsPathMenu
~CCopyAsPathMenu()
Definition:
CCopyAsPathMenu.cpp:19
CCopyAsPathMenu::InvokeCommand
STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) override
Definition:
CCopyAsPathMenu.cpp:138
CCopyAsPathMenu::QueryContextMenu
STDMETHODIMP QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
Definition:
CCopyAsPathMenu.cpp:113
CCopyAsPathMenu::DoCopyAsPath
HRESULT DoCopyAsPath(IDataObject *pdto)
Definition:
CCopyAsPathMenu.cpp:74
uFlags
UINT uFlags
Definition:
api.c:59
HRESULT
Definition:
mshtmhst.idl:286
IContextMenu
Definition:
shobjidl.idl:1646
IDataObject
Definition:
objidl.idl:1530
IShellExtInit
Definition:
shobjidl.idl:1290
void
Definition:
nsiface.idl:2307
BEGIN_COM_MAP
#define BEGIN_COM_MAP(x)
Definition:
atlcom.h:581
COM_INTERFACE_ENTRY_IID
#define COM_INTERFACE_ENTRY_IID(iid, x)
Definition:
atlcom.h:601
DECLARE_PROTECT_FINAL_CONSTRUCT
#define DECLARE_PROTECT_FINAL_CONSTRUCT()
Definition:
atlcom.h:679
DECLARE_NOT_AGGREGATABLE
#define DECLARE_NOT_AGGREGATABLE(x)
Definition:
atlcom.h:651
DECLARE_REGISTRY_RESOURCEID
#define DECLARE_REGISTRY_RESOURCEID(x)
Definition:
atlcom.h:645
END_COM_MAP
#define END_COM_MAP()
Definition:
atlcom.h:592
HMENU
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition:
ordinal.c:63
UINT_PTR
unsigned __int3264 UINT_PTR
Definition:
mstsclib_h.h:274
UINT
unsigned int UINT
Definition:
ndis.h:50
IDR_COPYASPATHMENU
#define IDR_COPYASPATHMENU
Definition:
shresdef.h:916
IContextMenu::tagCMINVOKECOMMANDINFO
Definition:
shobjidl.idl:1713
_ITEMIDLIST_ABSOLUTE
Definition:
shtypes.idl:46
Initialize
static void Initialize()
Definition:
xlate.c:212
LPSTR
char * LPSTR
Definition:
xmlstorage.h:182
dll
win32
shell32
CCopyAsPathMenu.h
Generated on Fri Jan 17 2025 06:04:53 for ReactOS by
1.9.6