ReactOS 0.4.15-dev-7961-gdcf9eb0
precomp.h
Go to the documentation of this file.
1#ifndef _PRECOMP_H__
2#define _PRECOMP_H__
3
4#include <stdarg.h>
5#include <assert.h>
6
7#define COBJMACROS
8#define WIN32_NO_STATUS
9#define _INC_WINDOWS
10#define COM_NO_WINDOWS_H
11#define NTOS_MODE_USER
12
13#include <windef.h>
14#include <winbase.h>
15#include <winreg.h>
16#include <winuser.h>
17#include <wincon.h>
18#include <commdlg.h>
19#include <ddeml.h>
20#include <userenv.h>
21
22#include <shlwapi.h>
23#include <wininet.h>
24#include <shlobj.h>
25#include <shobjidl.h>
26#include <ndk/rtlfuncs.h>
27#include <fmifs/fmifs.h>
28#include <tchar.h>
29#include <strsafe.h>
30#include <atlbase.h>
31#include <atlcom.h>
32#include <atlwin.h>
33#include <atlstr.h>
34#include <atlsimpcoll.h>
35#include <atlcoll.h>
36#include <powrprof.h>
37#include <winnetwk.h>
38#include <objsafe.h>
39
40#include <comctl32_undoc.h>
41#include <shlguid_undoc.h>
42#include <shlobj_undoc.h>
43#include <shlwapi_undoc.h>
44
45#include <shellapi.h>
46#undef ShellExecute
47#include <undocshell.h>
48
49/*
50 * For versions < Vista+, redefine ShellMessageBoxW to ShellMessageBoxWrapW
51 * (this is needed to avoid a linker error). On Vista+ onwards, shell32.ShellMessageBoxW
52 * redirects to shlwapi.ShellMessageBoxW so the #define should not be needed.
53 *
54 * However our shell32 is built with _WIN32_WINNT set to 0x600 (Vista+),
55 * yet its exports (especially regarding ShellMessageBoxA/W) are Win2003
56 * compatible. So the #define is still needed, and the check be disabled.
57 */
58// #if (_WIN32_WINNT < 0x0600)
59#define ShellMessageBoxW ShellMessageBoxWrapW
60// #endif
61
62#include <browseui_undoc.h>
63
64#include <shellutils.h>
65
67#include "wine/pidl.h"
68#include "debughlp.h"
69#include "wine/shell32_main.h"
70#include "shresdef.h"
71#include "wine/cpanel.h"
72#include "CActiveDesktop.h"
73#include "CEnumIDListBase.h"
74#include "shfldr.h"
75#include "CShellItem.h"
76#include "CShellLink.h"
77#include "CFolderItemVerbs.h"
78#include "CFolderItems.h"
79#include "CFolder.h"
80#include "CShellDispatch.h"
81#include "CDropTargetHelper.h"
82#include "CFolderOptions.h"
83#include "folders/CFSFolder.h"
88#include "folders/CNetFolder.h"
92#include "folders/CRecycleBin.h"
95#include "COpenWithMenu.h"
96#include "CNewMenu.h"
97#include "CSendToMenu.h"
98#include "CCopyMoveToMenu.h"
99#include "dialogs/filedefext.h"
100#include "dialogs/drvdefext.h"
101#include "CQueryAssociations.h"
102#include "shellmenu/CMenuBand.h"
104#include "shellmenu/CMenuSite.h"
106#include "shellmenu/shellmenu.h"
107#include "CUserNotification.h"
110
111#include <wine/debug.h>
112#include <wine/unicode.h>
113
116extern const GUID CLSID_StartMenu;
117extern const GUID CLSID_MenuBandSite;
118extern const GUID CLSID_OpenWith;
119extern const GUID CLSID_UnixFolder;
120extern const GUID CLSID_UnixDosFolder;
123
124#define MAX_PROPERTY_SHEET_PAGE 32
125
126extern inline
127BOOL
130{
132
133 if (pHeader->nPages < MAX_PROPERTY_SHEET_PAGE)
134 {
135 pHeader->phpage[pHeader->nPages++] = hPage;
136 return TRUE;
137 }
138
139 return FALSE;
140}
141
144
145// CStubWindow32 --- The owner window of file property sheets.
146// This window hides taskbar button of property sheet.
147class CStubWindow32 : public CWindowImpl<CStubWindow32>
148{
149public:
150 DECLARE_WND_CLASS_EX(_T("StubWindow32"), 0, COLOR_WINDOWTEXT)
151
154};
155
158 _In_ LPCITEMIDLIST pidl,
159 _In_ HANDLE hToken,
160 _Out_ LPITEMIDLIST *ppidlAlias,
162
168
171
174 _In_ IShellFolder *psf,
175 _In_ LPCITEMIDLIST pidl,
177 _Out_ LPWSTR pszBuf,
178 _In_ UINT cchBuf);
179
182 _In_ LPCITEMIDLIST pidl,
184 _Out_ void **ppvObj);
185
188 _In_opt_ IShellFolder *pShellFolder,
189 _In_ LPCITEMIDLIST pidl,
190 _In_opt_ IBindCtx *pBindCtx,
192 _Out_ void **ppvObj);
193
194DWORD
197
200 _In_ LPCITEMIDLIST pidl,
202 _Out_opt_ LPWSTR pszText,
203 _In_ UINT cchBuf,
204 _Inout_opt_ DWORD *pdwAttributes);
205
207
210 _In_ IBindCtx *pBindCtx,
211 _In_ LPOLESTR pszKey,
212 _In_opt_ IUnknown *punk,
213 _Out_ LPBC *ppbc);
214
219
220#endif /* _PRECOMP_H__ */
#define EXTERN_C
Definition: basetyps.h:12
LPARAM lParam
Definition: combotst.c:139
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define CALLBACK
Definition: compat.h:35
HRESULT Shell_DisplayNameOf(_In_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ DWORD dwFlags, _Out_ LPWSTR pszBuf, _In_ UINT cchBuf)
Definition: utils.cpp:215
DWORD SHGetAttributes(_In_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ DWORD dwAttributes)
Definition: utils.cpp:231
const GUID CLSID_UnixDosFolder
const GUID CLSID_MenuBandSite
const GUID CLSID_OpenWith
EXTERN_C INT Shell_ParseSpecialFolder(_In_ LPCWSTR pszStart, _Out_ LPWSTR *ppch, _Out_ INT *pcch)
Definition: shellpath.c:1859
HRESULT SHGetNameAndFlagsW(_In_ LPCITEMIDLIST pidl, _In_ DWORD dwFlags, _Out_opt_ LPWSTR pszText, _In_ UINT cchBuf, _Inout_opt_ DWORD *pdwAttributes)
Definition: utils.cpp:279
DWORD BindCtx_GetMode(_In_ IBindCtx *pbc, _In_ DWORD dwDefault)
Definition: utils.cpp:114
#define MAX_PROPERTY_SHEET_PAGE
Definition: precomp.h:124
HRESULT SHBindToObject(_In_opt_ IShellFolder *psf, _In_ LPCITEMIDLIST pidl, _In_ REFIID riid, _Out_ void **ppvObj)
Definition: utils.cpp:205
HRESULT WINAPI Shell_DefaultContextMenuCallBack(IShellFolder *psf, IDataObject *pdtobj)
Definition: shlfolder.cpp:497
BOOL BindCtx_ContainsObject(_In_ IBindCtx *pBindCtx, _In_ LPCWSTR pszName)
Definition: utils.cpp:106
const GUID SHELL32_AdvtShortcutProduct
HRESULT SHIsFileSysBindCtx(_In_ IBindCtx *pBindCtx, _Out_opt_ WIN32_FIND_DATAW *pFindData)
Definition: utils.cpp:139
BOOL PathIsValidElement(_In_ LPCWSTR pszPath)
Definition: utils.cpp:24
const GUID CLSID_UnixFolder
BOOL Shell_FailForceReturn(_In_ HRESULT hr)
Definition: utils.cpp:156
const GUID CLSID_FontsFolderShortcut
EXTERN_C HRESULT BindCtx_RegisterObjectParam(_In_ IBindCtx *pBindCtx, _In_ LPOLESTR pszKey, _In_opt_ IUnknown *punk, _Out_ LPBC *ppbc)
Definition: utils.cpp:373
const GUID CLSID_AdminFolderShortcut
EXTERN_C HWND BindCtx_GetUIWindow(_In_ IBindCtx *pBindCtx)
Definition: utils.cpp:313
const GUID CLSID_StartMenu
HRESULT SHBindToObjectEx(_In_opt_ IShellFolder *pShellFolder, _In_ LPCITEMIDLIST pidl, _In_opt_ IBindCtx *pBindCtx, _In_ REFIID riid, _Out_ void **ppvObj)
Definition: utils.cpp:173
HRESULT Shell_TranslateIDListAlias(_In_ LPCITEMIDLIST pidl, _In_ HANDLE hToken, _Out_ LPITEMIDLIST *ppidlAlias, _In_ DWORD dwFlags)
Definition: utils.cpp:97
BOOL SHSkipJunctionBinding(_In_ IBindCtx *pbc, _In_ CLSID *pclsid)
Definition: utils.cpp:127
BOOL PathIsDotOrDotDotW(_In_ LPCWSTR pszPath)
Definition: utils.cpp:12
HRESULT SHILAppend(_Inout_ LPITEMIDLIST pidl, _Inout_ LPITEMIDLIST *ppidl)
Definition: utils.cpp:59
const GUID SHELL32_AdvtShortcutComponent
BOOL CALLBACK AddPropSheetPageCallback(HPROPSHEETPAGE hPage, LPARAM lParam)
Definition: precomp.h:129
HRESULT SHCoInitializeAnyApartment(VOID)
Definition: utils.cpp:270
BOOL PathIsDosDevice(_In_ LPCWSTR pszName)
Definition: utils.cpp:38
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
FxContextHeader * pHeader
Definition: handleapi.cpp:604
REFIID riid
Definition: atlbase.h:39
#define BEGIN_MSG_MAP(theClass)
Definition: atlwin.h:1898
#define END_MSG_MAP()
Definition: atlwin.h:1917
#define DECLARE_WND_CLASS_EX(WndClassName, style, bkgnd)
Definition: atlwin.h:2004
static LPOLESTR
Definition: stg_prop.c:27
#define _Out_opt_
Definition: ms_sal.h:346
#define _Inout_
Definition: ms_sal.h:378
#define _Inout_opt_
Definition: ms_sal.h:379
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
#define _In_opt_
Definition: ms_sal.h:309
struct _PSP * HPROPSHEETPAGE
Definition: mstask.idl:90
unsigned int UINT
Definition: ndis.h:50
interface IBindCtx * LPBC
Definition: objfwd.h:18
#define REFIID
Definition: guiddef.h:118
HRESULT hr
Definition: shlfolder.c:183
ITEMIDLIST UNALIGNED * LPITEMIDLIST
Definition: shtypes.idl:41
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
int32_t INT
Definition: typedefs.h:58
DWORD dwAttributes
Definition: vdmdbg.h:34
#define _T(x)
Definition: vfdio.h:22
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
Definition: wincrypt.h:1176
LONG_PTR LPARAM
Definition: windef.h:208
#define WINAPI
Definition: msvc.h:6
#define COLOR_WINDOWTEXT
Definition: winuser.h:921
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185