Synchronize with trunk revision 59781.
[reactos.git] / include / psdk / shellapi.h
1 #ifndef _SHELLAPI_H
2 #define _SHELLAPI_H
3
4 #ifdef __cplusplus
5 extern "C" {
6 #endif
7 #ifdef _MSC_VER
8 #pragma warning(push)
9 #pragma warning(disable:4201)
10 #endif
11
12 #if !defined(_WIN64)
13 #include <pshpack1.h>
14 #endif
15
16 #define WINSHELLAPI DECLSPEC_IMPORT
17 #define ABE_LEFT 0
18 #define ABE_TOP 1
19 #define ABE_RIGHT 2
20 #define ABE_BOTTOM 3
21 #define ABS_AUTOHIDE 1
22 #define ABS_ALWAYSONTOP 2
23
24 #define SEE_MASK_DEFAULT 0x00000000
25 #define SEE_MASK_CLASSNAME 0x00000001
26 #define SEE_MASK_CLASSKEY 0x00000003
27 #define SEE_MASK_IDLIST 0x00000004
28 #define SEE_MASK_INVOKEIDLIST 0x0000000C
29 #define SEE_MASK_ICON 0x00000010
30 #define SEE_MASK_HOTKEY 0x00000020
31 #define SEE_MASK_NOCLOSEPROCESS 0x00000040
32 #define SEE_MASK_CONNECTNETDRV 0x00000080
33 #define SEE_MASK_NOASYNC 0x00000100
34 #define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
35 #define SEE_MASK_DOENVSUBST 0x00000200
36 #define SEE_MASK_FLAG_NO_UI 0x00000400
37 #define SEE_MASK_UNICODE 0x00004000
38 #define SEE_MASK_NO_CONSOLE 0x00008000
39 /*
40 * NOTE: The following three flags are undocumented and are not present in the
41 * official Windows SDK. However they are used in shobjidl.idl to define some
42 * CMIC_MASK_* flags, these ones being mentioned in the MSDN documentation of
43 * the CMINVOKECOMMANDINFOEX structure.
44 * I affect them this range of values which seems to be strangely empty. Of
45 * course their values may differ from the real ones, however I have no way
46 * of discovering them. If somebody else can verify them, it would be great.
47 */
48 #define SEE_MASK_HASLINKNAME 0x00010000
49 #define SEE_MASK_HASTITLE 0x00020000
50 #define SEE_MASK_FLAG_SEPVDM 0x00040000
51 /* END NOTE */
52 #define SEE_MASK_ASYNCOK 0x00100000
53 #define SEE_MASK_HMONITOR 0x00200000
54 #define SEE_MASK_NOZONECHECKS 0x00800000
55 #define SEE_MASK_NOQUERYCLASSSTORE 0x01000000
56 #define SEE_MASK_WAITFORINPUTIDLE 0x02000000
57 #define SEE_MASK_FLAG_LOG_USAGE 0x04000000
58
59 #define ABM_NEW 0
60 #define ABM_REMOVE 1
61 #define ABM_QUERYPOS 2
62 #define ABM_SETPOS 3
63 #define ABM_GETSTATE 4
64 #define ABM_GETTASKBARPOS 5
65 #define ABM_ACTIVATE 6
66 #define ABM_GETAUTOHIDEBAR 7
67 #define ABM_SETAUTOHIDEBAR 8
68 #define ABM_WINDOWPOSCHANGED 9
69 #define ABN_STATECHANGE 0
70 #define ABN_POSCHANGED 1
71 #define ABN_FULLSCREENAPP 2
72 #define ABN_WINDOWARRANGE 3
73 #define NIM_ADD 0
74 #define NIM_MODIFY 1
75 #define NIM_DELETE 2
76 #if _WIN32_IE >= 0x0500
77 #define NOTIFYICON_VERSION 3
78 #define NIM_SETFOCUS 3
79 #define NIM_SETVERSION 4
80 #endif
81 #define NIF_MESSAGE 1
82 #define NIF_ICON 2
83 #define NIF_TIP 4
84 #define NIF_STATE 8
85 #if _WIN32_IE >= 0x0500
86 #define NIF_INFO 16
87 #define NIS_HIDDEN 1
88 #define NIS_SHAREDICON 2
89 #define NIIF_NONE 0
90 #define NIIF_INFO 1
91 #define NIIF_WARNING 2
92 #define NIIF_ERROR 3
93 #define NIIF_USER 4
94 #if _WIN32_IE >= 0x0600
95 #define NIIF_ICON_MASK 0xf
96 #define NIIF_NOSOUND 0x10
97 #endif /* _WIN32_IE >= 0x0600 */
98 #endif /* _WIN32_IE >= 0x0500 */
99 #define SE_ERR_FNF 2
100 #define SE_ERR_PNF 3
101 #define SE_ERR_ACCESSDENIED 5
102 #define SE_ERR_OOM 8
103 #define SE_ERR_DLLNOTFOUND 32
104 #define SE_ERR_SHARE 26
105 #define SE_ERR_ASSOCINCOMPLETE 27
106 #define SE_ERR_DDETIMEOUT 28
107 #define SE_ERR_DDEFAIL 29
108 #define SE_ERR_DDEBUSY 30
109 #define SE_ERR_NOASSOC 31
110 #define FO_MOVE 1
111 #define FO_COPY 2
112 #define FO_DELETE 3
113 #define FO_RENAME 4
114
115 #define FOF_MULTIDESTFILES 0x0001
116 #define FOF_CONFIRMMOUSE 0x0002
117 #define FOF_SILENT 0x0004
118 #define FOF_RENAMEONCOLLISION 0x0008
119 #define FOF_NOCONFIRMATION 0x0010
120 #define FOF_WANTMAPPINGHANDLE 0x0020
121 #define FOF_ALLOWUNDO 0x0040
122 #define FOF_FILESONLY 0x0080
123 #define FOF_SIMPLEPROGRESS 0x0100
124 #define FOF_NOCONFIRMMKDIR 0x0200
125 #define FOF_NOERRORUI 0x0400
126 #define FOF_NOCOPYSECURITYATTRIBS 0x0800
127 #define FOF_NORECURSION 0x1000 /* don't do recursion into directories */
128 #define FOF_NO_CONNECTED_ELEMENTS 0x2000 /* don't do connected files */
129 #define FOF_WANTNUKEWARNING 0x4000 /* during delete operation, warn if delete instead
130 of recycling (even if FOF_NOCONFIRMATION) */
131 #define FOF_NORECURSEREPARSE 0x8000 /* don't do recursion into reparse points */
132
133 #define PO_DELETE 19
134 #define PO_RENAME 20
135 #define PO_PORTCHANGE 32
136 #define PO_REN_PORT 52
137 #define SHGFI_ADDOVERLAYS 32
138 #define SHGFI_OVERLAYINDEX 64
139 #define SHGFI_ICON 256
140 #define SHGFI_DISPLAYNAME 512
141 #define SHGFI_TYPENAME 1024
142 #define SHGFI_ATTRIBUTES 2048
143 #define SHGFI_ICONLOCATION 4096
144 #define SHGFI_EXETYPE 8192
145 #define SHGFI_SYSICONINDEX 16384
146 #define SHGFI_LINKOVERLAY 32768
147 #define SHGFI_SELECTED 65536
148 #define SHGFI_ATTR_SPECIFIED 131072
149 #define SHGFI_LARGEICON 0
150 #define SHGFI_SMALLICON 1
151 #define SHGFI_OPENICON 2
152 #define SHGFI_SHELLICONSIZE 4
153 #define SHGFI_PIDL 8
154 #define SHGFI_USEFILEATTRIBUTES 16
155
156 #if (NTDDI_VERSION >= NTDDI_WINXP)
157 #define SHIL_LARGE 0x0
158 #define SHIL_SMALL 0x1
159 #define SHIL_EXTRALARGE 0x2
160 #define SHIL_SYSSMALL 0x3
161 #if (NTDDI_VERSION >= NTDDI_VISTA)
162 #define SHIL_JUMBO 0x4
163 #define SHIL_LAST SHIL_JUMBO
164 #else
165 #define SHIL_LAST SHIL_SYSSMALL
166 #endif
167 #endif
168
169 typedef struct _SHCREATEPROCESSINFOW
170 {
171 DWORD cbSize;
172 ULONG fMask;
173 HWND hwnd;
174 LPCWSTR pszFile;
175 LPCWSTR pszParameters;
176 LPCWSTR pszCurrentDirectory;
177 IN HANDLE hUserToken;
178 IN LPSECURITY_ATTRIBUTES lpProcessAttributes;
179 IN LPSECURITY_ATTRIBUTES lpThreadAttributes;
180 IN BOOL bInheritHandles;
181 IN DWORD dwCreationFlags;
182 IN LPSTARTUPINFOW lpStartupInfo;
183 OUT LPPROCESS_INFORMATION lpProcessInformation;
184 } SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW;
185
186 typedef WORD FILEOP_FLAGS;
187 typedef WORD PRINTEROP_FLAGS;
188
189 typedef struct _AppBarData {
190 DWORD cbSize;
191 HWND hWnd;
192 UINT uCallbackMessage;
193 UINT uEdge;
194 RECT rc;
195 LPARAM lParam;
196 } APPBARDATA,*PAPPBARDATA;
197 DECLARE_HANDLE(HDROP);
198
199 typedef struct _NOTIFYICONDATAA {
200 DWORD cbSize;
201 HWND hWnd;
202 UINT uID;
203 UINT uFlags;
204 UINT uCallbackMessage;
205 HICON hIcon;
206 #if _WIN32_IE >= 0x0500
207 CHAR szTip[128];
208 DWORD dwState;
209 DWORD dwStateMask;
210 CHAR szInfo[256];
211 _ANONYMOUS_UNION union {
212 UINT uTimeout;
213 UINT uVersion;
214 } DUMMYUNIONNAME;
215 CHAR szInfoTitle[64];
216 DWORD dwInfoFlags;
217 #else
218 CHAR szTip[64];
219 #endif
220 #if _WIN32_IE >= 0x600
221 GUID guidItem;
222 #endif
223 } NOTIFYICONDATAA,*PNOTIFYICONDATAA;
224
225 typedef struct _NOTIFYICONDATAW {
226 DWORD cbSize;
227 HWND hWnd;
228 UINT uID;
229 UINT uFlags;
230 UINT uCallbackMessage;
231 HICON hIcon;
232 #if _WIN32_IE >= 0x0500
233 WCHAR szTip[128];
234 DWORD dwState;
235 DWORD dwStateMask;
236 WCHAR szInfo[256];
237 _ANONYMOUS_UNION union {
238 UINT uTimeout;
239 UINT uVersion;
240 } DUMMYUNIONNAME;
241 WCHAR szInfoTitle[64];
242 DWORD dwInfoFlags;
243 #else
244 WCHAR szTip[64];
245 #endif
246 #if _WIN32_IE >= 0x600
247 GUID guidItem;
248 #endif
249 } NOTIFYICONDATAW,*PNOTIFYICONDATAW;
250
251 #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64])
252 #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64])
253 #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem)
254 #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem)
255
256 #if WINVER >= 0x400
257 typedef struct _DRAGINFOA {
258 UINT uSize;
259 POINT pt;
260 BOOL fNC;
261 LPSTR lpFileList;
262 DWORD grfKeyState;
263 } DRAGINFOA,*LPDRAGINFOA;
264 typedef struct _DRAGINFOW {
265 UINT uSize;
266 POINT pt;
267 BOOL fNC;
268 LPWSTR lpFileList;
269 DWORD grfKeyState;
270 } DRAGINFOW,*LPDRAGINFOW;
271 #endif
272
273 typedef struct _SHELLEXECUTEINFOA {
274 DWORD cbSize;
275 ULONG fMask;
276 HWND hwnd;
277 LPCSTR lpVerb;
278 LPCSTR lpFile;
279 LPCSTR lpParameters;
280 LPCSTR lpDirectory;
281 int nShow;
282 HINSTANCE hInstApp;
283 PVOID lpIDList;
284 LPCSTR lpClass;
285 HKEY hkeyClass;
286 DWORD dwHotKey;
287 HANDLE hIcon;
288 HANDLE hProcess;
289 } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
290 typedef struct _SHELLEXECUTEINFOW {
291 DWORD cbSize;
292 ULONG fMask;
293 HWND hwnd;
294 LPCWSTR lpVerb;
295 LPCWSTR lpFile;
296 LPCWSTR lpParameters;
297 LPCWSTR lpDirectory;
298 int nShow;
299 HINSTANCE hInstApp;
300 PVOID lpIDList;
301 LPCWSTR lpClass;
302 HKEY hkeyClass;
303 DWORD dwHotKey;
304 HANDLE hIcon;
305 HANDLE hProcess;
306 } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
307 typedef struct _SHFILEOPSTRUCTA {
308 HWND hwnd;
309 UINT wFunc;
310 LPCSTR pFrom;
311 LPCSTR pTo;
312 FILEOP_FLAGS fFlags;
313 BOOL fAnyOperationsAborted;
314 PVOID hNameMappings;
315 LPCSTR lpszProgressTitle;
316 } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
317 typedef struct _SHFILEOPSTRUCTW {
318 HWND hwnd;
319 UINT wFunc;
320 LPCWSTR pFrom;
321 LPCWSTR pTo;
322 FILEOP_FLAGS fFlags;
323 BOOL fAnyOperationsAborted;
324 PVOID hNameMappings;
325 LPCWSTR lpszProgressTitle;
326 } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
327 typedef struct _SHFILEINFOA {
328 HICON hIcon;
329 int iIcon;
330 DWORD dwAttributes;
331 CHAR szDisplayName[MAX_PATH];
332 CHAR szTypeName[80];
333 } SHFILEINFOA;
334 typedef struct _SHFILEINFOW {
335 HICON hIcon;
336 int iIcon;
337 DWORD dwAttributes;
338 WCHAR szDisplayName[MAX_PATH];
339 WCHAR szTypeName[80];
340 } SHFILEINFOW;
341 typedef struct _SHQUERYRBINFO {
342 DWORD cbSize;
343 __int64 i64Size;
344 __int64 i64NumItems;
345 } SHQUERYRBINFO, *LPSHQUERYRBINFO;
346 typedef struct _SHNAMEMAPPINGA {
347 LPSTR pszOldPath;
348 LPSTR pszNewPath;
349 int cchOldPath;
350 int cchNewPath;
351 } SHNAMEMAPPINGA, *LPSHNAMEMAPPINGA;
352 typedef struct _SHNAMEMAPPINGW {
353 LPWSTR pszOldPath;
354 LPWSTR pszNewPath;
355 int cchOldPath;
356 int cchNewPath;
357 } SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW;
358
359 #define SHERB_NOCONFIRMATION 0x1
360 #define SHERB_NOPROGRESSUI 0x2
361 #define SHERB_NOSOUND 0x4
362
363 /******************************************
364 * Links
365 */
366
367 #define SHGNLI_PIDL 0x01
368 #define SHGNLI_PREFIXNAME 0x02
369 #define SHGNLI_NOUNIQUE 0x04
370 #define SHGNLI_NOLNK 0x08
371
372 LPWSTR * WINAPI CommandLineToArgvW(_In_ LPCWSTR, _Out_ int*);
373 void WINAPI DragAcceptFiles(_In_ HWND, _In_ BOOL);
374 void WINAPI DragFinish(_In_ HDROP);
375
376 _Success_(return != 0)
377 UINT
378 WINAPI
379 DragQueryFileA(
380 _In_ HDROP hDrop,
381 _In_ UINT iFile,
382 _Out_writes_opt_(cch) LPSTR lpszFile,
383 _In_ UINT cch);
384
385 _Success_(return != 0)
386 UINT
387 WINAPI
388 DragQueryFileW(
389 _In_ HDROP hDrop,
390 _In_ UINT iFile,
391 _Out_writes_opt_(cch) LPWSTR lpszFile,
392 _In_ UINT cch);
393
394 BOOL WINAPI DragQueryPoint(_In_ HDROP, _Out_ LPPOINT);
395
396 HICON
397 WINAPI
398 ExtractAssociatedIconA(
399 _Reserved_ HINSTANCE hInst,
400 _Inout_updates_(128) LPSTR pszIconPath,
401 _Inout_ WORD *piIcon);
402
403 HICON
404 WINAPI
405 ExtractAssociatedIconW(
406 _Reserved_ HINSTANCE hInst,
407 _Inout_updates_(128) LPWSTR pszIconPath,
408 _Inout_ WORD *piIcon);
409
410 HICON
411 WINAPI
412 ExtractIconA(
413 _Reserved_ HINSTANCE hInst,
414 _In_ LPCSTR pszExeFileName,
415 UINT nIconIndex);
416
417 HICON
418 WINAPI
419 ExtractIconW(
420 _Reserved_ HINSTANCE hInst,
421 _In_ LPCWSTR pszExeFileName,
422 UINT nIconIndex);
423
424 UINT
425 WINAPI
426 ExtractIconExA(
427 _In_ LPCSTR lpszFile,
428 _In_ int nIconIndex,
429 _Out_writes_opt_(nIcons) HICON *phiconLarge,
430 _Out_writes_opt_(nIcons) HICON *phiconSmall,
431 _In_ UINT nIcons);
432
433 UINT
434 WINAPI
435 ExtractIconExW(
436 _In_ LPCWSTR lpszFile,
437 _In_ int nIconIndex,
438 _Out_writes_opt_(nIcons) HICON *phiconLarge,
439 _Out_writes_opt_(nIcons) HICON *phiconSmall,
440 _In_ UINT nIcons);
441
442 _Success_(return > 32)
443 HINSTANCE
444 WINAPI
445 FindExecutableA(
446 _In_ LPCSTR lpFile,
447 _In_opt_ LPCSTR lpDirectory,
448 _Out_writes_(MAX_PATH) LPSTR lpResult);
449
450 _Success_(return > 32)
451 HINSTANCE
452 WINAPI
453 FindExecutableW(
454 _In_ LPCWSTR lpFile,
455 _In_opt_ LPCWSTR lpDirectory,
456 _Out_writes_(MAX_PATH) LPWSTR lpResult);
457
458 UINT_PTR WINAPI SHAppBarMessage(_In_ DWORD, _Inout_ PAPPBARDATA);
459 BOOL WINAPI Shell_NotifyIconA(_In_ DWORD, _In_ PNOTIFYICONDATAA);
460 BOOL WINAPI Shell_NotifyIconW(_In_ DWORD, _In_ PNOTIFYICONDATAW);
461
462 int
463 WINAPI
464 ShellAboutA(
465 _In_opt_ HWND hWnd,
466 _In_ LPCSTR szApp,
467 _In_opt_ LPCSTR szOtherStuff,
468 _In_opt_ HICON hIcon);
469
470 int
471 WINAPI
472 ShellAboutW(
473 _In_opt_ HWND hWnd,
474 _In_ LPCWSTR szApp,
475 _In_opt_ LPCWSTR szOtherStuff,
476 _In_opt_ HICON hIcon);
477
478 int
479 WINAPI
480 ShellMessageBoxA(
481 _In_opt_ HINSTANCE hAppInst,
482 _In_opt_ HWND hWnd,
483 _In_ LPCSTR lpcText,
484 _In_opt_ LPCSTR lpcTitle,
485 _In_ UINT fuStyle,
486 ...);
487
488 int
489 WINAPI
490 ShellMessageBoxW(
491 _In_opt_ HINSTANCE hAppInst,
492 _In_opt_ HWND hWnd,
493 _In_ LPCWSTR lpcText,
494 _In_opt_ LPCWSTR lpcTitle,
495 _In_ UINT fuStyle,
496 ...);
497
498 HINSTANCE
499 WINAPI
500 ShellExecuteA(
501 _In_opt_ HWND hwnd,
502 _In_opt_ LPCSTR lpOperation,
503 _In_ LPCSTR lpFile,
504 _In_opt_ LPCSTR lpParameters,
505 _In_opt_ LPCSTR lpDirectory,
506 _In_ INT nShowCmd);
507
508 HINSTANCE
509 WINAPI
510 ShellExecuteW(
511 _In_opt_ HWND hwnd,
512 _In_opt_ LPCWSTR lpOperation,
513 _In_ LPCWSTR lpFile,
514 _In_opt_ LPCWSTR lpParameters,
515 _In_opt_ LPCWSTR lpDirectory,
516 _In_ INT nShowCmd);
517
518 BOOL WINAPI ShellExecuteExA(_Inout_ LPSHELLEXECUTEINFOA);
519 BOOL WINAPI ShellExecuteExW(_Inout_ LPSHELLEXECUTEINFOW);
520 int WINAPI SHFileOperationA(_Inout_ LPSHFILEOPSTRUCTA);
521 int WINAPI SHFileOperationW(_Inout_ LPSHFILEOPSTRUCTW);
522 void WINAPI SHFreeNameMappings(_In_opt_ HANDLE);
523
524 DWORD_PTR
525 WINAPI
526 SHGetFileInfoA(
527 _In_ LPCSTR pszPath,
528 DWORD dwFileAttributes,
529 _Inout_updates_bytes_opt_(cbFileInfo) SHFILEINFOA *psfi,
530 UINT cbFileInfo,
531 UINT uFlags);
532
533 DWORD_PTR
534 WINAPI
535 SHGetFileInfoW(
536 _In_ LPCWSTR pszPath,
537 DWORD dwFileAttributes,
538 _Inout_updates_bytes_opt_(cbFileInfo) SHFILEINFOW *psfi,
539 UINT cbFileInfo,
540 UINT uFlags);
541
542 _Success_(return != 0)
543 BOOL
544 WINAPI
545 SHGetNewLinkInfoA(
546 _In_ LPCSTR pszLinkTo,
547 _In_ LPCSTR pszDir,
548 _Out_writes_(MAX_PATH) LPSTR pszName,
549 _Out_ BOOL *pfMustCopy,
550 _In_ UINT uFlags);
551
552 _Success_(return != 0)
553 BOOL
554 WINAPI
555 SHGetNewLinkInfoW(
556 _In_ LPCWSTR pszLinkTo,
557 _In_ LPCWSTR pszDir,
558 _Out_writes_(MAX_PATH) LPWSTR pszName,
559 _Out_ BOOL *pfMustCopy,
560 _In_ UINT uFlags);
561
562 HRESULT
563 WINAPI
564 SHQueryRecycleBinA(
565 _In_opt_ LPCSTR pszRootPath,
566 _Inout_ LPSHQUERYRBINFO pSHQueryRBInfo);
567
568 HRESULT
569 WINAPI
570 SHQueryRecycleBinW(
571 _In_opt_ LPCWSTR pszRootPath,
572 _Inout_ LPSHQUERYRBINFO pSHQueryRBInfo);
573
574 HRESULT
575 WINAPI
576 SHEmptyRecycleBinA(
577 _In_opt_ HWND hwnd,
578 _In_opt_ LPCSTR pszRootPath,
579 DWORD dwFlags);
580
581 HRESULT
582 WINAPI
583 SHEmptyRecycleBinW(
584 _In_opt_ HWND hwnd,
585 _In_opt_ LPCWSTR pszRootPath,
586 DWORD dwFlags);
587
588 BOOL WINAPI SHCreateProcessAsUserW(_Inout_ PSHCREATEPROCESSINFOW);
589
590 DWORD
591 WINAPI
592 DoEnvironmentSubstA(
593 _Inout_updates_(cchSrc) LPSTR pszSrc,
594 UINT cchSrc);
595
596 DWORD
597 WINAPI
598 DoEnvironmentSubstW(
599 _Inout_updates_(cchSrc) LPWSTR pszSrc,
600 UINT cchSrc);
601
602 #ifdef UNICODE
603 #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE
604 #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE
605 typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA;
606 typedef DRAGINFOW DRAGINFO,*LPDRAGINFO;
607 typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
608 typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
609 typedef SHFILEINFOW SHFILEINFO;
610 typedef SHNAMEMAPPINGW SHNAMEMAPPING;
611 typedef LPSHNAMEMAPPINGW LPSHNAMEMAPPING;
612 #define DragQueryFile DragQueryFileW
613 #define ExtractAssociatedIcon ExtractAssociatedIconW
614 #define ExtractIcon ExtractIconW
615 #define ExtractIconEx ExtractIconExW
616 #define FindExecutable FindExecutableW
617 #define Shell_NotifyIcon Shell_NotifyIconW
618 #define ShellAbout ShellAboutW
619 #define ShellExecute ShellExecuteW
620 #define ShellExecuteEx ShellExecuteExW
621 #define ShellMessageBox ShellMessageBoxW
622 #define SHFileOperation SHFileOperationW
623 #define SHGetFileInfo SHGetFileInfoW
624 #define SHQueryRecycleBin SHQueryRecycleBinW
625 #define SHEmptyRecycleBin SHEmptyRecycleBinW
626 #define SHGetNewLinkInfo SHGetNewLinkInfoW
627 #define DoEnvironmentSubst DoEnvironmentSubstW
628
629 #else
630 #define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE
631 #define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE
632 typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA;
633 typedef DRAGINFOA DRAGINFO,*LPDRAGINFO;
634 typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO;
635 typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT;
636 typedef SHFILEINFOA SHFILEINFO;
637 typedef SHNAMEMAPPINGA SHNAMEMAPPING;
638 typedef LPSHNAMEMAPPINGA LPSHNAMEMAPPING;
639 #define DragQueryFile DragQueryFileA
640 #define ExtractAssociatedIcon ExtractAssociatedIconA
641 #define ExtractIcon ExtractIconA
642 #define ExtractIconEx ExtractIconExA
643 #define FindExecutable FindExecutableA
644 #define Shell_NotifyIcon Shell_NotifyIconA
645 #define ShellAbout ShellAboutA
646 #define ShellExecute ShellExecuteA
647 #define ShellExecuteEx ShellExecuteExA
648 #define ShellMessageBox ShellMessageBoxA
649 #define SHFileOperation SHFileOperationA
650 #define SHGetFileInfo SHGetFileInfoA
651 #define SHQueryRecycleBin SHQueryRecycleBinA
652 #define SHEmptyRecycleBin SHEmptyRecycleBinA
653 #define SHGetNewLinkInfo SHGetNewLinkInfoA
654 #define DoEnvironmentSubst DoEnvironmentSubstA
655 #endif
656
657 #if !defined(_WIN64)
658 #include <poppack.h>
659 #endif
660
661 #ifdef _MSC_VER
662 #pragma warning(pop)
663 #endif
664 #ifdef __cplusplus
665 }
666 #endif
667 #endif