9 #pragma warning(disable:4201)
11 #define WINSHELLAPI DECLSPEC_IMPORT
16 #define ABS_AUTOHIDE 1
17 #define ABS_ALWAYSONTOP 2
18 #define SEE_MASK_CLASSNAME 1
19 #define SEE_MASK_CLASSKEY 3
20 #define SEE_MASK_IDLIST 4
21 #define SEE_MASK_INVOKEIDLIST 12
22 #define SEE_MASK_ICON 0x10
23 #define SEE_MASK_HOTKEY 0x20
24 #define SEE_MASK_NOCLOSEPROCESS 0x40
25 #define SEE_MASK_CONNECTNETDRV 0x80
26 #define SEE_MASK_NOASYNC 0x00000100
27 #define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
28 #define SEE_MASK_DOENVSUBST 0x200
29 #define SEE_MASK_FLAG_NO_UI 0x400
30 #define SEE_MASK_NO_CONSOLE 0x8000
31 #define SEE_MASK_UNICODE 0x10000
32 #define SEE_MASK_ASYNCOK 0x100000
33 #define SEE_MASK_HMONITOR 0x200000
34 #define SEE_MASK_NOZONECHECKS 0x00800000
37 #define ABM_QUERYPOS 2
39 #define ABM_GETSTATE 4
40 #define ABM_GETTASKBARPOS 5
41 #define ABM_ACTIVATE 6
42 #define ABM_GETAUTOHIDEBAR 7
43 #define ABM_SETAUTOHIDEBAR 8
44 #define ABM_WINDOWPOSCHANGED 9
45 #define ABN_STATECHANGE 0
46 #define ABN_POSCHANGED 1
47 #define ABN_FULLSCREENAPP 2
48 #define ABN_WINDOWARRANGE 3
52 #if _WIN32_IE >= 0x0500
53 #define NOTIFYICON_VERSION 3
54 #define NIM_SETFOCUS 3
55 #define NIM_SETVERSION 4
61 #if _WIN32_IE >= 0x0500
64 #define NIS_SHAREDICON 2
67 #define NIIF_WARNING 2
69 #if _WIN32_IE >= 0x0600
70 #define NIIF_ICON_MASK 0xf
71 #define NIIF_NOSOUND 0x10
72 #endif /* _WIN32_IE >= 0x0600 */
73 #endif /* _WIN32_IE >= 0x0500 */
76 #define SE_ERR_ACCESSDENIED 5
78 #define SE_ERR_DLLNOTFOUND 32
79 #define SE_ERR_SHARE 26
80 #define SE_ERR_ASSOCINCOMPLETE 27
81 #define SE_ERR_DDETIMEOUT 28
82 #define SE_ERR_DDEFAIL 29
83 #define SE_ERR_DDEBUSY 30
84 #define SE_ERR_NOASSOC 31
90 #define FOF_MULTIDESTFILES 0x0001
91 #define FOF_CONFIRMMOUSE 0x0002
92 #define FOF_SILENT 0x0004
93 #define FOF_RENAMEONCOLLISION 0x0008
94 #define FOF_NOCONFIRMATION 0x0010
95 #define FOF_WANTMAPPINGHANDLE 0x0020
96 #define FOF_ALLOWUNDO 0x0040
97 #define FOF_FILESONLY 0x0080
98 #define FOF_SIMPLEPROGRESS 0x0100
99 #define FOF_NOCONFIRMMKDIR 0x0200
100 #define FOF_NOERRORUI 0x0400
101 #define FOF_NOCOPYSECURITYATTRIBS 0x0800
102 #define FOF_NORECURSION 0x1000 /* don't do recursion into directories */
103 #define FOF_NO_CONNECTED_ELEMENTS 0x2000 /* don't do connected files */
104 #define FOF_WANTNUKEWARNING 0x4000 /* during delete operation, warn if delete instead
105 of recycling (even if FOF_NOCONFIRMATION) */
106 #define FOF_NORECURSEREPARSE 0x8000 /* don't do recursion into reparse points */
110 #define PO_PORTCHANGE 32
111 #define PO_REN_PORT 52
112 #define SHGFI_ADDOVERLAYS 32
113 #define SHGFI_OVERLAYINDEX 64
114 #define SHGFI_ICON 256
115 #define SHGFI_DISPLAYNAME 512
116 #define SHGFI_TYPENAME 1024
117 #define SHGFI_ATTRIBUTES 2048
118 #define SHGFI_ICONLOCATION 4096
119 #define SHGFI_EXETYPE 8192
120 #define SHGFI_SYSICONINDEX 16384
121 #define SHGFI_LINKOVERLAY 32768
122 #define SHGFI_SELECTED 65536
123 #define SHGFI_ATTR_SPECIFIED 131072
124 #define SHGFI_LARGEICON 0
125 #define SHGFI_SMALLICON 1
126 #define SHGFI_OPENICON 2
127 #define SHGFI_SHELLICONSIZE 4
129 #define SHGFI_USEFILEATTRIBUTES 16
131 typedef struct _SHCREATEPROCESSINFOW
137 LPCWSTR pszParameters
;
138 LPCWSTR pszCurrentDirectory
;
139 IN HANDLE hUserToken
;
140 IN LPSECURITY_ATTRIBUTES lpProcessAttributes
;
141 IN LPSECURITY_ATTRIBUTES lpThreadAttributes
;
142 IN BOOL bInheritHandles
;
143 IN DWORD dwCreationFlags
;
144 IN LPSTARTUPINFOW lpStartupInfo
;
145 OUT LPPROCESS_INFORMATION lpProcessInformation
;
146 } SHCREATEPROCESSINFOW
, *PSHCREATEPROCESSINFOW
;
148 typedef WORD FILEOP_FLAGS
;
149 typedef WORD PRINTEROP_FLAGS
;
150 #include <pshpack1.h>
151 typedef struct _AppBarData
{
154 UINT uCallbackMessage
;
158 } APPBARDATA
,*PAPPBARDATA
;
159 DECLARE_HANDLE(HDROP
);
161 typedef struct _NOTIFYICONDATAA
{
166 UINT uCallbackMessage
;
168 #if _WIN32_IE >= 0x0500
173 _ANONYMOUS_UNION
union {
177 CHAR szInfoTitle
[64];
182 #if _WIN32_IE >= 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 } NOTIFYICONDATAW
,*PNOTIFYICONDATAW
;
213 #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
214 #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
215 #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
216 #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
219 typedef struct _DRAGINFOA
{
225 } DRAGINFOA
,*LPDRAGINFOA
;
226 typedef struct _DRAGINFOW
{
232 } DRAGINFOW
,*LPDRAGINFOW
;
235 typedef struct _SHELLEXECUTEINFOA
{
251 } SHELLEXECUTEINFOA
,*LPSHELLEXECUTEINFOA
;
252 typedef struct _SHELLEXECUTEINFOW
{
258 LPCWSTR lpParameters
;
268 } SHELLEXECUTEINFOW
,*LPSHELLEXECUTEINFOW
;
269 typedef struct _SHFILEOPSTRUCTA
{
275 BOOL fAnyOperationsAborted
;
277 LPCSTR lpszProgressTitle
;
278 } SHFILEOPSTRUCTA
,*LPSHFILEOPSTRUCTA
;
279 typedef struct _SHFILEOPSTRUCTW
{
285 BOOL fAnyOperationsAborted
;
287 LPCWSTR lpszProgressTitle
;
288 } SHFILEOPSTRUCTW
,*LPSHFILEOPSTRUCTW
;
289 typedef struct _SHFILEINFOA
{
293 CHAR szDisplayName
[MAX_PATH
];
296 typedef struct _SHFILEINFOW
{
300 WCHAR szDisplayName
[MAX_PATH
];
301 WCHAR szTypeName
[80];
303 typedef struct _SHQUERYRBINFO
{
307 } SHQUERYRBINFO
, *LPSHQUERYRBINFO
;
308 typedef struct _SHNAMEMAPPINGA
{
313 } SHNAMEMAPPINGA
, *LPSHNAMEMAPPINGA
;
314 typedef struct _SHNAMEMAPPINGW
{
319 } SHNAMEMAPPINGW
, *LPSHNAMEMAPPINGW
;
322 #define SHERB_NOCONFIRMATION 0x1
323 #define SHERB_NOPROGRESSUI 0x2
324 #define SHERB_NOSOUND 0x4
326 /******************************************
330 #define SHGNLI_PIDL 0x01
331 #define SHGNLI_PREFIXNAME 0x02
332 #define SHGNLI_NOUNIQUE 0x04
333 #define SHGNLI_NOLNK 0x08
335 BOOL WINAPI
SHGetNewLinkInfoA(LPCSTR
,LPCSTR
,LPSTR
,BOOL
*,UINT
);
336 BOOL WINAPI
SHGetNewLinkInfoW(LPCWSTR
,LPCWSTR
,LPWSTR
,BOOL
*,UINT
);
338 LPWSTR
* WINAPI
CommandLineToArgvW(LPCWSTR
,int*);
339 void WINAPI
DragAcceptFiles(HWND
,BOOL
);
340 void WINAPI
DragFinish(HDROP
);
341 UINT WINAPI
DragQueryFileA(HDROP
,UINT
,LPSTR
,UINT
);
342 UINT WINAPI
DragQueryFileW(HDROP
,UINT
,LPWSTR
,UINT
);
343 BOOL WINAPI
DragQueryPoint(HDROP
,LPPOINT
);
344 HICON WINAPI
ExtractAssociatedIconA(HINSTANCE
,LPSTR
,PWORD
);
345 HICON WINAPI
ExtractAssociatedIconW(HINSTANCE
,LPWSTR
,PWORD
);
346 HICON WINAPI
ExtractIconA(HINSTANCE
,LPCSTR
,UINT
);
347 HICON WINAPI
ExtractIconW(HINSTANCE
,LPCWSTR
,UINT
);
348 UINT WINAPI
ExtractIconExA(LPCSTR
,int,HICON
*,HICON
*,UINT
);
349 UINT WINAPI
ExtractIconExW(LPCWSTR
,int,HICON
*,HICON
*,UINT
);
350 HINSTANCE WINAPI
FindExecutableA(LPCSTR
,LPCSTR
,LPSTR
);
351 HINSTANCE WINAPI
FindExecutableW(LPCWSTR
,LPCWSTR
,LPWSTR
);
352 UINT_PTR WINAPI
SHAppBarMessage(DWORD
,PAPPBARDATA
);
353 BOOL WINAPI
Shell_NotifyIconA(DWORD
,PNOTIFYICONDATAA
);
354 BOOL WINAPI
Shell_NotifyIconW(DWORD
,PNOTIFYICONDATAW
);
355 int WINAPI
ShellAboutA(HWND
,LPCSTR
,LPCSTR
,HICON
);
356 int WINAPI
ShellAboutW(HWND
,LPCWSTR
,LPCWSTR
,HICON
);
357 HINSTANCE WINAPI
ShellExecuteA(HWND
,LPCSTR
,LPCSTR
,LPCSTR
,LPCSTR
,INT
);
358 HINSTANCE WINAPI
ShellExecuteW(HWND
,LPCWSTR
,LPCWSTR
,LPCWSTR
,LPCWSTR
,INT
);
359 BOOL WINAPI
ShellExecuteExA(LPSHELLEXECUTEINFOA
);
360 BOOL WINAPI
ShellExecuteExW(LPSHELLEXECUTEINFOW
);
361 int WINAPI
SHFileOperationA(LPSHFILEOPSTRUCTA
);
362 int WINAPI
SHFileOperationW(LPSHFILEOPSTRUCTW
);
363 void WINAPI
SHFreeNameMappings(HANDLE
);
364 DWORD_PTR WINAPI
SHGetFileInfoA(LPCSTR
,DWORD
,SHFILEINFOA
*,UINT
,UINT
);
365 DWORD_PTR WINAPI
SHGetFileInfoW(LPCWSTR
,DWORD
,SHFILEINFOW
*,UINT
,UINT
);
366 BOOL WINAPI
SHGetNewLinkInfoA(LPCSTR
,LPCSTR
,LPSTR
,BOOL
*,UINT
);
367 BOOL WINAPI
SHGetNewLinkInfoW(LPCWSTR
,LPCWSTR
,LPWSTR
,BOOL
*,UINT
);
368 HRESULT WINAPI
SHQueryRecycleBinA(LPCSTR
, LPSHQUERYRBINFO
);
369 HRESULT WINAPI
SHQueryRecycleBinW(LPCWSTR
, LPSHQUERYRBINFO
);
370 HRESULT WINAPI
SHEmptyRecycleBinA(HWND
,LPCSTR
,DWORD
);
371 HRESULT WINAPI
SHEmptyRecycleBinW(HWND
,LPCWSTR
,DWORD
);
372 BOOL WINAPI
SHCreateProcessAsUserW(PSHCREATEPROCESSINFOW
);
375 #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
376 #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
377 typedef NOTIFYICONDATAW NOTIFYICONDATA
,*PNOTIFYICONDATA
;
378 typedef DRAGINFOW DRAGINFO
,*LPDRAGINFO
;
379 typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO
,*LPSHELLEXECUTEINFO
;
380 typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT
,*LPSHFILEOPSTRUCT
;
381 typedef SHFILEINFOW SHFILEINFO
;
382 typedef SHNAMEMAPPINGW SHNAMEMAPPING
;
383 typedef LPSHNAMEMAPPINGW LPSHNAMEMAPPING
;
384 #define DragQueryFile DragQueryFileW
385 #define ExtractAssociatedIcon ExtractAssociatedIconW
386 #define ExtractIcon ExtractIconW
387 #define ExtractIconEx ExtractIconExW
388 #define FindExecutable FindExecutableW
389 #define Shell_NotifyIcon Shell_NotifyIconW
390 #define ShellAbout ShellAboutW
391 #define ShellExecute ShellExecuteW
392 #define ShellExecuteEx ShellExecuteExW
393 #define SHFileOperation SHFileOperationW
394 #define SHGetFileInfo SHGetFileInfoW
395 #define SHGetNewLinkInfo SHGetNewLinkInfoW
396 #define SHQueryRecycleBin SHQueryRecycleBinW
397 #define SHEmptyRecycleBin SHEmptyRecycleBinW
398 #define SHGetNewLinkInfo SHGetNewLinkInfoW
401 #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
402 #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
403 typedef NOTIFYICONDATAA NOTIFYICONDATA
,*PNOTIFYICONDATA
;
404 typedef DRAGINFOA DRAGINFO
,*LPDRAGINFO
;
405 typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO
,*LPSHELLEXECUTEINFO
;
406 typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT
,*LPSHFILEOPSTRUCT
;
407 typedef SHFILEINFOA SHFILEINFO
;
408 typedef SHNAMEMAPPINGA SHNAMEMAPPING
;
409 typedef LPSHNAMEMAPPINGA LPSHNAMEMAPPING
;
410 #define DragQueryFile DragQueryFileA
411 #define ExtractAssociatedIcon ExtractAssociatedIconA
412 #define ExtractIcon ExtractIconA
413 #define ExtractIconEx ExtractIconExA
414 #define FindExecutable FindExecutableA
415 #define Shell_NotifyIcon Shell_NotifyIconA
416 #define ShellAbout ShellAboutA
417 #define ShellExecute ShellExecuteA
418 #define ShellExecuteEx ShellExecuteExA
419 #define SHFileOperation SHFileOperationA
420 #define SHGetFileInfo SHGetFileInfoA
421 #define SHGetNewLinkInfo SHGetNewLinkInfoA
422 #define SHQueryRecycleBin SHQueryRecycleBinA
423 #define SHEmptyRecycleBin SHEmptyRecycleBinA
424 #define SHGetNewLinkInfo SHGetNewLinkInfoA