ReactOS
0.4.16-dev-1040-g85afe48
Toggle main menu visibility
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
x
Functions
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
Variables
_
c
d
e
f
g
h
i
l
m
n
o
p
s
t
u
x
Typedefs
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
x
Enumerations
_
a
b
c
d
f
i
l
m
o
p
s
t
w
x
Enumerator
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
x
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
_
a
b
c
d
e
f
h
i
k
l
m
n
o
p
r
s
t
u
v
w
z
Enumerator
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Related Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
v
x
Files
File List
File Members
All
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
$
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Examples
CCopyMoveToMenu.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: CopyTo and MoveTo implementation
5
* COPYRIGHT: Copyright 2020-2023 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com)
6
*/
7
#pragma once
8
9
class
CCopyMoveToMenu
:
10
public
CComObjectRootEx<CComMultiThreadModelNoCS>,
11
public
IContextMenu2
,
12
public
IObjectWithSite
,
13
public
IShellExtInit
14
{
15
protected
:
16
CComPtr<IDataObject>
m_pDataObject
;
17
CComPtr<IUnknown>
m_pSite
;
18
19
HRESULT
DoRealFileOp
(
const
CIDA
*pCIDA,
LPCMINVOKECOMMANDINFO
lpici,
PCUIDLIST_ABSOLUTE
pidlDestination);
20
HRESULT
DoAction
(
LPCMINVOKECOMMANDINFO
lpici);
21
22
public
:
23
CComHeapPtr<ITEMIDLIST>
m_pidlFolder
;
24
WNDPROC
m_fnOldWndProc
;
25
BOOL
m_bIgnoreTextBoxChange
;
26
27
CCopyMoveToMenu
();
28
29
virtual
UINT
GetCaptionStringID
()
const
= 0;
30
virtual
UINT
GetButtonStringID
()
const
= 0;
31
virtual
UINT
GetActionTitleStringID
()
const
= 0;
32
virtual
UINT
GetFileOp
()
const
= 0;
33
virtual
LPCSTR
GetVerb
()
const
= 0;
34
STDMETHODIMP
QueryContextMenuImpl
(
BOOL
IsCopyOp,
HMENU
hMenu,
UINT
indexMenu,
UINT
idCmdFirst,
UINT
idCmdLast,
UINT
uFlags
);
35
36
// IContextMenu
37
STDMETHODIMP
GetCommandString
(
UINT_PTR
idCommand,
UINT
uFlags
,
UINT
*
lpReserved
,
LPSTR
lpszName,
UINT
uMaxNameLen)
override
;
38
STDMETHODIMP
InvokeCommand
(
LPCMINVOKECOMMANDINFO
lpcmi)
override
;
39
40
// IContextMenu2
41
STDMETHODIMP
HandleMenuMsg
(
UINT
uMsg,
WPARAM
wParam
,
LPARAM
lParam
)
override
;
42
43
// IShellExtInit
44
STDMETHODIMP
Initialize
(
PCIDLIST_ABSOLUTE
pidlFolder,
IDataObject
*pdtobj,
HKEY
hkeyProgID)
override
;
45
46
// IObjectWithSite
47
STDMETHODIMP
SetSite
(
IUnknown
*pUnkSite)
override
;
48
STDMETHODIMP
GetSite
(
REFIID
riid
,
void
**ppvSite)
override
;
49
};
50
51
class
CCopyToMenu
52
:
public
CComCoClass<CCopyToMenu, &CLSID_CopyToMenu>
53
,
public
CCopyMoveToMenu
54
{
55
public
:
56
CComHeapPtr<ITEMIDLIST>
m_pidlFolder
;
57
WNDPROC
m_fnOldWndProc
;
58
BOOL
m_bIgnoreTextBoxChange
;
59
60
CCopyToMenu
() { }
61
62
// IContextMenu
63
STDMETHODIMP
QueryContextMenu
(
HMENU
hMenu,
UINT
indexMenu,
UINT
idCmdFirst,
UINT
idCmdLast,
UINT
uFlags
)
override
;
64
65
DECLARE_REGISTRY_RESOURCEID
(
IDR_COPYTOMENU
)
66
DECLARE_NOT_AGGREGATABLE
(
CCopyToMenu
)
67
68
DECLARE_PROTECT_FINAL_CONSTRUCT
()
69
70
BEGIN_COM_MAP
(
CCopyToMenu
)
71
COM_INTERFACE_ENTRY_IID
(IID_IContextMenu2,
IContextMenu2
)
72
COM_INTERFACE_ENTRY_IID
(IID_IContextMenu,
IContextMenu
)
73
COM_INTERFACE_ENTRY_IID
(IID_IShellExtInit,
IShellExtInit
)
74
COM_INTERFACE_ENTRY_IID
(
IID_IObjectWithSite
,
IObjectWithSite
)
75
END_COM_MAP
()
76
77
UINT
GetCaptionStringID
()
const override
{
return
IDS_COPYITEMS
; }
78
UINT
GetButtonStringID
()
const override
{
return
IDS_COPYBUTTON
; }
79
UINT
GetActionTitleStringID
()
const override
{
return
IDS_COPYTOTITLE
; }
80
UINT
GetFileOp
()
const override
{
return
FO_COPY
; }
81
LPCSTR
GetVerb
()
const override
{
return
"copyto"
; }
82
};
83
84
class
CMoveToMenu
85
:
public
CComCoClass<CMoveToMenu, &CLSID_MoveToMenu>
86
,
public
CCopyMoveToMenu
87
{
88
public
:
89
CMoveToMenu
() { }
90
91
// IContextMenu
92
STDMETHODIMP
QueryContextMenu
(
HMENU
hMenu,
UINT
indexMenu,
UINT
idCmdFirst,
UINT
idCmdLast,
UINT
uFlags
)
override
;
93
94
DECLARE_REGISTRY_RESOURCEID
(
IDR_MOVETOMENU
)
95
DECLARE_NOT_AGGREGATABLE
(
CMoveToMenu
)
96
97
DECLARE_PROTECT_FINAL_CONSTRUCT
()
98
99
BEGIN_COM_MAP
(
CMoveToMenu
)
100
COM_INTERFACE_ENTRY_IID
(IID_IContextMenu2,
IContextMenu2
)
101
COM_INTERFACE_ENTRY_IID
(IID_IContextMenu,
IContextMenu
)
102
COM_INTERFACE_ENTRY_IID
(IID_IShellExtInit,
IShellExtInit
)
103
COM_INTERFACE_ENTRY_IID
(
IID_IObjectWithSite
,
IObjectWithSite
)
104
END_COM_MAP
()
105
106
UINT
GetCaptionStringID
()
const override
{
return
IDS_MOVEITEMS
; }
107
UINT
GetButtonStringID
()
const override
{
return
IDS_MOVEBUTTON
; }
108
UINT
GetActionTitleStringID
()
const override
{
return
IDS_MOVETOTITLE
; }
109
UINT
GetFileOp
()
const override
{
return
FO_MOVE
; }
110
LPCSTR
GetVerb
()
const override
{
return
"moveto"
; }
111
};
lpReserved
static DWORD const LPVOID const lpReserved
Definition:
appcrt_dllmain.cpp:58
STDMETHODIMP
#define STDMETHODIMP
Definition:
basetyps.h:43
CCopyMoveToMenu
Definition:
CCopyMoveToMenu.h:14
CCopyMoveToMenu::QueryContextMenuImpl
STDMETHODIMP QueryContextMenuImpl(BOOL IsCopyOp, HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
Definition:
CCopyMoveToMenu.cpp:269
CCopyMoveToMenu::DoAction
HRESULT DoAction(LPCMINVOKECOMMANDINFO lpici)
Definition:
CCopyMoveToMenu.cpp:189
CCopyMoveToMenu::GetCaptionStringID
virtual UINT GetCaptionStringID() const =0
CCopyMoveToMenu::m_pidlFolder
CComHeapPtr< ITEMIDLIST > m_pidlFolder
Definition:
CCopyMoveToMenu.h:23
CCopyMoveToMenu::DoRealFileOp
HRESULT DoRealFileOp(const CIDA *pCIDA, LPCMINVOKECOMMANDINFO lpici, PCUIDLIST_ABSOLUTE pidlDestination)
Definition:
CCopyMoveToMenu.cpp:124
CCopyMoveToMenu::GetActionTitleStringID
virtual UINT GetActionTitleStringID() const =0
CCopyMoveToMenu::GetButtonStringID
virtual UINT GetButtonStringID() const =0
CCopyMoveToMenu::GetSite
STDMETHODIMP GetSite(REFIID riid, void **ppvSite) override
Definition:
CCopyMoveToMenu.cpp:394
CCopyMoveToMenu::InvokeCommand
STDMETHODIMP InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) override
Definition:
CCopyMoveToMenu.cpp:316
CCopyMoveToMenu::GetFileOp
virtual UINT GetFileOp() const =0
CCopyMoveToMenu::GetCommandString
STDMETHODIMP GetCommandString(UINT_PTR idCommand, UINT uFlags, UINT *lpReserved, LPSTR lpszName, UINT uMaxNameLen) override
Definition:
CCopyMoveToMenu.cpp:336
CCopyMoveToMenu::m_pDataObject
CComPtr< IDataObject > m_pDataObject
Definition:
CCopyMoveToMenu.h:16
CCopyMoveToMenu::SetSite
STDMETHODIMP SetSite(IUnknown *pUnkSite) override
Definition:
CCopyMoveToMenu.cpp:387
CCopyMoveToMenu::CCopyMoveToMenu
CCopyMoveToMenu()
Definition:
CCopyMoveToMenu.cpp:14
CCopyMoveToMenu::HandleMenuMsg
STDMETHODIMP HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam) override
Definition:
CCopyMoveToMenu.cpp:356
CCopyMoveToMenu::m_pSite
CComPtr< IUnknown > m_pSite
Definition:
CCopyMoveToMenu.h:17
CCopyMoveToMenu::m_bIgnoreTextBoxChange
BOOL m_bIgnoreTextBoxChange
Definition:
CCopyMoveToMenu.h:25
CCopyMoveToMenu::GetVerb
virtual LPCSTR GetVerb() const =0
CCopyMoveToMenu::m_fnOldWndProc
WNDPROC m_fnOldWndProc
Definition:
CCopyMoveToMenu.h:24
CCopyToMenu
Definition:
CCopyMoveToMenu.h:54
CCopyToMenu::QueryContextMenu
STDMETHODIMP QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
Definition:
CCopyMoveToMenu.cpp:245
CCopyToMenu::GetButtonStringID
UINT GetButtonStringID() const override
Definition:
CCopyMoveToMenu.h:78
CCopyToMenu::GetFileOp
UINT GetFileOp() const override
Definition:
CCopyMoveToMenu.h:80
CCopyToMenu::CCopyToMenu
CCopyToMenu()
Definition:
CCopyMoveToMenu.h:60
CCopyToMenu::m_bIgnoreTextBoxChange
BOOL m_bIgnoreTextBoxChange
Definition:
CCopyMoveToMenu.h:58
CCopyToMenu::m_pidlFolder
CComHeapPtr< ITEMIDLIST > m_pidlFolder
Definition:
CCopyMoveToMenu.h:56
CCopyToMenu::GetCaptionStringID
UINT GetCaptionStringID() const override
Definition:
CCopyMoveToMenu.h:77
CCopyToMenu::GetActionTitleStringID
UINT GetActionTitleStringID() const override
Definition:
CCopyMoveToMenu.h:79
CCopyToMenu::GetVerb
LPCSTR GetVerb() const override
Definition:
CCopyMoveToMenu.h:81
CCopyToMenu::m_fnOldWndProc
WNDPROC m_fnOldWndProc
Definition:
CCopyMoveToMenu.h:57
CMoveToMenu
Definition:
CCopyMoveToMenu.h:87
CMoveToMenu::GetVerb
LPCSTR GetVerb() const override
Definition:
CCopyMoveToMenu.h:110
CMoveToMenu::GetFileOp
UINT GetFileOp() const override
Definition:
CCopyMoveToMenu.h:109
CMoveToMenu::GetCaptionStringID
UINT GetCaptionStringID() const override
Definition:
CCopyMoveToMenu.h:106
CMoveToMenu::QueryContextMenu
STDMETHODIMP QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) override
Definition:
CCopyMoveToMenu.cpp:257
CMoveToMenu::GetButtonStringID
UINT GetButtonStringID() const override
Definition:
CCopyMoveToMenu.h:107
CMoveToMenu::CMoveToMenu
CMoveToMenu()
Definition:
CCopyMoveToMenu.h:89
CMoveToMenu::GetActionTitleStringID
UINT GetActionTitleStringID() const override
Definition:
CCopyMoveToMenu.h:108
wParam
WPARAM wParam
Definition:
combotst.c:138
lParam
LPARAM lParam
Definition:
combotst.c:139
uFlags
UINT uFlags
Definition:
api.c:59
BOOL
unsigned int BOOL
Definition:
ntddk_ex.h:94
riid
REFIID riid
Definition:
atlbase.h:39
HRESULT
Definition:
mshtmhst.idl:286
IContextMenu2
Definition:
shobjidl.idl:1773
IContextMenu
Definition:
shobjidl.idl:1647
IDataObject
Definition:
objidl.idl:1530
IObjectWithSite
Definition:
ocidl.idl:1153
IShellExtInit
Definition:
shobjidl.idl:1291
IUnknown
Definition:
unknwn.idl:39
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
IID_IObjectWithSite
const IID IID_IObjectWithSite
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
REFIID
#define REFIID
Definition:
guiddef.h:118
FO_COPY
#define FO_COPY
Definition:
shellapi.h:138
FO_MOVE
#define FO_MOVE
Definition:
shellapi.h:137
IDS_MOVEITEMS
#define IDS_MOVEITEMS
Definition:
shresdef.h:373
IDS_MOVEBUTTON
#define IDS_MOVEBUTTON
Definition:
shresdef.h:374
IDS_COPYBUTTON
#define IDS_COPYBUTTON
Definition:
shresdef.h:370
IDR_MOVETOMENU
#define IDR_MOVETOMENU
Definition:
shresdef.h:941
IDS_COPYITEMS
#define IDS_COPYITEMS
Definition:
shresdef.h:369
IDR_COPYTOMENU
#define IDR_COPYTOMENU
Definition:
shresdef.h:940
IDS_MOVETOTITLE
#define IDS_MOVETOTITLE
Definition:
shresdef.h:372
IDS_COPYTOTITLE
#define IDS_COPYTOTITLE
Definition:
shresdef.h:368
PCUIDLIST_ABSOLUTE
const ITEMIDLIST_ABSOLUTE UNALIGNED * PCUIDLIST_ABSOLUTE
Definition:
shtypes.idl:63
CIDA
Definition:
shlobj.h:580
IContextMenu::tagCMINVOKECOMMANDINFO
Definition:
shobjidl.idl:1714
_ITEMIDLIST_ABSOLUTE
Definition:
shtypes.idl:46
LPARAM
LONG_PTR LPARAM
Definition:
windef.h:208
WPARAM
UINT_PTR WPARAM
Definition:
windef.h:207
WNDPROC
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition:
winuser.h:2917
Initialize
static void Initialize()
Definition:
xlate.c:212
LPCSTR
const char * LPCSTR
Definition:
xmlstorage.h:183
LPSTR
char * LPSTR
Definition:
xmlstorage.h:182
dll
win32
shell32
CCopyMoveToMenu.h
Generated on Fri Apr 25 2025 06:05:03 for ReactOS by
1.9.6