OSDN Git Service

* include/*: Add combined winsup/mingw and winsup/w32api include files.
[mingw/mingw-org-wsl.git] / include / 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         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
144
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);
157
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;
186
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;
215
216 typedef struct _SHELLEXECUTEINFOA {
217         DWORD cbSize;
218         ULONG fMask;
219         HWND hwnd;
220         LPCSTR lpVerb;
221         LPCSTR lpFile;
222         LPCSTR lpParameters;
223         LPCSTR lpDirectory;
224         int nShow;
225         HINSTANCE hInstApp;
226         PVOID lpIDList;
227         LPCSTR lpClass;
228         HKEY hkeyClass;
229         DWORD dwHotKey;
230         HANDLE hIcon;
231         HANDLE hProcess;
232 } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
233 typedef struct _SHELLEXECUTEINFOW {
234         DWORD cbSize;
235         ULONG fMask;
236         HWND hwnd;
237         LPCWSTR lpVerb;
238         LPCWSTR lpFile;
239         LPCWSTR lpParameters;
240         LPCWSTR lpDirectory;
241         int nShow;
242         HINSTANCE hInstApp;
243         PVOID lpIDList;
244         LPCWSTR lpClass;
245         HKEY hkeyClass;
246         DWORD dwHotKey;
247         HANDLE hIcon;
248         HANDLE hProcess;
249 } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
250 typedef struct _SHFILEOPSTRUCTA {
251         HWND hwnd;
252         UINT wFunc;
253         LPCSTR pFrom;
254         LPCSTR pTo;
255         FILEOP_FLAGS fFlags;
256         BOOL fAnyOperationsAborted;
257         PVOID hNameMappings;
258         LPCSTR lpszProgressTitle;
259 } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
260 typedef struct _SHFILEOPSTRUCTW {
261         HWND hwnd;
262         UINT wFunc;
263         LPCWSTR pFrom;
264         LPCWSTR pTo;
265         FILEOP_FLAGS fFlags;
266         BOOL fAnyOperationsAborted;
267         PVOID hNameMappings;
268         LPCWSTR lpszProgressTitle;
269 } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
270 typedef struct _SHFILEINFOA {
271         HICON hIcon;
272         int iIcon;
273         DWORD dwAttributes;
274         CHAR szDisplayName[MAX_PATH];
275         CHAR szTypeName[80];
276 } SHFILEINFOA;
277 typedef struct _SHFILEINFOW {
278         HICON hIcon;
279         int iIcon;
280         DWORD dwAttributes;
281         WCHAR szDisplayName[MAX_PATH];
282         WCHAR szTypeName[80];
283 } SHFILEINFOW;
284 typedef struct _SHQUERYRBINFO {
285         DWORD   cbSize;
286         __int64 i64Size;
287         __int64 i64NumItems;
288 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
289 #include <poppack.h>
290
291 LPWSTR * WINAPI CommandLineToArgvW(LPCWSTR,int*);
292 void WINAPI DragAcceptFiles(HWND,BOOL);
293 void WINAPI DragFinish(HDROP);
294 UINT WINAPI DragQueryFileA(HDROP,UINT,LPSTR,UINT);
295 UINT WINAPI DragQueryFileW(HDROP,UINT,LPWSTR,UINT);
296 BOOL WINAPI DragQueryPoint(HDROP,LPPOINT);
297 HICON WINAPI DuplicateIcon(HINSTANCE,HICON);
298 HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPCSTR,PWORD);
299 HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPCWSTR,PWORD);
300 HICON WINAPI ExtractIconA(HINSTANCE,LPCSTR,UINT);
301 HICON WINAPI ExtractIconW(HINSTANCE,LPCWSTR,UINT);
302 UINT WINAPI ExtractIconExA(LPCSTR,int,HICON*,HICON*,UINT);
303 UINT WINAPI ExtractIconExW(LPCWSTR,int,HICON*,HICON*,UINT);
304 HINSTANCE WINAPI FindExecutableA(LPCSTR,LPCSTR,LPSTR);
305 HINSTANCE WINAPI FindExecutableW(LPCWSTR,LPCWSTR,LPWSTR);
306 UINT WINAPI SHAppBarMessage(DWORD,PAPPBARDATA);
307 BOOL WINAPI Shell_NotifyIconA(DWORD,PNOTIFYICONDATAA);
308 BOOL WINAPI Shell_NotifyIconW(DWORD,PNOTIFYICONDATAW);
309 int WINAPI ShellAboutA(HWND,LPCSTR,LPCSTR,HICON);
310 int WINAPI ShellAboutW(HWND,LPCWSTR,LPCWSTR,HICON);
311 HINSTANCE WINAPI ShellExecuteA(HWND,LPCSTR,LPCSTR,LPCSTR,LPCSTR,INT);
312 HINSTANCE WINAPI ShellExecuteW(HWND,LPCWSTR,LPCWSTR,LPCWSTR,LPCWSTR,INT);
313 BOOL WINAPI ShellExecuteExA(LPSHELLEXECUTEINFOA);
314 BOOL WINAPI ShellExecuteExW(LPSHELLEXECUTEINFOW);
315 int WINAPI SHFileOperationA(LPSHFILEOPSTRUCTA);
316 int WINAPI SHFileOperationW(LPSHFILEOPSTRUCTW);
317 void WINAPI SHFreeNameMappings(HANDLE);
318 DWORD WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
319 DWORD WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
320 HRESULT WINAPI SHQueryRecycleBinA(LPCSTR, LPSHQUERYRBINFO);
321 HRESULT WINAPI SHQueryRecycleBinW(LPCWSTR, LPSHQUERYRBINFO);
322 HRESULT WINAPI SHEmptyRecycleBinA(HWND,LPCSTR,DWORD);
323 HRESULT WINAPI SHEmptyRecycleBinW(HWND,LPCWSTR,DWORD);
324
325 #if (_WIN32_WINNT >= 0x600)
326 #define SHIL_LARGE 0x0
327 #define SHIL_SMALL 0x1
328 #define SHIL_EXTRALARGE 0x2
329 #define SHIL_SYSSMALL 0x3
330 #define SHIL_JUMBO 0x4
331 #define SHIL_LAST SHIL_JUMBO
332 HRESULT WINAPI SHGetImageList(int,REFIID,void**);
333 #endif
334
335 #ifdef UNICODE
336 typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
337 typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
338 typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
339 typedef SHFILEINFOW SHFILEINFO;
340 #define DragQueryFile DragQueryFileW
341 #define ExtractAssociatedIcon ExtractAssociatedIconW
342 #define ExtractIcon ExtractIconW
343 #define ExtractIconEx ExtractIconExW
344 #define FindExecutable FindExecutableW
345 #define Shell_NotifyIcon Shell_NotifyIconW
346 #define ShellAbout ShellAboutW
347 #define ShellExecute ShellExecuteW
348 #define ShellExecuteEx ShellExecuteExW
349 #define SHFileOperation SHFileOperationW
350 #define SHGetFileInfo SHGetFileInfoW
351 #define SHQueryRecycleBin SHQueryRecycleBinW
352 #define SHEmptyRecycleBin SHEmptyRecycleBinW
353
354 #else
355 typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
356 typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
357 typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
358 typedef SHFILEINFOA SHFILEINFO;
359 #define DragQueryFile DragQueryFileA
360 #define ExtractAssociatedIcon ExtractAssociatedIconA
361 #define ExtractIcon ExtractIconA
362 #define ExtractIconEx ExtractIconExA
363 #define FindExecutable FindExecutableA
364 #define Shell_NotifyIcon Shell_NotifyIconA
365 #define ShellAbout ShellAboutA
366 #define ShellExecute ShellExecuteA
367 #define ShellExecuteEx ShellExecuteExA
368 #define SHFileOperation SHFileOperationA
369 #define SHGetFileInfo SHGetFileInfoA
370 #define SHQueryRecycleBin SHQueryRecycleBinA
371 #define SHEmptyRecycleBin SHEmptyRecycleBinA
372 #endif
373 #ifdef __cplusplus
374 }
375 #endif
376 #endif