Start anew
[msysgit.git] / mingw / include / shellapi.h
blobb7d524581007f168f9fde29dcbfa55cd7f01c52a
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 #define NIM_SETFOCUS 3
56 #define NIM_SETVERSION 4
57 #endif
58 #define NIF_MESSAGE 0x00000001
59 #define NIF_ICON 0x00000002
60 #define NIF_TIP 0x00000004
61 #define NIF_STATE 0x00000008
62 #if (_WIN32_IE >= 0x0500)
63 #define NIF_INFO 0x00000010
64 #endif
65 #if (_WIN32_IE >= 0x0600)
66 #define NIF_GUID 0x00000020
67 #endif
68 #if (_WIN32_IE >= 0x0500)
69 #define NIIF_NONE 0x00000000
70 #define NIIF_INFO 0x00000001
71 #define NIIF_WARNING 0x00000002
72 #define NIIF_ERROR 0x00000003
73 #endif
74 #if (_WIN32_IE >= 0x0600)
75 #define NIIF_ICON_MASK 0x0000000F
76 #define NIIF_NOSOUND 0x00000010
77 #endif
78 #if (_WIN32_IE >= 0x0500)
79 #define NIS_HIDDEN 0x00000001
80 #define NIS_SHAREDICON 0x00000002
81 #endif
82 #define SE_ERR_FNF 2
83 #define SE_ERR_PNF 3
84 #define SE_ERR_ACCESSDENIED 5
85 #define SE_ERR_OOM 8
86 #define SE_ERR_DLLNOTFOUND 32
87 #define SE_ERR_SHARE 26
88 #define SE_ERR_ASSOCINCOMPLETE 27
89 #define SE_ERR_DDETIMEOUT 28
90 #define SE_ERR_DDEFAIL 29
91 #define SE_ERR_DDEBUSY 30
92 #define SE_ERR_NOASSOC 31
93 #define FO_MOVE 1
94 #define FO_COPY 2
95 #define FO_DELETE 3
96 #define FO_RENAME 4
97 #define FOF_MULTIDESTFILES 1
98 #define FOF_CONFIRMMOUSE 2
99 #define FOF_SILENT 4
100 #define FOF_RENAMEONCOLLISION 8
101 #define FOF_NOCONFIRMATION 16
102 #define FOF_WANTMAPPINGHANDLE 32
103 #define FOF_ALLOWUNDO 64
104 #define FOF_FILESONLY 128
105 #define FOF_SIMPLEPROGRESS 256
106 #define FOF_NOCONFIRMMKDIR 512
107 #define FOF_NOERRORUI 1024
108 #define FOF_NOCOPYSECURITYATTRIBS 2048
109 #define PO_DELETE 19
110 #define PO_RENAME 20
111 #define PO_PORTCHANGE 32
112 #define PO_REN_PORT 52
113 #define SHGFI_ICON 256
114 #define SHGFI_DISPLAYNAME 512
115 #define SHGFI_TYPENAME 1024
116 #define SHGFI_ATTRIBUTES 2048
117 #define SHGFI_ICONLOCATION 4096
118 #define SHGFI_EXETYPE 8192
119 #define SHGFI_SYSICONINDEX 16384
120 #define SHGFI_LINKOVERLAY 32768
121 #define SHGFI_SELECTED 65536
122 #define SHGFI_ATTR_SPECIFIED 131072
123 #define SHGFI_LARGEICON 0
124 #define SHGFI_SMALLICON 1
125 #define SHGFI_OPENICON 2
126 #define SHGFI_SHELLICONSIZE 4
127 #define SHGFI_PIDL 8
128 #define SHGFI_USEFILEATTRIBUTES 16
129 #define SHERB_NOCONFIRMATION 1
130 #define SHERB_NOPROGRESSUI 2
131 #define SHERB_NOSOUND 4
132 #ifdef UNICODE
133 #define NOTIFYICONDATA_V2_SIZE 936
134 #define NOTIFYICONDATA_V1_SIZE 152
135 #else
136 #define NOTIFYICONDATA_V2_SIZE 488
137 #define NOTIFYICONDATA_V1_SIZE 88
138 #endif
140 typedef WORD FILEOP_FLAGS;
141 typedef WORD PRINTEROP_FLAGS;
142 #include <pshpack2.h>
143 typedef struct _AppBarData {
144 DWORD cbSize;
145 HWND hWnd;
146 UINT uCallbackMessage;
147 UINT uEdge;
148 RECT rc;
149 LPARAM lParam;
150 } APPBARDATA,*PAPPBARDATA;
151 DECLARE_HANDLE(HDROP);
153 typedef struct _NOTIFYICONDATAA {
154 DWORD cbSize;
155 HWND hWnd;
156 UINT uID;
157 UINT uFlags;
158 UINT uCallbackMessage;
159 HICON hIcon;
160 #if _WIN32_IE >= 0x0500
161 CHAR szTip[128];
162 DWORD dwState;
163 DWORD dwStateMask;
164 CHAR szInfo[256];
165 _ANONYMOUS_UNION union {
166 UINT uTimeout;
167 UINT uVersion;
168 } DUMMYUNIONNAME;
169 CHAR szInfoTitle[64];
170 DWORD dwInfoFlags;
171 #else
172 CHAR szTip[64];
173 #endif
174 #if _WIN32_IE >= 0x600
175 GUID guidItem;
176 #endif
177 } NOTIFYICONDATAA,*PNOTIFYICONDATAA;
179 typedef struct _NOTIFYICONDATAW {
180 DWORD cbSize;
181 HWND hWnd;
182 UINT uID;
183 UINT uFlags;
184 UINT uCallbackMessage;
185 HICON hIcon;
186 #if _WIN32_IE >= 0x0500
187 WCHAR szTip[128];
188 DWORD dwState;
189 DWORD dwStateMask;
190 WCHAR szInfo[256];
191 _ANONYMOUS_UNION union {
192 UINT uTimeout;
193 UINT uVersion;
194 } DUMMYUNIONNAME;
195 WCHAR szInfoTitle[64];
196 DWORD dwInfoFlags;
197 #else
198 WCHAR szTip[64];
199 #endif
200 #if _WIN32_IE >= 0x600
201 GUID guidItem;
202 #endif
203 } NOTIFYICONDATAW,*PNOTIFYICONDATAW;
205 typedef struct _SHELLEXECUTEINFOA {
206 DWORD cbSize;
207 ULONG fMask;
208 HWND hwnd;
209 LPCSTR lpVerb;
210 LPCSTR lpFile;
211 LPCSTR lpParameters;
212 LPCSTR lpDirectory;
213 int nShow;
214 HINSTANCE hInstApp;
215 PVOID lpIDList;
216 LPCSTR lpClass;
217 HKEY hkeyClass;
218 DWORD dwHotKey;
219 HANDLE hIcon;
220 HANDLE hProcess;
221 } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
222 typedef struct _SHELLEXECUTEINFOW {
223 DWORD cbSize;
224 ULONG fMask;
225 HWND hwnd;
226 LPCWSTR lpVerb;
227 LPCWSTR lpFile;
228 LPCWSTR lpParameters;
229 LPCWSTR lpDirectory;
230 int nShow;
231 HINSTANCE hInstApp;
232 PVOID lpIDList;
233 LPCWSTR lpClass;
234 HKEY hkeyClass;
235 DWORD dwHotKey;
236 HANDLE hIcon;
237 HANDLE hProcess;
238 } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
239 typedef struct _SHFILEOPSTRUCTA {
240 HWND hwnd;
241 UINT wFunc;
242 LPCSTR pFrom;
243 LPCSTR pTo;
244 FILEOP_FLAGS fFlags;
245 BOOL fAnyOperationsAborted;
246 PVOID hNameMappings;
247 LPCSTR lpszProgressTitle;
248 } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
249 typedef struct _SHFILEOPSTRUCTW {
250 HWND hwnd;
251 UINT wFunc;
252 LPCWSTR pFrom;
253 LPCWSTR pTo;
254 FILEOP_FLAGS fFlags;
255 BOOL fAnyOperationsAborted;
256 PVOID hNameMappings;
257 LPCWSTR lpszProgressTitle;
258 } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
259 typedef struct _SHFILEINFOA {
260 HICON hIcon;
261 int iIcon;
262 DWORD dwAttributes;
263 CHAR szDisplayName[MAX_PATH];
264 CHAR szTypeName[80];
265 } SHFILEINFOA;
266 typedef struct _SHFILEINFOW {
267 HICON hIcon;
268 int iIcon;
269 DWORD dwAttributes;
270 WCHAR szDisplayName[MAX_PATH];
271 WCHAR szTypeName[80];
272 } SHFILEINFOW;
273 typedef struct _SHQUERYRBINFO {
274 DWORD cbSize;
275 __int64 i64Size;
276 __int64 i64NumItems;
277 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
278 #include <poppack.h>
280 LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*);
281 void WINAPI DragAcceptFiles(HWND,BOOL);
282 void WINAPI DragFinish(HDROP);
283 UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT);
284 UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT);
285 BOOL WINAPI DragQueryPoint(HDROP,LPPOINT);
286 HICON WINAPI DuplicateIcon(HINSTANCE,HICON);
287 HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD);
288 HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD);
289 HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
290 HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
291 UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
292 UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
293 HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
294 HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
295 UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
296 BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
297 BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
298 int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
299 int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
300 HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
301 HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
302 BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
303 BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW);
304 int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA);
305 int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW);
306 void WINAPI SHFreeNameMappings(HANDLE);
307 DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
308 DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
309 HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
310 HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
311 HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
312 HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
314 #ifdef UNICODE
315 typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
316 typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
317 typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
318 typedef SHFILEINFOW SHFILEINFO;
319 #define DragQueryFile DragQueryFileW
320 #define ExtractAssociatedIcon ExtractAssociatedIconW
321 #define ExtractIcon ExtractIconW
322 #define ExtractIconEx ExtractIconExW
323 #define FindExecutable FindExecutableW
324 #define Shell_NotifyIcon Shell_NotifyIconW
325 #define ShellAbout ShellAboutW
326 #define ShellExecute ShellExecuteW
327 #define ShellExecuteEx ShellExecuteExW
328 #define SHFileOperation SHFileOperationW
329 #define SHGetFileInfo SHGetFileInfoW
330 #define SHQueryRecycleBin SHQueryRecycleBinW
331 #define SHEmptyRecycleBin SHEmptyRecycleBinW
333 #else
334 typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
335 typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
336 typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
337 typedef SHFILEINFOA SHFILEINFO;
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
354 #endif
355 #endif