4 #pragma GCC system_header
10 #define WINSHELLAPI DECLSPEC_IMPORT
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_NOASYNC 0x00000100
26 #define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
27 #define SEE_MASK_DOENVSUBST 0x200
28 #define SEE_MASK_FLAG_NO_UI 0x400
29 #define SEE_MASK_NO_CONSOLE 0x8000
30 #define SEE_MASK_UNICODE 0x10000
31 #define SEE_MASK_ASYNCOK 0x100000
32 #define SEE_MASK_HMONITOR 0x200000
33 #define SEE_MASK_NOZONECHECKS 0x00800000
36 #define ABM_QUERYPOS 2
38 #define ABM_GETSTATE 4
39 #define ABM_GETTASKBARPOS 5
40 #define ABM_ACTIVATE 6
41 #define ABM_GETAUTOHIDEBAR 7
42 #define ABM_SETAUTOHIDEBAR 8
43 #define ABM_WINDOWPOSCHANGED 9
44 #define ABN_STATECHANGE 0
45 #define ABN_POSCHANGED 1
46 #define ABN_FULLSCREENAPP 2
47 #define ABN_WINDOWARRANGE 3
51 #if _WIN32_IE >= 0x0500
52 #define NOTIFYICON_VERSION 3
53 #define NIM_SETFOCUS 3
54 #define NIM_SETVERSION 4
60 #if _WIN32_IE >= 0x0500
63 #define NIS_SHAREDICON 2
66 #define NIIF_WARNING 2
68 #if _WIN32_IE >= 0x0600
69 #define NIIF_ICON_MASK 0xf
70 #define NIIF_NOSOUND 0x10
71 #endif /* _WIN32_IE >= 0x0600 */
72 #endif /* _WIN32_IE >= 0x0500 */
75 #define SE_ERR_ACCESSDENIED 5
77 #define SE_ERR_DLLNOTFOUND 32
78 #define SE_ERR_SHARE 26
79 #define SE_ERR_ASSOCINCOMPLETE 27
80 #define SE_ERR_DDETIMEOUT 28
81 #define SE_ERR_DDEFAIL 29
82 #define SE_ERR_DDEBUSY 30
83 #define SE_ERR_NOASSOC 31
89 #define FOF_MULTIDESTFILES 0x0001
90 #define FOF_CONFIRMMOUSE 0x0002
91 #define FOF_SILENT 0x0004
92 #define FOF_RENAMEONCOLLISION 0x0008
93 #define FOF_NOCONFIRMATION 0x0010
94 #define FOF_WANTMAPPINGHANDLE 0x0020
95 #define FOF_ALLOWUNDO 0x0040
96 #define FOF_FILESONLY 0x0080
97 #define FOF_SIMPLEPROGRESS 0x0100
98 #define FOF_NOCONFIRMMKDIR 0x0200
99 #define FOF_NOERRORUI 0x0400
100 #define FOF_NOCOPYSECURITYATTRIBS 0x0800
101 #define FOF_NORECURSION 0x1000 /* don't do recursion into directories */
102 #define FOF_NO_CONNECTED_ELEMENTS 0x2000 /* don't do connected files */
103 #define FOF_WANTNUKEWARNING 0x4000 /* during delete operation, warn if delete instead
104 of recycling (even if FOF_NOCONFIRMATION) */
105 #define FOF_NORECURSEREPARSE 0x8000 /* don't do recursion into reparse points */
109 #define PO_PORTCHANGE 32
110 #define PO_REN_PORT 52
111 #define SHGFI_ADDOVERLAYS 32
112 #define SHGFI_OVERLAYINDEX 64
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
128 #define SHGFI_USEFILEATTRIBUTES 16
129 #define SHERB_NOCONFIRMATION 1
130 #define SHERB_NOPROGRESSUI 2
131 #define SHERB_NOSOUND 4
133 typedef WORD FILEOP_FLAGS
;
134 typedef WORD PRINTEROP_FLAGS
;
135 #include <pshpack1.h>
136 typedef struct _AppBarData
{
139 UINT uCallbackMessage
;
143 } APPBARDATA
,*PAPPBARDATA
;
144 DECLARE_HANDLE(HDROP
);
146 typedef struct _NOTIFYICONDATAA
{
151 UINT uCallbackMessage
;
153 #if _WIN32_IE >= 0x0500
158 _ANONYMOUS_UNION
union {
162 CHAR szInfoTitle
[64];
167 #if _WIN32_IE >= 0x600
170 } NOTIFYICONDATAA
,*PNOTIFYICONDATAA
;
172 typedef struct _NOTIFYICONDATAW
{
177 UINT uCallbackMessage
;
179 #if _WIN32_IE >= 0x0500
184 _ANONYMOUS_UNION
union {
188 WCHAR szInfoTitle
[64];
193 #if _WIN32_IE >= 0x600
196 } NOTIFYICONDATAW
,*PNOTIFYICONDATAW
;
198 #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
199 #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
200 #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
201 #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
204 typedef struct _DRAGINFOA
{
210 } DRAGINFOA
,*LPDRAGINFOA
;
211 typedef struct _DRAGINFOW
{
217 } DRAGINFOW
,*LPDRAGINFOW
;
220 typedef struct _SHELLEXECUTEINFOA
{
236 } SHELLEXECUTEINFOA
,*LPSHELLEXECUTEINFOA
;
237 typedef struct _SHELLEXECUTEINFOW
{
243 LPCWSTR lpParameters
;
253 } SHELLEXECUTEINFOW
,*LPSHELLEXECUTEINFOW
;
254 typedef struct _SHFILEOPSTRUCTA
{
260 BOOL fAnyOperationsAborted
;
262 LPCSTR lpszProgressTitle
;
263 } SHFILEOPSTRUCTA
,*LPSHFILEOPSTRUCTA
;
264 typedef struct _SHFILEOPSTRUCTW
{
270 BOOL fAnyOperationsAborted
;
272 LPCWSTR lpszProgressTitle
;
273 } SHFILEOPSTRUCTW
,*LPSHFILEOPSTRUCTW
;
274 typedef struct _SHFILEINFOA
{
278 CHAR szDisplayName
[MAX_PATH
];
281 typedef struct _SHFILEINFOW
{
285 WCHAR szDisplayName
[MAX_PATH
];
286 WCHAR szTypeName
[80];
288 typedef struct _SHQUERYRBINFO
{
292 } SHQUERYRBINFO
, *LPSHQUERYRBINFO
;
293 typedef struct _SHNAMEMAPPINGA
{
298 } SHNAMEMAPPINGA
, *LPSHNAMEMAPPINGA
;
299 typedef struct _SHNAMEMAPPINGW
{
304 } SHNAMEMAPPINGW
, *LPSHNAMEMAPPINGW
;
307 #define SHERB_NOCONFIRMATION 0x1
308 #define SHERB_NOPROGRESSUI 0x2
309 #define SHERB_NOSOUND 0x4
311 LPWSTR
* WINAPI
CommandLineToArgvW(LPCWSTR
,int*);
312 void WINAPI
DragAcceptFiles(HWND
,BOOL
);
313 void WINAPI
DragFinish(HDROP
);
314 UINT WINAPI
DragQueryFileA(HDROP
,UINT
,LPSTR
,UINT
);
315 UINT WINAPI
DragQueryFileW(HDROP
,UINT
,LPWSTR
,UINT
);
316 BOOL WINAPI
DragQueryPoint(HDROP
,LPPOINT
);
317 HICON WINAPI
ExtractAssociatedIconA(HINSTANCE
,LPSTR
,PWORD
);
318 HICON WINAPI
ExtractAssociatedIconW(HINSTANCE
,LPWSTR
,PWORD
);
319 HICON WINAPI
ExtractIconA(HINSTANCE
,LPCSTR
,UINT
);
320 HICON WINAPI
ExtractIconW(HINSTANCE
,LPCWSTR
,UINT
);
321 UINT WINAPI
ExtractIconExA(LPCSTR
,int,HICON
*,HICON
*,UINT
);
322 UINT WINAPI
ExtractIconExW(LPCWSTR
,int,HICON
*,HICON
*,UINT
);
323 HINSTANCE WINAPI
FindExecutableA(LPCSTR
,LPCSTR
,LPSTR
);
324 HINSTANCE WINAPI
FindExecutableW(LPCWSTR
,LPCWSTR
,LPWSTR
);
325 UINT_PTR WINAPI
SHAppBarMessage(DWORD
,PAPPBARDATA
);
326 BOOL WINAPI
Shell_NotifyIconA(DWORD
,PNOTIFYICONDATAA
);
327 BOOL WINAPI
Shell_NotifyIconW(DWORD
,PNOTIFYICONDATAW
);
328 int WINAPI
ShellAboutA(HWND
,LPCSTR
,LPCSTR
,HICON
);
329 int WINAPI
ShellAboutW(HWND
,LPCWSTR
,LPCWSTR
,HICON
);
330 HINSTANCE WINAPI
ShellExecuteA(HWND
,LPCSTR
,LPCSTR
,LPCSTR
,LPCSTR
,INT
);
331 HINSTANCE WINAPI
ShellExecuteW(HWND
,LPCWSTR
,LPCWSTR
,LPCWSTR
,LPCWSTR
,INT
);
332 BOOL WINAPI
ShellExecuteExA(LPSHELLEXECUTEINFOA
);
333 BOOL WINAPI
ShellExecuteExW(LPSHELLEXECUTEINFOW
);
334 int WINAPI
SHFileOperationA(LPSHFILEOPSTRUCTA
);
335 int WINAPI
SHFileOperationW(LPSHFILEOPSTRUCTW
);
336 void WINAPI
SHFreeNameMappings(HANDLE
);
337 DWORD WINAPI
SHGetFileInfoA(LPCSTR
,DWORD
,SHFILEINFOA
*,UINT
,UINT
);
338 DWORD WINAPI
SHGetFileInfoW(LPCWSTR
,DWORD
,SHFILEINFOW
*,UINT
,UINT
);
339 BOOL WINAPI
SHGetNewLinkInfoA(LPCSTR
,LPCSTR
,LPSTR
,BOOL
*,UINT
);
340 BOOL WINAPI
SHGetNewLinkInfoW(LPCWSTR
,LPCWSTR
,LPWSTR
,BOOL
*,UINT
);
341 HRESULT WINAPI
SHQueryRecycleBinA(LPCSTR
, LPSHQUERYRBINFO
);
342 HRESULT WINAPI
SHQueryRecycleBinW(LPCWSTR
, LPSHQUERYRBINFO
);
343 HRESULT WINAPI
SHEmptyRecycleBinA(HWND
,LPCSTR
,DWORD
);
344 HRESULT WINAPI
SHEmptyRecycleBinW(HWND
,LPCWSTR
,DWORD
);
347 #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
348 #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
349 typedef NOTIFYICONDATAW NOTIFYICONDATA
,*PNOTIFYICONDATA
;
350 typedef DRAGINFOW DRAGINFO
,*LPDRAGINFO
;
351 typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO
,*LPSHELLEXECUTEINFO
;
352 typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT
,*LPSHFILEOPSTRUCT
;
353 typedef SHFILEINFOW SHFILEINFO
;
354 typedef SHNAMEMAPPINGW SHNAMEMAPPING
;
355 typedef LPSHNAMEMAPPINGW LPSHNAMEMAPPING
;
356 #define DragQueryFile DragQueryFileW
357 #define ExtractAssociatedIcon ExtractAssociatedIconW
358 #define ExtractIcon ExtractIconW
359 #define ExtractIconEx ExtractIconExW
360 #define FindExecutable FindExecutableW
361 #define Shell_NotifyIcon Shell_NotifyIconW
362 #define ShellAbout ShellAboutW
363 #define ShellExecute ShellExecuteW
364 #define ShellExecuteEx ShellExecuteExW
365 #define SHFileOperation SHFileOperationW
366 #define SHGetFileInfo SHGetFileInfoW
367 #define SHGetNewLinkInfo SHGetNewLinkInfoW
368 #define SHQueryRecycleBin SHQueryRecycleBinW
369 #define SHEmptyRecycleBin SHEmptyRecycleBinW
372 #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
373 #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
374 typedef NOTIFYICONDATAA NOTIFYICONDATA
,*PNOTIFYICONDATA
;
375 typedef DRAGINFOA DRAGINFO
,*LPDRAGINFO
;
376 typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO
,*LPSHELLEXECUTEINFO
;
377 typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT
,*LPSHFILEOPSTRUCT
;
378 typedef SHFILEINFOA SHFILEINFO
;
379 typedef SHNAMEMAPPINGA SHNAMEMAPPING
;
380 typedef LPSHNAMEMAPPINGA LPSHNAMEMAPPING
;
381 #define DragQueryFile DragQueryFileA
382 #define ExtractAssociatedIcon ExtractAssociatedIconA
383 #define ExtractIcon ExtractIconA
384 #define ExtractIconEx ExtractIconExA
385 #define FindExecutable FindExecutableA
386 #define Shell_NotifyIcon Shell_NotifyIconA
387 #define ShellAbout ShellAboutA
388 #define ShellExecute ShellExecuteA
389 #define ShellExecuteEx ShellExecuteExA
390 #define SHFileOperation SHFileOperationA
391 #define SHGetFileInfo SHGetFileInfoA
392 #define SHGetNewLinkInfo SHGetNewLinkInfoA
393 #define SHQueryRecycleBin SHQueryRecycleBinA
394 #define SHEmptyRecycleBin SHEmptyRecycleBinA