ReactOS 0.4.15-dev-7918-g2a2556c
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#include <undocuser.h>
53
54#include <shellutils.h>
55#include <ui/rosctrls.h>
56#include "../shresdef.h"
57
58#include <wine/debug.h>
59
60#if _MSC_VER
61// Restore warnings
62#pragma warning(pop)
63#endif
64
65#define USE_SYSTEM_MENUDESKBAR 0
66#define USE_SYSTEM_MENUSITE 0
67#define USE_SYSTEM_MENUBAND 0
68#define USE_SYSTEM_MERGED_FOLDERS 0
69
70#define MERGE_FOLDERS 1
71
72#if USE_SYSTEM_MENUDESKBAR
73#define CMenuDeskBar_CreateInstance(riid, ppv) (CoCreateInstance(CLSID_MenuDeskBar, NULL, CLSCTX_INPROC_SERVER,riid, ppv))
74#else
75#define CMenuDeskBar_CreateInstance RSHELL_CMenuDeskBar_CreateInstance
76#endif
77
78#if USE_SYSTEM_MENUBAND
79#define CMenuBand_CreateInstance(riid, ppv) (CoCreateInstance(CLSID_MenuBand, NULL, CLSCTX_INPROC_SERVER,riid, ppv))
80#else
81#define CMenuBand_CreateInstance RSHELL_CMenuBand_CreateInstance
82#endif
83
84#if USE_SYSTEM_MENUSITE
85#define CMenuSite_CreateInstance(riid, ppv) (CoCreateInstance(CLSID_MenuBandSite, NULL, CLSCTX_INPROC_SERVER,riid, ppv))
86#else
87#define CMenuSite_CreateInstance RSHELL_CMenuSite_CreateInstance
88#endif
89
90#if USE_SYSTEM_MERGED_FOLDERS
91#define CMergedFolder_CreateInstance(riid, ppv) (CoCreateInstance(CLSID_MergedFolder, NULL, CLSCTX_INPROC_SERVER,riid, ppv))
92#else
93#define CMergedFolder_CreateInstance RSHELL_CMergedFolder_CreateInstance
94#endif
95
96extern "C"
97{
99
105
106}
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define REFIID
Definition: guiddef.h:118
HINSTANCE shell32_hInstance
Definition: misc.cpp:82
HRESULT WINAPI RSHELL_CStartMenu_CreateInstance(REFIID riid, void **ppv)
Definition: CStartMenu.cpp:592
HRESULT WINAPI RSHELL_CMenuBand_CreateInstance(REFIID riid, LPVOID *ppv)
Definition: CMenuBand.cpp:1312
HRESULT WINAPI RSHELL_CMenuSite_CreateInstance(REFIID riid, LPVOID *ppv)
Definition: CMenuSite.cpp:360
HRESULT WINAPI RSHELL_CMenuDeskBar_CreateInstance(REFIID riid, LPVOID *ppv)
HRESULT WINAPI RSHELL_CMergedFolder_CreateInstance(REFIID riid, LPVOID *ppv)
#define WINAPI
Definition: msvc.h:6