Define struct _SHELLEXECUTEINFO instead of struct _SHELLEXECUTEINFOA and
[cegcc.git] / cegcc / src / w32api / include / shellapi.h
blob46790572a7275821f1366578c1e723f353d33a0e
1 #ifndef _SHELLAPI_H
2 #define _SHELLAPI_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
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 0x1
18 #define SEE_MASK_CLASSKEY 0x3
19 #define SEE_MASK_IDLIST 0x4
20 #define SEE_MASK_INVOKEIDLIST 0xc
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 #if (_WIN32_IE >= 0x0600)
33 #define SEE_MASK_NOZONECHECKS 0x800000
34 #define SEE_MASK_FLAG_LOG_USAGE 0x4000000
35 #endif
36 #define ABM_NEW 0
37 #define ABM_REMOVE 1
38 #define ABM_QUERYPOS 2
39 #define ABM_SETPOS 3
40 #define ABM_GETSTATE 4
41 #define ABM_GETTASKBARPOS 5
42 #define ABM_ACTIVATE 6
43 #define ABM_GETAUTOHIDEBAR 7
44 #define ABM_SETAUTOHIDEBAR 8
45 #define ABM_WINDOWPOSCHANGED 9
46 #define ABN_STATECHANGE 0
47 #define ABN_POSCHANGED 1
48 #define ABN_FULLSCREENAPP 2
49 #define ABN_WINDOWARRANGE 3
50 #define NIM_ADD 0
51 #define NIM_MODIFY 1
52 #define NIM_DELETE 2
53 #if (_WIN32_IE >= 0x0500)
54 #define NOTIFYICON_VERSION 3
55 #if (_WIN32_WINNT >= 0x600)
56 #define NOTIFYICON_VERSION_4 4
57 #endif
58 #define NIM_SETFOCUS 3
59 #define NIM_SETVERSION 4
60 #define NIN_POPUPOPEN WM_USER+6
61 #define NIN_POPUPCLOSE WM_USER+7
62 #endif
63 #define NIF_MESSAGE 0x00000001
64 #define NIF_ICON 0x00000002
65 #define NIF_TIP 0x00000004
66 #define NIF_STATE 0x00000008
67 #if (_WIN32_IE >= 0x0500)
68 #define NIF_INFO 0x00000010
69 #endif
70 #if (_WIN32_IE >= 0x0600)
71 #define NIF_GUID 0x00000020
72 #endif
73 #if (_WIN32_IE >= 0x0500)
74 #define NIIF_NONE 0x00000000
75 #define NIIF_INFO 0x00000001
76 #define NIIF_WARNING 0x00000002
77 #define NIIF_ERROR 0x00000003
78 #endif
79 #if (_WIN32_IE >= 0x0600)
80 #define NIIF_ICON_MASK 0x0000000F
81 #define NIIF_NOSOUND 0x00000010
82 #endif
83 #if (_WIN32_IE >= 0x0500)
84 #define NIS_HIDDEN 0x00000001
85 #define NIS_SHAREDICON 0x00000002
86 #endif
87 #define SE_ERR_FNF 2
88 #define SE_ERR_PNF 3
89 #define SE_ERR_ACCESSDENIED 5
90 #define SE_ERR_OOM 8
91 #define SE_ERR_DLLNOTFOUND 32
92 #define SE_ERR_SHARE 26
93 #define SE_ERR_ASSOCINCOMPLETE 27
94 #define SE_ERR_DDETIMEOUT 28
95 #define SE_ERR_DDEFAIL 29
96 #define SE_ERR_DDEBUSY 30
97 #define SE_ERR_NOASSOC 31
98 #define FO_MOVE 1
99 #define FO_COPY 2
100 #define FO_DELETE 3
101 #define FO_RENAME 4
102 #define FOF_MULTIDESTFILES 1
103 #define FOF_CONFIRMMOUSE 2
104 #define FOF_SILENT 4
105 #define FOF_RENAMEONCOLLISION 8
106 #define FOF_NOCONFIRMATION 16
107 #define FOF_WANTMAPPINGHANDLE 32
108 #define FOF_ALLOWUNDO 64
109 #define FOF_FILESONLY 128
110 #define FOF_SIMPLEPROGRESS 256
111 #define FOF_NOCONFIRMMKDIR 512
112 #define FOF_NOERRORUI 1024
113 #define FOF_NOCOPYSECURITYATTRIBS 2048
114 #define PO_DELETE 19
115 #define PO_RENAME 20
116 #define PO_PORTCHANGE 32
117 #define PO_REN_PORT 52
118 #define SHGFI_ICON 256
119 #define SHGFI_DISPLAYNAME 512
120 #define SHGFI_TYPENAME 1024
121 #define SHGFI_ATTRIBUTES 2048
122 #define SHGFI_ICONLOCATION 4096
123 #define SHGFI_EXETYPE 8192
124 #define SHGFI_SYSICONINDEX 16384
125 #define SHGFI_LINKOVERLAY 32768
126 #define SHGFI_SELECTED 65536
127 #define SHGFI_ATTR_SPECIFIED 131072
128 #define SHGFI_LARGEICON 0
129 #define SHGFI_SMALLICON 1
130 #define SHGFI_OPENICON 2
131 #define SHGFI_SHELLICONSIZE 4
132 #define SHGFI_PIDL 8
133 #define SHGFI_USEFILEATTRIBUTES 16
134 #define SHERB_NOCONFIRMATION 1
135 #define SHERB_NOPROGRESSUI 2
136 #define SHERB_NOSOUND 4
137 #ifdef UNICODE
138 #define NOTIFYICONDATA_V2_SIZE 936
139 #define NOTIFYICONDATA_V1_SIZE 152
140 #else
141 #define NOTIFYICONDATA_V2_SIZE 488
142 #define NOTIFYICONDATA_V1_SIZE 88
143 #endif
145 typedef WORD FILEOP_FLAGS;
146 typedef WORD PRINTEROP_FLAGS;
147 #include <pshpack2.h>
148 typedef struct _AppBarData {
149 DWORD cbSize;
150 HWND hWnd;
151 UINT uCallbackMessage;
152 UINT uEdge;
153 RECT rc;
154 LPARAM lParam;
155 } APPBARDATA,*PAPPBARDATA;
156 DECLARE_HANDLE(HDROP);
158 typedef struct _NOTIFYICONDATAA {
159 DWORD cbSize;
160 HWND hWnd;
161 UINT uID;
162 UINT uFlags;
163 UINT uCallbackMessage;
164 HICON hIcon;
165 #if _WIN32_IE >= 0x0500
166 CHAR szTip[128];
167 DWORD dwState;
168 DWORD dwStateMask;
169 CHAR szInfo[256];
170 _ANONYMOUS_UNION union {
171 UINT uTimeout;
172 UINT uVersion;
173 } DUMMYUNIONNAME;
174 CHAR szInfoTitle[64];
175 DWORD dwInfoFlags;
176 #else
177 CHAR szTip[64];
178 #endif
179 #if _WIN32_IE >= 0x600
180 GUID guidItem;
181 #endif
182 #if _WIN32_WINNT >= 0x600
183 HICON hBalloonIcon;
184 #endif
185 } NOTIFYICONDATAA,*PNOTIFYICONDATAA;
187 typedef struct _NOTIFYICONDATAW {
188 DWORD cbSize;
189 HWND hWnd;
190 UINT uID;
191 UINT uFlags;
192 UINT uCallbackMessage;
193 HICON hIcon;
194 #if _WIN32_IE >= 0x0500
195 WCHAR szTip[128];
196 DWORD dwState;
197 DWORD dwStateMask;
198 WCHAR szInfo[256];
199 _ANONYMOUS_UNION union {
200 UINT uTimeout;
201 UINT uVersion;
202 } DUMMYUNIONNAME;
203 WCHAR szInfoTitle[64];
204 DWORD dwInfoFlags;
205 #else
206 WCHAR szTip[64];
207 #endif
208 #if _WIN32_IE >= 0x600
209 GUID guidItem;
210 #endif
211 #if _WIN32_WINNT >= 0x600
212 HICON hBalloonIcon;
213 #endif
214 } NOTIFYICONDATAW,*PNOTIFYICONDATAW;
216 #ifdef UNICODE
217 typedef struct _SHELLEXECUTEINFO {
218 DWORD cbSize;
219 ULONG fMask;
220 HWND hwnd;
221 LPCWSTR lpVerb;
222 LPCWSTR lpFile;
223 LPCWSTR lpParameters;
224 LPCWSTR lpDirectory;
225 int nShow;
226 HINSTANCE hInstApp;
227 PVOID lpIDList;
228 LPCWSTR lpClass;
229 HKEY hkeyClass;
230 DWORD dwHotKey;
231 HANDLE hIcon;
232 HANDLE hProcess;
233 } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
234 #else
235 typedef struct _SHELLEXECUTEINFO {
236 DWORD cbSize;
237 ULONG fMask;
238 HWND hwnd;
239 LPCSTR lpVerb;
240 LPCSTR lpFile;
241 LPCSTR lpParameters;
242 LPCSTR lpDirectory;
243 int nShow;
244 HINSTANCE hInstApp;
245 PVOID lpIDList;
246 LPCSTR lpClass;
247 HKEY hkeyClass;
248 DWORD dwHotKey;
249 HANDLE hIcon;
250 HANDLE hProcess;
251 } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
252 #endif
253 typedef struct _SHFILEOPSTRUCTA {
254 HWND hwnd;
255 UINT wFunc;
256 LPCSTR pFrom;
257 LPCSTR pTo;
258 FILEOP_FLAGS fFlags;
259 BOOL fAnyOperationsAborted;
260 PVOID hNameMappings;
261 LPCSTR lpszProgressTitle;
262 } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
263 typedef struct _SHFILEOPSTRUCTW {
264 HWND hwnd;
265 UINT wFunc;
266 LPCWSTR pFrom;
267 LPCWSTR pTo;
268 FILEOP_FLAGS fFlags;
269 BOOL fAnyOperationsAborted;
270 PVOID hNameMappings;
271 LPCWSTR lpszProgressTitle;
272 } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
273 typedef struct _SHFILEINFOA {
274 HICON hIcon;
275 int iIcon;
276 DWORD dwAttributes;
277 CHAR szDisplayName[MAX_PATH];
278 CHAR szTypeName[80];
279 } SHFILEINFOA;
280 typedef struct _SHFILEINFOW {
281 HICON hIcon;
282 int iIcon;
283 DWORD dwAttributes;
284 WCHAR szDisplayName[MAX_PATH];
285 WCHAR szTypeName[80];
286 } SHFILEINFOW;
287 typedef struct _SHQUERYRBINFO {
288 DWORD cbSize;
289 __int64 i64Size;
290 __int64 i64NumItems;
291 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
292 #include <poppack.h>
294 LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*);
295 void WINAPI DragAcceptFiles(HWND,BOOL);
296 void WINAPI DragFinish(HDROP);
297 UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT);
298 UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT);
299 BOOL WINAPI DragQueryPoint(HDROP,LPPOINT);
300 HICON WINAPI DuplicateIcon(HINSTANCE,HICON);
301 HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD);
302 HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD);
303 HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
304 HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
305 UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
306 UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
307 HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
308 HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
309 UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
310 BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
311 BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
312 int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
313 int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
314 #ifndef _WIN32_WCE
315 HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
316 HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
317 BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
318 BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW);
319 #else /* _WIN32_WCE */
320 BOOL WINAPI ShellExecuteEx(LPSHELLEXECUTEINFOW);
321 #endif /* _WIN32_WCE */
322 int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA);
323 int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW);
324 void WINAPI SHFreeNameMappings(HANDLE);
325 DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
326 #ifndef _WIN32_WCE
327 DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
328 #else
329 DWORD WINAPI SHGetFileInfo(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
330 #endif
331 HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
332 HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
333 HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
334 HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
336 #if (_WIN32_WCE >= 0x300)
337 BOOL WINAPI SHGetSpecialFolderPath(HWND,LPWSTR,int,BOOL);
338 #endif
340 #ifdef _WIN32_WCE
341 BOOL WINAPI SHGetShortcutTarget(LPCTSTR,LPTSTR,int);
342 DWORD WINAPI SHCreateShortcut(LPTSTR,LPTSTR);
343 #if (_WIN32_WCE >= 0x420)
344 DWORD WINAPI SHCreateShortcutEx(LPTSTR,LPTSTR,LPTSTR,LPDWORD);
345 #endif
346 HBITMAP WINAPI SHLoadDIBitmap(LPCTSTR);
347 #endif
349 #ifdef UNICODE
350 typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
351 typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
352 typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
353 typedef SHFILEINFOW SHFILEINFO;
354 #define DragQueryFile DragQueryFileW
355 #define ExtractAssociatedIcon ExtractAssociatedIconW
356 #define ExtractIcon ExtractIconW
357 #define ExtractIconEx ExtractIconExW
358 #define FindExecutable FindExecutableW
359 #define Shell_NotifyIcon Shell_NotifyIconW
360 #define ShellAbout ShellAboutW
361 #ifndef _WIN32_WCE
362 #define ShellExecute ShellExecuteW
363 #define ShellExecuteEx ShellExecuteExW
364 #endif /* _WIN32_WCE */
365 #define SHFileOperation SHFileOperationW
366 #ifndef _WIN32_WCE
367 #define SHGetFileInfo SHGetFileInfoW
368 #endif
369 #define SHQueryRecycleBin SHQueryRecycleBinW
370 #define SHEmptyRecycleBin SHEmptyRecycleBinW
372 #else
373 typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
374 typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
375 typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
376 typedef SHFILEINFOA SHFILEINFO;
377 #define DragQueryFile DragQueryFileA
378 #define ExtractAssociatedIcon ExtractAssociatedIconA
379 #define ExtractIcon ExtractIconA
380 #define ExtractIconEx ExtractIconExA
381 #define FindExecutable FindExecutableA
382 #define Shell_NotifyIcon Shell_NotifyIconA
383 #define ShellAbout ShellAboutA
384 #define ShellExecute ShellExecuteA
385 #define ShellExecuteEx ShellExecuteExA
386 #define SHFileOperation SHFileOperationA
387 #define SHGetFileInfo SHGetFileInfoA
388 #define SHQueryRecycleBin SHQueryRecycleBinA
389 #define SHEmptyRecycleBin SHEmptyRecycleBinA
390 #endif
391 #ifdef __cplusplus
393 #endif
394 #endif