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 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
38 #define ABM_QUERYPOS 2
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
53 #if (_WIN32_IE >= 0x0500)
54 #define NOTIFYICON_VERSION 3
55 #if (_WIN32_WINNT >= 0x600)
56 #define NOTIFYICON_VERSION_4 4
58 #define NIM_SETFOCUS 3
59 #define NIM_SETVERSION 4
60 #define NIN_POPUPOPEN WM_USER+6
61 #define NIN_POPUPCLOSE WM_USER+7
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
70 #if (_WIN32_IE >= 0x0600)
71 #define NIF_GUID 0x00000020
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
79 #if (_WIN32_IE >= 0x0600)
80 #define NIIF_ICON_MASK 0x0000000F
81 #define NIIF_NOSOUND 0x00000010
83 #if (_WIN32_IE >= 0x0500)
84 #define NIS_HIDDEN 0x00000001
85 #define NIS_SHAREDICON 0x00000002
89 #define SE_ERR_ACCESSDENIED 5
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
102 #define FOF_MULTIDESTFILES 1
103 #define FOF_CONFIRMMOUSE 2
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
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
133 #define SHGFI_USEFILEATTRIBUTES 16
134 #define SHERB_NOCONFIRMATION 1
135 #define SHERB_NOPROGRESSUI 2
136 #define SHERB_NOSOUND 4
138 #define NOTIFYICONDATA_V2_SIZE 936
139 #define NOTIFYICONDATA_V1_SIZE 152
141 #define NOTIFYICONDATA_V2_SIZE 488
142 #define NOTIFYICONDATA_V1_SIZE 88
145 typedef WORD FILEOP_FLAGS
;
146 typedef WORD PRINTEROP_FLAGS
;
147 #include <pshpack2.h>
148 typedef struct _AppBarData
{
151 UINT uCallbackMessage
;
155 } APPBARDATA
,*PAPPBARDATA
;
156 DECLARE_HANDLE(HDROP
);
158 typedef struct _NOTIFYICONDATAA
{
163 UINT uCallbackMessage
;
165 #if _WIN32_IE >= 0x0500
170 _ANONYMOUS_UNION
union {
174 CHAR szInfoTitle
[64];
179 #if _WIN32_IE >= 0x600
182 #if _WIN32_WINNT >= 0x600
185 } NOTIFYICONDATAA
,*PNOTIFYICONDATAA
;
187 typedef struct _NOTIFYICONDATAW
{
192 UINT uCallbackMessage
;
194 #if _WIN32_IE >= 0x0500
199 _ANONYMOUS_UNION
union {
203 WCHAR szInfoTitle
[64];
208 #if _WIN32_IE >= 0x600
211 #if _WIN32_WINNT >= 0x600
214 } NOTIFYICONDATAW
,*PNOTIFYICONDATAW
;
217 typedef struct _SHELLEXECUTEINFO
{
223 LPCWSTR lpParameters
;
233 } SHELLEXECUTEINFOW
,*LPSHELLEXECUTEINFOW
;
235 typedef struct _SHELLEXECUTEINFO
{
251 } SHELLEXECUTEINFOA
,*LPSHELLEXECUTEINFOA
;
253 typedef struct _SHFILEOPSTRUCTA
{
259 BOOL fAnyOperationsAborted
;
261 LPCSTR lpszProgressTitle
;
262 } SHFILEOPSTRUCTA
,*LPSHFILEOPSTRUCTA
;
263 typedef struct _SHFILEOPSTRUCTW
{
269 BOOL fAnyOperationsAborted
;
271 LPCWSTR lpszProgressTitle
;
272 } SHFILEOPSTRUCTW
,*LPSHFILEOPSTRUCTW
;
273 typedef struct _SHFILEINFOA
{
277 CHAR szDisplayName
[MAX_PATH
];
280 typedef struct _SHFILEINFOW
{
284 WCHAR szDisplayName
[MAX_PATH
];
285 WCHAR szTypeName
[80];
287 typedef struct _SHQUERYRBINFO
{
291 } SHQUERYRBINFO
, *LPSHQUERYRBINFO
;
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
);
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
);
327 DWORD WINAPI
SHGetFileInfoW(LPCWSTR
,DWORD
,SHFILEINFOW
*,UINT
,UINT
);
329 DWORD WINAPI
SHGetFileInfo(LPCWSTR
,DWORD
,SHFILEINFOW
*,UINT
,UINT
);
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
);
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
);
346 HBITMAP WINAPI
SHLoadDIBitmap(LPCTSTR
);
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
362 #define ShellExecute ShellExecuteW
363 #define ShellExecuteEx ShellExecuteExW
364 #endif /* _WIN32_WCE */
365 #define SHFileOperation SHFileOperationW
367 #define SHGetFileInfo SHGetFileInfoW
369 #define SHQueryRecycleBin SHQueryRecycleBinW
370 #define SHEmptyRecycleBin SHEmptyRecycleBinW
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