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