- Move the SDK to /PSDK or else we'll never get MSVC compiling right.
[reactos.git] / reactos / include / psdk / shellapi.h
1 #ifndef _SHELLAPI_H
2 #define _SHELLAPI_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
6
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
10 #define WINSHELLAPI DECLSPEC_IMPORT
11 #define ABE_LEFT 0
12 #define ABE_TOP 1
13 #define ABE_RIGHT 2
14 #define ABE_BOTTOM 3
15 #define ABS_AUTOHIDE 1
16 #define ABS_ALWAYSONTOP 2
17 #define SEE_MASK_CLASSNAME 1
18 #define SEE_MASK_CLASSKEY 3
19 #define SEE_MASK_IDLIST 4
20 #define SEE_MASK_INVOKEIDLIST 12
21 #define SEE_MASK_ICON 0x10
22 #define SEE_MASK_HOTKEY 0x20
23 #define SEE_MASK_NOCLOSEPROCESS 0x40
24 #define SEE_MASK_CONNECTNETDRV 0x80
25 #define SEE_MASK_FLAG_DDEWAIT 0x100
26 #define SEE_MASK_DOENVSUBST 0x200
27 #define SEE_MASK_FLAG_NO_UI 0x400
28 #define SEE_MASK_NO_CONSOLE 0x8000
29 #define SEE_MASK_UNICODE 0x10000
30 #define SEE_MASK_ASYNCOK 0x100000
31 #define SEE_MASK_HMONITOR 0x200000
32 #define SEE_MASK_NOZONECHECKS 0x00800000
33 #define ABM_NEW 0
34 #define ABM_REMOVE 1
35 #define ABM_QUERYPOS 2
36 #define ABM_SETPOS 3
37 #define ABM_GETSTATE 4
38 #define ABM_GETTASKBARPOS 5
39 #define ABM_ACTIVATE 6
40 #define ABM_GETAUTOHIDEBAR 7
41 #define ABM_SETAUTOHIDEBAR 8
42 #define ABM_WINDOWPOSCHANGED 9
43 #define ABN_STATECHANGE 0
44 #define ABN_POSCHANGED 1
45 #define ABN_FULLSCREENAPP 2
46 #define ABN_WINDOWARRANGE 3
47 #define NIM_ADD 0
48 #define NIM_MODIFY 1
49 #define NIM_DELETE 2
50 #if _WIN32_IE >= 0x0500
51 #define NOTIFYICON_VERSION 3
52 #define NIM_SETFOCUS 3
53 #define NIM_SETVERSION 4
54 #endif
55 #define NIF_MESSAGE 1
56 #define NIF_ICON 2
57 #define NIF_TIP 4
58 #define NIF_STATE 8
59 #if _WIN32_IE >= 0x0500
60 #define NIF_INFO 16
61 #define NIS_HIDDEN 1
62 #define NIS_SHAREDICON 2
63 #define NIIF_NONE 0
64 #define NIIF_INFO 1
65 #define NIIF_WARNING 2
66 #define NIIF_ERROR 3
67 #if _WIN32_IE >= 0x0600
68 #define NIIF_ICON_MASK 0xf
69 #define NIIF_NOSOUND 0x10
70 #endif /* _WIN32_IE >= 0x0600 */
71 #endif /* _WIN32_IE >= 0x0500 */
72 #define SE_ERR_FNF 2
73 #define SE_ERR_PNF 3
74 #define SE_ERR_ACCESSDENIED 5
75 #define SE_ERR_OOM 8
76 #define SE_ERR_DLLNOTFOUND 32
77 #define SE_ERR_SHARE 26
78 #define SE_ERR_ASSOCINCOMPLETE 27
79 #define SE_ERR_DDETIMEOUT 28
80 #define SE_ERR_DDEFAIL 29
81 #define SE_ERR_DDEBUSY 30
82 #define SE_ERR_NOASSOC 31
83 #define FO_MOVE 1
84 #define FO_COPY 2
85 #define FO_DELETE 3
86 #define FO_RENAME 4
87 #define FOF_MULTIDESTFILES 1
88 #define FOF_CONFIRMMOUSE 2
89 #define FOF_SILENT 4
90 #define FOF_RENAMEONCOLLISION 8
91 #define FOF_NOCONFIRMATION 16
92 #define FOF_WANTMAPPINGHANDLE 32
93 #define FOF_ALLOWUNDO 64
94 #define FOF_FILESONLY 128
95 #define FOF_SIMPLEPROGRESS 256
96 #define FOF_NOCONFIRMMKDIR 512
97 #define FOF_NOERRORUI 1024
98 #define FOF_NOCOPYSECURITYATTRIBS 2048
99 #define PO_DELETE 19
100 #define PO_RENAME 20
101 #define PO_PORTCHANGE 32
102 #define PO_REN_PORT 52
103 #define SHGFI_ADDOVERLAYS 32
104 #define SHGFI_OVERLAYINDEX 64
105 #define SHGFI_ICON 256
106 #define SHGFI_DISPLAYNAME 512
107 #define SHGFI_TYPENAME 1024
108 #define SHGFI_ATTRIBUTES 2048
109 #define SHGFI_ICONLOCATION 4096
110 #define SHGFI_EXETYPE 8192
111 #define SHGFI_SYSICONINDEX 16384
112 #define SHGFI_LINKOVERLAY 32768
113 #define SHGFI_SELECTED 65536
114 #define SHGFI_ATTR_SPECIFIED 131072
115 #define SHGFI_LARGEICON 0
116 #define SHGFI_SMALLICON 1
117 #define SHGFI_OPENICON 2
118 #define SHGFI_SHELLICONSIZE 4
119 #define SHGFI_PIDL 8
120 #define SHGFI_USEFILEATTRIBUTES 16
121 #define SHERB_NOCONFIRMATION 1
122 #define SHERB_NOPROGRESSUI 2
123 #define SHERB_NOSOUND 4
124
125 typedef WORD FILEOP_FLAGS;
126 typedef WORD PRINTEROP_FLAGS;
127 #include <pshpack2.h>
128 typedef struct _AppBarData {
129 DWORD cbSize;
130 HWND hWnd;
131 UINT uCallbackMessage;
132 UINT uEdge;
133 RECT rc;
134 LPARAM lParam;
135 } APPBARDATA,*PAPPBARDATA;
136 DECLARE_HANDLE(HDROP);
137
138 typedef struct _NOTIFYICONDATAA {
139 DWORD cbSize;
140 HWND hWnd;
141 UINT uID;
142 UINT uFlags;
143 UINT uCallbackMessage;
144 HICON hIcon;
145 #if _WIN32_IE >= 0x0500
146 CHAR szTip[128];
147 DWORD dwState;
148 DWORD dwStateMask;
149 CHAR szInfo[256];
150 _ANONYMOUS_UNION union {
151 UINT uTimeout;
152 UINT uVersion;
153 } DUMMYUNIONNAME;
154 CHAR szInfoTitle[64];
155 DWORD dwInfoFlags;
156 #else
157 CHAR szTip[64];
158 #endif
159 #if _WIN32_IE >= 0x600
160 GUID guidItem;
161 #endif
162 } NOTIFYICONDATAA,*PNOTIFYICONDATAA;
163
164 typedef struct _NOTIFYICONDATAW {
165 DWORD cbSize;
166 HWND hWnd;
167 UINT uID;
168 UINT uFlags;
169 UINT uCallbackMessage;
170 HICON hIcon;
171 #if _WIN32_IE >= 0x0500
172 WCHAR szTip[128];
173 DWORD dwState;
174 DWORD dwStateMask;
175 WCHAR szInfo[256];
176 _ANONYMOUS_UNION union {
177 UINT uTimeout;
178 UINT uVersion;
179 } DUMMYUNIONNAME;
180 WCHAR szInfoTitle[64];
181 DWORD dwInfoFlags;
182 #else
183 WCHAR szTip[64];
184 #endif
185 #if _WIN32_IE >= 0x600
186 GUID guidItem;
187 #endif
188 } NOTIFYICONDATAW,*PNOTIFYICONDATAW;
189
190 typedef struct _SHELLEXECUTEINFOA {
191 DWORD cbSize;
192 ULONG fMask;
193 HWND hwnd;
194 LPCSTR lpVerb;
195 LPCSTR lpFile;
196 LPCSTR lpParameters;
197 LPCSTR lpDirectory;
198 int nShow;
199 HINSTANCE hInstApp;
200 PVOID lpIDList;
201 LPCSTR lpClass;
202 HKEY hkeyClass;
203 DWORD dwHotKey;
204 HANDLE hIcon;
205 HANDLE hProcess;
206 } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
207 typedef struct _SHELLEXECUTEINFOW {
208 DWORD cbSize;
209 ULONG fMask;
210 HWND hwnd;
211 LPCWSTR lpVerb;
212 LPCWSTR lpFile;
213 LPCWSTR lpParameters;
214 LPCWSTR lpDirectory;
215 int nShow;
216 HINSTANCE hInstApp;
217 PVOID lpIDList;
218 LPCWSTR lpClass;
219 HKEY hkeyClass;
220 DWORD dwHotKey;
221 HANDLE hIcon;
222 HANDLE hProcess;
223 } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
224 typedef struct _SHFILEOPSTRUCTA {
225 HWND hwnd;
226 UINT wFunc;
227 LPCSTR pFrom;
228 LPCSTR pTo;
229 FILEOP_FLAGS fFlags;
230 BOOL fAnyOperationsAborted;
231 PVOID hNameMappings;
232 LPCSTR lpszProgressTitle;
233 } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
234 typedef struct _SHFILEOPSTRUCTW {
235 HWND hwnd;
236 UINT wFunc;
237 LPCWSTR pFrom;
238 LPCWSTR pTo;
239 FILEOP_FLAGS fFlags;
240 BOOL fAnyOperationsAborted;
241 PVOID hNameMappings;
242 LPCWSTR lpszProgressTitle;
243 } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
244 typedef struct _SHFILEINFOA {
245 HICON hIcon;
246 int iIcon;
247 DWORD dwAttributes;
248 CHAR szDisplayName[MAX_PATH];
249 CHAR szTypeName[80];
250 } SHFILEINFOA;
251 typedef struct _SHFILEINFOW {
252 HICON hIcon;
253 int iIcon;
254 DWORD dwAttributes;
255 WCHAR szDisplayName[MAX_PATH];
256 WCHAR szTypeName[80];
257 } SHFILEINFOW;
258 typedef struct _SHQUERYRBINFO {
259 DWORD cbSize;
260 __int64 i64Size;
261 __int64 i64NumItems;
262 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
263 typedef struct _SHNAMEMAPPINGA {
264 LPSTR pszOldPath;
265 LPSTR pszNewPath;
266 int cchOldPath;
267 int cchNewPath;
268 } SHNAMEMAPPINGA, *LPSHNAMEMAPPINGA;
269 typedef struct _SHNAMEMAPPINGW {
270 LPWSTR pszOldPath;
271 LPWSTR pszNewPath;
272 int cchOldPath;
273 int cchNewPath;
274 } SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW;
275 #include <poppack.h>
276
277 LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*);
278 void WINAPI DragAcceptFiles(HWND,BOOL);
279 void WINAPI DragFinish(HDROP);
280 UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT);
281 UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT);
282 BOOL WINAPI DragQueryPoint(HDROP,LPPOINT);
283 HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPSTR,PWORD);
284 HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPWSTR,PWORD);
285 HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
286 HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
287 UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
288 UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
289 HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
290 HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
291 UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
292 BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
293 BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
294 int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
295 int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
296 HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
297 HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
298 BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
299 BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW);
300 int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA);
301 int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW);
302 void WINAPI SHFreeNameMappings(HANDLE);
303 DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
304 DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
305 HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
306 HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
307 HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
308 HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
309
310 #ifdef UNICODE
311 typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
312 typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
313 typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
314 typedef SHFILEINFOW SHFILEINFO;
315 typedef SHNAMEMAPPINGW SHNAMEMAPPING;
316 typedef LPSHNAMEMAPPINGW LPSHNAMEMAPPING;
317 #define DragQueryFile DragQueryFileW
318 #define ExtractAssociatedIcon ExtractAssociatedIconW
319 #define ExtractIcon ExtractIconW
320 #define ExtractIconEx ExtractIconExW
321 #define FindExecutable FindExecutableW
322 #define Shell_NotifyIcon Shell_NotifyIconW
323 #define ShellAbout ShellAboutW
324 #define ShellExecute ShellExecuteW
325 #define ShellExecuteEx ShellExecuteExW
326 #define SHFileOperation SHFileOperationW
327 #define SHGetFileInfo SHGetFileInfoW
328 #define SHQueryRecycleBin SHQueryRecycleBinW
329 #define SHEmptyRecycleBin SHEmptyRecycleBinW
330
331 #else
332 typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
333 typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
334 typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
335 typedef SHFILEINFOA SHFILEINFO;
336 typedef SHNAMEMAPPINGA SHNAMEMAPPING;
337 typedef LPSHNAMEMAPPINGA LPSHNAMEMAPPING;
338 #define DragQueryFile DragQueryFileA
339 #define ExtractAssociatedIcon ExtractAssociatedIconA
340 #define ExtractIcon ExtractIconA
341 #define ExtractIconEx ExtractIconExA
342 #define FindExecutable FindExecutableA
343 #define Shell_NotifyIcon Shell_NotifyIconA
344 #define ShellAbout ShellAboutA
345 #define ShellExecute ShellExecuteA
346 #define ShellExecuteEx ShellExecuteExA
347 #define SHFileOperation SHFileOperationA
348 #define SHGetFileInfo SHGetFileInfoA
349 #define SHQueryRecycleBin SHQueryRecycleBinA
350 #define SHEmptyRecycleBin SHEmptyRecycleBinA
351 #endif
352 #ifdef __cplusplus
353 }
354 #endif
355 #endif