ReactOS
0.4.16-dev-1255-g6dd0406
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
shellmenu.h
Go to the documentation of this file.
1
2
#ifdef _MSC_VER
3
4
// Disabling spammy warnings when compiling with /W4 or /Wall
5
#pragma warning(disable:4100)
// unreferenced formal parameter
6
#pragma warning(disable:4201)
// nonstandard extension used
7
#pragma warning(disable:4265)
// class has virtual functions, but destructor is not virtual
8
#pragma warning(disable:4365)
// signed/unsigned mismatch
9
#pragma warning(disable:4514)
// unreferenced inline function
10
#pragma warning(disable:4710)
// function was not inlined
11
#pragma warning(disable:4820)
// padding added
12
#pragma warning(disable:4946)
// reinterpret_cast between related classes
13
14
// Disable some warnings in headers only
15
#pragma warning(push)
16
#pragma warning(disable:4244)
// possible loss of data
17
#pragma warning(disable:4512)
// assignment operator could not be gernerated
18
#endif
19
20
#include <stdio.h>
21
#include <tchar.h>
22
23
#define WIN32_NO_STATUS
24
#define _INC_WINDOWS
25
#define COM_NO_WINDOWS_H
26
27
#define COBJMACROS
28
29
//#define DEBUG_CCOMOBJECT
30
#define DEBUG_CCOMOBJECT_CREATION 1
31
#define DEBUG_CCOMOBJECT_DESTRUCTION 1
32
#define DEBUG_CCOMOBJECT_REFCOUNTING 1
33
34
#include <
windef.h
>
35
#include <
winbase.h
>
36
#include <
winreg.h
>
37
#include <
wingdi.h
>
38
#include <
winnls.h
>
39
#include <
wincon.h
>
40
#include <
shellapi.h
>
41
#include <
shlobj.h
>
42
#include <
shlobj_undoc.h
>
43
#include <
shlwapi.h
>
44
#include <
shlguid_undoc.h
>
45
#include <
uxtheme.h
>
46
#include <
strsafe.h
>
47
48
#include <atlbase.h>
49
#include <atlcom.h>
50
#include <atlwin.h>
51
#include <
undocshell.h
>
52
53
#include <
shellutils.h
>
54
#include <
ui/rosctrls.h
>
55
#include "../shresdef.h"
56
57
#include <
wine/debug.h
>
58
59
#if _MSC_VER
60
// Restore warnings
61
#pragma warning(pop)
62
#endif
63
64
#define USE_SYSTEM_MENUDESKBAR 0
65
#define USE_SYSTEM_MENUSITE 0
66
#define USE_SYSTEM_MENUBAND 0
67
#define USE_SYSTEM_MERGED_FOLDERS 0
68
69
#define MERGE_FOLDERS 1
70
71
#if USE_SYSTEM_MENUDESKBAR
72
#define CMenuDeskBar_CreateInstance(riid, ppv) (CoCreateInstance(CLSID_MenuDeskBar, NULL, CLSCTX_INPROC_SERVER,riid, ppv))
73
#else
74
#define CMenuDeskBar_CreateInstance RSHELL_CMenuDeskBar_CreateInstance
75
#endif
76
77
#if USE_SYSTEM_MENUBAND
78
#define CMenuBand_CreateInstance(riid, ppv) (CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,riid, ppv))
79
#else
80
#define CMenuBand_CreateInstance RSHELL_CMenuBand_CreateInstance
81
#endif
82
83
#if USE_SYSTEM_MENUSITE
84
#define CMenuSite_CreateInstance(riid, ppv) (CoCreateInstance(CLSID_MenuBandSite, NULL, CLSCTX_INPROC_SERVER,riid, ppv))
85
#else
86
#define CMenuSite_CreateInstance RSHELL_CMenuSite_CreateInstance
87
#endif
88
89
#if USE_SYSTEM_MERGED_FOLDERS
90
#define CMergedFolder_CreateInstance(riid, ppv) (CoCreateInstance(CLSID_MergedFolder, NULL, CLSCTX_INPROC_SERVER,riid, ppv))
91
#else
92
#define CMergedFolder_CreateInstance RSHELL_CMergedFolder_CreateInstance
93
#endif
94
95
extern
"C"
96
{
97
extern
HINSTANCE
shell32_hInstance
;
98
99
HRESULT
WINAPI
RSHELL_CStartMenu_CreateInstance
(
REFIID
riid
,
void
**
ppv
);
100
HRESULT
WINAPI
RSHELL_CMenuDeskBar_CreateInstance
(
REFIID
riid
,
LPVOID
*
ppv
);
101
HRESULT
WINAPI
RSHELL_CMenuSite_CreateInstance
(
REFIID
riid
,
LPVOID
*
ppv
);
102
HRESULT
WINAPI
RSHELL_CMenuBand_CreateInstance
(
REFIID
riid
,
LPVOID
*
ppv
);
103
HRESULT
WINAPI
RSHELL_CMergedFolder_CreateInstance
(
REFIID
riid
,
LPVOID
*
ppv
);
104
105
}
riid
REFIID riid
Definition:
atlbase.h:39
ppv
REFIID LPVOID * ppv
Definition:
atlbase.h:39
HRESULT
Definition:
mshtmhst.idl:286
void
Definition:
nsiface.idl:2307
REFIID
#define REFIID
Definition:
guiddef.h:118
rosctrls.h
debug.h
shellapi.h
shell32_hInstance
HINSTANCE shell32_hInstance
Definition:
misc.cpp:63
RSHELL_CStartMenu_CreateInstance
HRESULT WINAPI RSHELL_CStartMenu_CreateInstance(REFIID riid, void **ppv)
Definition:
CStartMenu.cpp:589
RSHELL_CMenuBand_CreateInstance
HRESULT WINAPI RSHELL_CMenuBand_CreateInstance(REFIID riid, LPVOID *ppv)
Definition:
CMenuBand.cpp:1324
RSHELL_CMenuSite_CreateInstance
HRESULT WINAPI RSHELL_CMenuSite_CreateInstance(REFIID riid, LPVOID *ppv)
Definition:
CMenuSite.cpp:363
RSHELL_CMenuDeskBar_CreateInstance
HRESULT WINAPI RSHELL_CMenuDeskBar_CreateInstance(REFIID riid, LPVOID *ppv)
Definition:
CMenuDeskBar.cpp:855
RSHELL_CMergedFolder_CreateInstance
HRESULT WINAPI RSHELL_CMergedFolder_CreateInstance(REFIID riid, LPVOID *ppv)
Definition:
CMergedFolder.cpp:813
shellutils.h
shlguid_undoc.h
shlobj.h
shlobj_undoc.h
shlwapi.h
strsafe.h
undocshell.h
uxtheme.h
winbase.h
wincon.h
windef.h
WINAPI
#define WINAPI
Definition:
msvc.h:6
wingdi.h
winnls.h
winreg.h
dll
win32
shell32
shellmenu
shellmenu.h
Generated on Fri Jun 6 2025 06:05:17 for ReactOS by
1.9.6