Reactos
at master 875 lines 21 kB view raw
1#ifndef _SHELLAPI_H 2#define _SHELLAPI_H 3 4#ifdef __cplusplus 5extern "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#if (NTDDI_VERSION < NTDDI_VISTA) || defined(__REACTOS__) 30#define SEE_MASK_ICON 0x00000010 31#endif 32#define SEE_MASK_HOTKEY 0x00000020 33#define SEE_MASK_NOCLOSEPROCESS 0x00000040 34#define SEE_MASK_CONNECTNETDRV 0x00000080 35#define SEE_MASK_NOASYNC 0x00000100 36#define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC 37#define SEE_MASK_DOENVSUBST 0x00000200 38#define SEE_MASK_FLAG_NO_UI 0x00000400 39// 0x00001000 is undocumented. 40#define SEE_MASK_UNICODE 0x00004000 41#define SEE_MASK_NO_CONSOLE 0x00008000 42// 0x00010000 .. 0x00080000 are undocumented. 43#define SEE_MASK_ASYNCOK 0x00100000 44#if (NTDDI_VERSION >= NTDDI_WIN2K) 45#define SEE_MASK_HMONITOR 0x00200000 46#endif 47#if (NTDDI_VERSION >= NTDDI_WINXPSP1) 48#define SEE_MASK_NOZONECHECKS 0x00800000 49#endif 50#if (NTDDI_VERSION >= NTDDI_WIN2K) 51#define SEE_MASK_NOQUERYCLASSSTORE 0x01000000 52#define SEE_MASK_WAITFORINPUTIDLE 0x02000000 53#endif 54#if (NTDDI_VERSION >= NTDDI_WINXP) 55#define SEE_MASK_FLAG_LOG_USAGE 0x04000000 56#endif 57#if (NTDDI_VERSION >= NTDDI_VISTA) 58#define SEE_MASK_FLAG_HINST_IS_SITE 0x08000000 59#endif 60 61#define ABM_NEW 0 62#define ABM_REMOVE 1 63#define ABM_QUERYPOS 2 64#define ABM_SETPOS 3 65#define ABM_GETSTATE 4 66#define ABM_GETTASKBARPOS 5 67#define ABM_ACTIVATE 6 68#define ABM_GETAUTOHIDEBAR 7 69#define ABM_SETAUTOHIDEBAR 8 70#define ABM_WINDOWPOSCHANGED 9 71#define ABM_SETSTATE 10 72#define ABN_STATECHANGE 0 73#define ABN_POSCHANGED 1 74#define ABN_FULLSCREENAPP 2 75#define ABN_WINDOWARRANGE 3 76 77#if (_WIN32_IE >= 0x0500) 78#define NIN_SELECT (WM_USER + 0) 79#define NINF_KEY 1 80#define NIN_KEYSELECT (NIN_SELECT | NINF_KEY) 81#endif 82 83#if (_WIN32_IE >= 0x0501) 84#define NIN_BALLOONSHOW (WM_USER + 2) 85#define NIN_BALLOONHIDE (WM_USER + 3) 86#define NIN_BALLOONTIMEOUT (WM_USER + 4) 87#define NIN_BALLOONUSERCLICK (WM_USER + 5) 88#endif 89#if (NTDDI_VERSION >= NTDDI_VISTA) 90#define NIN_POPUPOPEN (WM_USER + 6) 91#define NIN_POPUPCLOSE (WM_USER + 7) 92#endif 93 94#define NIM_ADD 0 95#define NIM_MODIFY 1 96#define NIM_DELETE 2 97#if _WIN32_IE >= 0x0500 98#define NIM_SETFOCUS 3 99#define NIM_SETVERSION 4 100#define NOTIFYICON_VERSION 3 101#if (NTDDI_VERSION >= NTDDI_VISTA) 102#define NOTIFYICON_VERSION_4 4 103#endif 104#endif 105#define NIF_MESSAGE 1 106#define NIF_ICON 2 107#define NIF_TIP 4 108#if _WIN32_IE >= 0x0500 109#define NIF_STATE 8 110#define NIF_INFO 16 111#define NIS_HIDDEN 1 112#define NIS_SHAREDICON 2 113#define NIIF_NONE 0 114#define NIIF_INFO 1 115#define NIIF_WARNING 2 116#define NIIF_ERROR 3 117#define NIIF_USER 4 118#if _WIN32_IE >= 0x0600 119#define NIF_GUID 32 120#define NIIF_ICON_MASK 0xf 121#define NIIF_NOSOUND 0x10 122#endif /* _WIN32_IE >= 0x0600 */ 123#endif /* _WIN32_IE >= 0x0500 */ 124 125#define SE_ERR_FNF 2 126#define SE_ERR_PNF 3 127#define SE_ERR_ACCESSDENIED 5 128#define SE_ERR_OOM 8 129#define SE_ERR_DLLNOTFOUND 32 130#define SE_ERR_SHARE 26 131#define SE_ERR_ASSOCINCOMPLETE 27 132#define SE_ERR_DDETIMEOUT 28 133#define SE_ERR_DDEFAIL 29 134#define SE_ERR_DDEBUSY 30 135#define SE_ERR_NOASSOC 31 136#define FO_MOVE 1 137#define FO_COPY 2 138#define FO_DELETE 3 139#define FO_RENAME 4 140 141#define FOF_MULTIDESTFILES 0x0001 142#define FOF_CONFIRMMOUSE 0x0002 143#define FOF_SILENT 0x0004 144#define FOF_RENAMEONCOLLISION 0x0008 145#define FOF_NOCONFIRMATION 0x0010 146#define FOF_WANTMAPPINGHANDLE 0x0020 147#define FOF_ALLOWUNDO 0x0040 148#define FOF_FILESONLY 0x0080 149#define FOF_SIMPLEPROGRESS 0x0100 150#define FOF_NOCONFIRMMKDIR 0x0200 151#define FOF_NOERRORUI 0x0400 152#define FOF_NOCOPYSECURITYATTRIBS 0x0800 153#define FOF_NORECURSION 0x1000 /* don't do recursion into directories */ 154#define FOF_NO_CONNECTED_ELEMENTS 0x2000 /* don't do connected files */ 155#define FOF_WANTNUKEWARNING 0x4000 /* during delete operation, warn if delete instead 156 of recycling (even if FOF_NOCONFIRMATION) */ 157#define FOF_NORECURSEREPARSE 0x8000 /* don't do recursion into reparse points */ 158 159#define PO_DELETE 19 160#define PO_RENAME 20 161#define PO_PORTCHANGE 32 162#define PO_REN_PORT 52 163#define SHGFI_ADDOVERLAYS 32 164#define SHGFI_OVERLAYINDEX 64 165#define SHGFI_ICON 256 166#define SHGSI_ICON SHGFI_ICON 167#define SHGFI_DISPLAYNAME 512 168#define SHGFI_TYPENAME 1024 169#define SHGFI_ATTRIBUTES 2048 170#define SHGFI_ICONLOCATION 4096 171#define SHGFI_EXETYPE 8192 172#define SHGFI_SYSICONINDEX 16384 173#define SHGFI_LINKOVERLAY 32768 174#define SHGFI_SELECTED 65536 175#define SHGFI_ATTR_SPECIFIED 131072 176#define SHGFI_LARGEICON 0 177#define SHGFI_SMALLICON 1 178#define SHGSI_SMALLICON SHGFI_SMALLICON 179#define SHGFI_OPENICON 2 180#define SHGFI_SHELLICONSIZE 4 181#define SHGFI_PIDL 8 182#define SHGFI_USEFILEATTRIBUTES 16 183 184#if (NTDDI_VERSION >= NTDDI_WINXP) 185#define SHIL_LARGE 0x0 186#define SHIL_SMALL 0x1 187#define SHIL_EXTRALARGE 0x2 188#define SHIL_SYSSMALL 0x3 189#if (NTDDI_VERSION >= NTDDI_VISTA) 190#define SHIL_JUMBO 0x4 191#define SHIL_LAST SHIL_JUMBO 192#else 193#define SHIL_LAST SHIL_SYSSMALL 194#endif 195#endif 196 197typedef struct _SHCREATEPROCESSINFOW 198{ 199 DWORD cbSize; 200 ULONG fMask; 201 HWND hwnd; 202 LPCWSTR pszFile; 203 LPCWSTR pszParameters; 204 LPCWSTR pszCurrentDirectory; 205 IN HANDLE hUserToken; 206 IN LPSECURITY_ATTRIBUTES lpProcessAttributes; 207 IN LPSECURITY_ATTRIBUTES lpThreadAttributes; 208 IN BOOL bInheritHandles; 209 IN DWORD dwCreationFlags; 210 IN LPSTARTUPINFOW lpStartupInfo; 211 OUT LPPROCESS_INFORMATION lpProcessInformation; 212} SHCREATEPROCESSINFOW, *PSHCREATEPROCESSINFOW; 213 214typedef WORD FILEOP_FLAGS; 215typedef WORD PRINTEROP_FLAGS; 216 217typedef struct _AppBarData { 218 DWORD cbSize; 219 HWND hWnd; 220 UINT uCallbackMessage; 221 UINT uEdge; 222 RECT rc; 223 LPARAM lParam; 224} APPBARDATA,*PAPPBARDATA; 225DECLARE_HANDLE(HDROP); 226 227typedef struct _NOTIFYICONDATAA { 228 DWORD cbSize; 229 HWND hWnd; 230 UINT uID; 231 UINT uFlags; 232 UINT uCallbackMessage; 233 HICON hIcon; 234#if (NTDDI_VERSION < NTDDI_WIN2K) 235 CHAR szTip[64]; 236#endif 237#if (NTDDI_VERSION >= NTDDI_WIN2K) 238 CHAR szTip[128]; 239 DWORD dwState; 240 DWORD dwStateMask; 241 CHAR szInfo[256]; 242 _ANONYMOUS_UNION union { 243 UINT uTimeout; 244 UINT uVersion; 245 } DUMMYUNIONNAME; 246 CHAR szInfoTitle[64]; 247 DWORD dwInfoFlags; 248#endif 249#if (NTDDI_VERSION >= NTDDI_WINXP) 250 GUID guidItem; 251#endif 252#if (NTDDI_VERSION >= NTDDI_VISTA) 253 HICON hBalloonIcon; 254#endif 255} NOTIFYICONDATAA,*PNOTIFYICONDATAA; 256 257typedef struct _NOTIFYICONDATAW { 258 DWORD cbSize; 259 HWND hWnd; 260 UINT uID; 261 UINT uFlags; 262 UINT uCallbackMessage; 263 HICON hIcon; 264#if (NTDDI_VERSION < NTDDI_WIN2K) 265 WCHAR szTip[64]; 266#endif 267#if (NTDDI_VERSION >= NTDDI_WIN2K) 268 WCHAR szTip[128]; 269 DWORD dwState; 270 DWORD dwStateMask; 271 WCHAR szInfo[256]; 272 _ANONYMOUS_UNION union { 273 UINT uTimeout; 274 UINT uVersion; 275 } DUMMYUNIONNAME; 276 WCHAR szInfoTitle[64]; 277 DWORD dwInfoFlags; 278#endif 279#if (NTDDI_VERSION >= NTDDI_WINXP) 280 GUID guidItem; 281#endif 282#if (NTDDI_VERSION >= NTDDI_VISTA) 283 HICON hBalloonIcon; 284#endif 285} NOTIFYICONDATAW,*PNOTIFYICONDATAW; 286 287#define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAA, szTip[64]) 288#define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET(NOTIFYICONDATAW, szTip[64]) 289#define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAA, guidItem) 290#define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET(NOTIFYICONDATAW, guidItem) 291#define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAA, hBalloonIcon) 292#define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET(NOTIFYICONDATAW, hBalloonIcon) 293 294#if WINVER >= 0x400 295typedef struct _DRAGINFOA { 296 UINT uSize; 297 POINT pt; 298 BOOL fNC; 299 LPSTR lpFileList; 300 DWORD grfKeyState; 301} DRAGINFOA,*LPDRAGINFOA; 302typedef struct _DRAGINFOW { 303 UINT uSize; 304 POINT pt; 305 BOOL fNC; 306 LPWSTR lpFileList; 307 DWORD grfKeyState; 308} DRAGINFOW,*LPDRAGINFOW; 309#endif 310 311typedef struct _SHELLEXECUTEINFOA { 312 DWORD cbSize; 313 ULONG fMask; 314 HWND hwnd; 315 LPCSTR lpVerb; 316 LPCSTR lpFile; 317 LPCSTR lpParameters; 318 LPCSTR lpDirectory; 319 int nShow; 320 HINSTANCE hInstApp; 321 /* Optional fields */ 322 PVOID lpIDList; 323 LPCSTR lpClass; 324 HKEY hkeyClass; 325 DWORD dwHotKey; 326 _ANONYMOUS_UNION union { 327 HANDLE hIcon; 328#if (NTDDI_VERSION >= NTDDI_WIN2K) 329 HANDLE hMonitor; 330#endif 331 } DUMMYUNIONNAME; 332 HANDLE hProcess; 333} SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA; 334typedef struct _SHELLEXECUTEINFOW { 335 DWORD cbSize; 336 ULONG fMask; 337 HWND hwnd; 338 LPCWSTR lpVerb; 339 LPCWSTR lpFile; 340 LPCWSTR lpParameters; 341 LPCWSTR lpDirectory; 342 int nShow; 343 HINSTANCE hInstApp; 344 /* Optional fields */ 345 PVOID lpIDList; 346 LPCWSTR lpClass; 347 HKEY hkeyClass; 348 DWORD dwHotKey; 349 _ANONYMOUS_UNION union { 350 HANDLE hIcon; 351#if (NTDDI_VERSION >= NTDDI_WIN2K) 352 HANDLE hMonitor; 353#endif 354 } DUMMYUNIONNAME; 355 HANDLE hProcess; 356} SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW; 357typedef struct _SHFILEOPSTRUCTA { 358 HWND hwnd; 359 UINT wFunc; 360 LPCSTR pFrom; 361 LPCSTR pTo; 362 FILEOP_FLAGS fFlags; 363 BOOL fAnyOperationsAborted; 364 PVOID hNameMappings; 365 LPCSTR lpszProgressTitle; 366} SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA; 367typedef struct _SHFILEOPSTRUCTW { 368 HWND hwnd; 369 UINT wFunc; 370 LPCWSTR pFrom; 371 LPCWSTR pTo; 372 FILEOP_FLAGS fFlags; 373 BOOL fAnyOperationsAborted; 374 PVOID hNameMappings; 375 LPCWSTR lpszProgressTitle; 376} SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW; 377typedef struct _SHFILEINFOA { 378 HICON hIcon; 379 int iIcon; 380 DWORD dwAttributes; 381 CHAR szDisplayName[MAX_PATH]; 382 CHAR szTypeName[80]; 383} SHFILEINFOA; 384typedef struct _SHFILEINFOW { 385 HICON hIcon; 386 int iIcon; 387 DWORD dwAttributes; 388 WCHAR szDisplayName[MAX_PATH]; 389 WCHAR szTypeName[80]; 390} SHFILEINFOW; 391typedef struct _SHQUERYRBINFO { 392 DWORD cbSize; 393 __int64 i64Size; 394 __int64 i64NumItems; 395} SHQUERYRBINFO, *LPSHQUERYRBINFO; 396typedef struct _SHNAMEMAPPINGA { 397 LPSTR pszOldPath; 398 LPSTR pszNewPath; 399 int cchOldPath; 400 int cchNewPath; 401} SHNAMEMAPPINGA, *LPSHNAMEMAPPINGA; 402typedef struct _SHNAMEMAPPINGW { 403 LPWSTR pszOldPath; 404 LPWSTR pszNewPath; 405 int cchOldPath; 406 int cchNewPath; 407} SHNAMEMAPPINGW, *LPSHNAMEMAPPINGW; 408 409#define SHERB_NOCONFIRMATION 0x1 410#define SHERB_NOPROGRESSUI 0x2 411#define SHERB_NOSOUND 0x4 412 413/****************************************** 414 * Links 415 */ 416 417#define SHGNLI_PIDL 0x01 418#define SHGNLI_PREFIXNAME 0x02 419#define SHGNLI_NOUNIQUE 0x04 420#define SHGNLI_NOLNK 0x08 421 422LPWSTR * WINAPI CommandLineToArgvW(_In_ LPCWSTR, _Out_ int*); 423void WINAPI DragAcceptFiles(_In_ HWND, _In_ BOOL); 424void WINAPI DragFinish(_In_ HDROP); 425 426_Success_(return != 0) 427UINT 428WINAPI 429DragQueryFileA( 430 _In_ HDROP hDrop, 431 _In_ UINT iFile, 432 _Out_writes_opt_(cch) LPSTR lpszFile, 433 _In_ UINT cch); 434 435_Success_(return != 0) 436UINT 437WINAPI 438DragQueryFileW( 439 _In_ HDROP hDrop, 440 _In_ UINT iFile, 441 _Out_writes_opt_(cch) LPWSTR lpszFile, 442 _In_ UINT cch); 443 444BOOL WINAPI DragQueryPoint(_In_ HDROP, _Out_ LPPOINT); 445 446HICON 447WINAPI 448ExtractAssociatedIconA( 449 _Reserved_ HINSTANCE hInst, 450 _Inout_updates_(128) LPSTR pszIconPath, 451 _Inout_ WORD *piIcon); 452 453HICON 454WINAPI 455ExtractAssociatedIconW( 456 _Reserved_ HINSTANCE hInst, 457 _Inout_updates_(128) LPWSTR pszIconPath, 458 _Inout_ WORD *piIcon); 459 460HICON 461WINAPI 462ExtractIconA( 463 _Reserved_ HINSTANCE hInst, 464 _In_ LPCSTR pszExeFileName, 465 UINT nIconIndex); 466 467HICON 468WINAPI 469ExtractIconW( 470 _Reserved_ HINSTANCE hInst, 471 _In_ LPCWSTR pszExeFileName, 472 UINT nIconIndex); 473 474UINT 475WINAPI 476ExtractIconExA( 477 _In_ LPCSTR lpszFile, 478 _In_ int nIconIndex, 479 _Out_writes_opt_(nIcons) HICON *phiconLarge, 480 _Out_writes_opt_(nIcons) HICON *phiconSmall, 481 _In_ UINT nIcons); 482 483UINT 484WINAPI 485ExtractIconExW( 486 _In_ LPCWSTR lpszFile, 487 _In_ int nIconIndex, 488 _Out_writes_opt_(nIcons) HICON *phiconLarge, 489 _Out_writes_opt_(nIcons) HICON *phiconSmall, 490 _In_ UINT nIcons); 491 492_Success_(return > 32) 493HINSTANCE 494WINAPI 495FindExecutableA( 496 _In_ LPCSTR lpFile, 497 _In_opt_ LPCSTR lpDirectory, 498 _Out_writes_(MAX_PATH) LPSTR lpResult); 499 500_Success_(return > 32) 501HINSTANCE 502WINAPI 503FindExecutableW( 504 _In_ LPCWSTR lpFile, 505 _In_opt_ LPCWSTR lpDirectory, 506 _Out_writes_(MAX_PATH) LPWSTR lpResult); 507 508UINT_PTR 509WINAPI 510SHAppBarMessage( 511 _In_ DWORD dwMessage, 512 _Inout_ PAPPBARDATA pData); 513 514BOOL WINAPI Shell_NotifyIconA(_In_ DWORD, _In_ PNOTIFYICONDATAA); 515BOOL WINAPI Shell_NotifyIconW(_In_ DWORD, _In_ PNOTIFYICONDATAW); 516 517int 518WINAPI 519ShellAboutA( 520 _In_opt_ HWND hWnd, 521 _In_ LPCSTR szApp, 522 _In_opt_ LPCSTR szOtherStuff, 523 _In_opt_ HICON hIcon); 524 525int 526WINAPI 527ShellAboutW( 528 _In_opt_ HWND hWnd, 529 _In_ LPCWSTR szApp, 530 _In_opt_ LPCWSTR szOtherStuff, 531 _In_opt_ HICON hIcon); 532 533int 534WINAPIV 535ShellMessageBoxA( 536 _In_opt_ HINSTANCE hAppInst, 537 _In_opt_ HWND hWnd, 538 _In_ LPCSTR lpcText, 539 _In_opt_ LPCSTR lpcTitle, 540 _In_ UINT fuStyle, 541 ...); 542 543int 544WINAPIV 545ShellMessageBoxW( 546 _In_opt_ HINSTANCE hAppInst, 547 _In_opt_ HWND hWnd, 548 _In_ LPCWSTR lpcText, 549 _In_opt_ LPCWSTR lpcTitle, 550 _In_ UINT fuStyle, 551 ...); 552 553HINSTANCE 554WINAPI 555ShellExecuteA( 556 _In_opt_ HWND hwnd, 557 _In_opt_ LPCSTR lpOperation, 558 _In_ LPCSTR lpFile, 559 _In_opt_ LPCSTR lpParameters, 560 _In_opt_ LPCSTR lpDirectory, 561 _In_ INT nShowCmd); 562 563HINSTANCE 564WINAPI 565ShellExecuteW( 566 _In_opt_ HWND hwnd, 567 _In_opt_ LPCWSTR lpOperation, 568 _In_ LPCWSTR lpFile, 569 _In_opt_ LPCWSTR lpParameters, 570 _In_opt_ LPCWSTR lpDirectory, 571 _In_ INT nShowCmd); 572 573BOOL WINAPI ShellExecuteExA(_Inout_ LPSHELLEXECUTEINFOA); 574BOOL WINAPI ShellExecuteExW(_Inout_ LPSHELLEXECUTEINFOW); 575int WINAPI SHFileOperationA(_Inout_ LPSHFILEOPSTRUCTA); 576int WINAPI SHFileOperationW(_Inout_ LPSHFILEOPSTRUCTW); 577void WINAPI SHFreeNameMappings(_In_opt_ HANDLE); 578 579DWORD_PTR 580WINAPI 581SHGetFileInfoA( 582 _In_ LPCSTR pszPath, 583 DWORD dwFileAttributes, 584 _Inout_updates_bytes_opt_(cbFileInfo) SHFILEINFOA *psfi, 585 UINT cbFileInfo, 586 UINT uFlags); 587 588DWORD_PTR 589WINAPI 590SHGetFileInfoW( 591 _In_ LPCWSTR pszPath, 592 DWORD dwFileAttributes, 593 _Inout_updates_bytes_opt_(cbFileInfo) SHFILEINFOW *psfi, 594 UINT cbFileInfo, 595 UINT uFlags); 596 597_Success_(return != 0) 598BOOL 599WINAPI 600SHGetNewLinkInfoA( 601 _In_ LPCSTR pszLinkTo, 602 _In_ LPCSTR pszDir, 603 _Out_writes_(MAX_PATH) LPSTR pszName, 604 _Out_ BOOL *pfMustCopy, 605 _In_ UINT uFlags); 606 607_Success_(return != 0) 608BOOL 609WINAPI 610SHGetNewLinkInfoW( 611 _In_ LPCWSTR pszLinkTo, 612 _In_ LPCWSTR pszDir, 613 _Out_writes_(MAX_PATH) LPWSTR pszName, 614 _Out_ BOOL *pfMustCopy, 615 _In_ UINT uFlags); 616 617HRESULT 618WINAPI 619SHQueryRecycleBinA( 620 _In_opt_ LPCSTR pszRootPath, 621 _Inout_ LPSHQUERYRBINFO pSHQueryRBInfo); 622 623HRESULT 624WINAPI 625SHQueryRecycleBinW( 626 _In_opt_ LPCWSTR pszRootPath, 627 _Inout_ LPSHQUERYRBINFO pSHQueryRBInfo); 628 629HRESULT 630WINAPI 631SHEmptyRecycleBinA( 632 _In_opt_ HWND hwnd, 633 _In_opt_ LPCSTR pszRootPath, 634 DWORD dwFlags); 635 636HRESULT 637WINAPI 638SHEmptyRecycleBinW( 639 _In_opt_ HWND hwnd, 640 _In_opt_ LPCWSTR pszRootPath, 641 DWORD dwFlags); 642 643BOOL WINAPI SHCreateProcessAsUserW(_Inout_ PSHCREATEPROCESSINFOW); 644 645DWORD 646WINAPI 647DoEnvironmentSubstA( 648 _Inout_updates_(cchSrc) LPSTR pszSrc, 649 UINT cchSrc); 650 651DWORD 652WINAPI 653DoEnvironmentSubstW( 654 _Inout_updates_(cchSrc) LPWSTR pszSrc, 655 UINT cchSrc); 656 657HRESULT WINAPI 658SHSetUnreadMailCountW( 659 _In_ PCWSTR pszMailAddress, 660 _In_ DWORD dwCount, 661 _In_ PCWSTR pszShellExecuteCommand); 662 663#if (_WIN32_IE >= 0x0601) 664BOOL 665WINAPI 666SHTestTokenMembership( 667 _In_opt_ HANDLE hToken, 668 _In_ ULONG ulRID); 669#endif 670 671HRESULT WINAPI 672SHEnumerateUnreadMailAccountsW( 673 _In_opt_ HKEY hKeyUser, 674 _In_ DWORD dwIndex, 675 _Out_writes_(cchMailAddress) PWSTR pszMailAddress, 676 _In_ INT cchMailAddress); 677 678HRESULT WINAPI 679SHGetUnreadMailCountW( 680 _In_opt_ HKEY hKeyUser, 681 _In_opt_ PCWSTR pszMailAddress, 682 _Out_opt_ PDWORD pdwCount, 683 _Inout_opt_ PFILETIME pFileTime, 684 _Out_writes_opt_(cchShellExecuteCommand) PWSTR pszShellExecuteCommand, 685 _In_ INT cchShellExecuteCommand); 686 687#ifdef UNICODE 688#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAW_V1_SIZE 689#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAW_V2_SIZE 690#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAW_V3_SIZE 691typedef NOTIFYICONDATAW NOTIFYICONDATA,*PNOTIFYICONDATA; 692typedef DRAGINFOW DRAGINFO,*LPDRAGINFO; 693typedef SHELLEXECUTEINFOW SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO; 694typedef SHFILEOPSTRUCTW SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT; 695typedef SHFILEINFOW SHFILEINFO; 696typedef SHNAMEMAPPINGW SHNAMEMAPPING; 697typedef LPSHNAMEMAPPINGW LPSHNAMEMAPPING; 698#define DragQueryFile DragQueryFileW 699#define ExtractAssociatedIcon ExtractAssociatedIconW 700#define ExtractIcon ExtractIconW 701#define ExtractIconEx ExtractIconExW 702#define FindExecutable FindExecutableW 703#define Shell_NotifyIcon Shell_NotifyIconW 704#define ShellAbout ShellAboutW 705#define ShellExecute ShellExecuteW 706#define ShellExecuteEx ShellExecuteExW 707#define ShellMessageBox ShellMessageBoxW 708#define SHFileOperation SHFileOperationW 709#define SHGetFileInfo SHGetFileInfoW 710#define SHQueryRecycleBin SHQueryRecycleBinW 711#define SHEmptyRecycleBin SHEmptyRecycleBinW 712#define SHGetNewLinkInfo SHGetNewLinkInfoW 713#define DoEnvironmentSubst DoEnvironmentSubstW 714 715#else 716#define NOTIFYICONDATA_V1_SIZE NOTIFYICONDATAA_V1_SIZE 717#define NOTIFYICONDATA_V2_SIZE NOTIFYICONDATAA_V2_SIZE 718#define NOTIFYICONDATA_V3_SIZE NOTIFYICONDATAA_V3_SIZE 719typedef NOTIFYICONDATAA NOTIFYICONDATA,*PNOTIFYICONDATA; 720typedef DRAGINFOA DRAGINFO,*LPDRAGINFO; 721typedef SHELLEXECUTEINFOA SHELLEXECUTEINFO,*LPSHELLEXECUTEINFO; 722typedef SHFILEOPSTRUCTA SHFILEOPSTRUCT,*LPSHFILEOPSTRUCT; 723typedef SHFILEINFOA SHFILEINFO; 724typedef SHNAMEMAPPINGA SHNAMEMAPPING; 725typedef LPSHNAMEMAPPINGA LPSHNAMEMAPPING; 726#define DragQueryFile DragQueryFileA 727#define ExtractAssociatedIcon ExtractAssociatedIconA 728#define ExtractIcon ExtractIconA 729#define ExtractIconEx ExtractIconExA 730#define FindExecutable FindExecutableA 731#define Shell_NotifyIcon Shell_NotifyIconA 732#define ShellAbout ShellAboutA 733#define ShellExecute ShellExecuteA 734#define ShellExecuteEx ShellExecuteExA 735#define ShellMessageBox ShellMessageBoxA 736#define SHFileOperation SHFileOperationA 737#define SHGetFileInfo SHGetFileInfoA 738#define SHQueryRecycleBin SHQueryRecycleBinA 739#define SHEmptyRecycleBin SHEmptyRecycleBinA 740#define SHGetNewLinkInfo SHGetNewLinkInfoA 741#define DoEnvironmentSubst DoEnvironmentSubstA 742#endif 743 744#if (NTDDI_VERSION >= NTDDI_VISTA) 745 746typedef struct _SHSTOCKICONINFO { 747 DWORD cbSize; 748 HICON hIcon; 749 int iSysImageIndex; 750 int iIcon; 751 WCHAR szPath[MAX_PATH]; 752} SHSTOCKICONINFO; 753 754#define SHGSI_ICONLOCATION 0 755 756typedef enum SHSTOCKICONID 757{ 758 SIID_INVALID=-1, 759 SIID_DOCNOASSOC, 760 SIID_DOCASSOC, 761 SIID_APPLICATION, 762 SIID_FOLDER, 763 SIID_FOLDEROPEN, 764 SIID_DRIVE525, 765 SIID_DRIVE35, 766 SIID_DRIVERREMOVE, 767 SIID_DRIVERFIXED, 768 SIID_DRIVERNET, 769 SIID_DRIVERNETDISABLE, 770 SIID_DRIVERCD, 771 SIID_DRIVERRAM, 772 SIID_WORLD, 773 /* Missing: 14 */ 774 SIID_SERVER = 15, 775 SIID_PRINTER, 776 SIID_MYNETWORK, 777 /* Missing: 18 - 21 */ 778 SIID_FIND = 22, 779 SIID_HELP, 780 /* Missing: 24 - 27 */ 781 SIID_SHARE = 28, 782 SIID_LINK, 783 SIID_SLOWFILE, 784 SIID_RECYCLER, 785 SIID_RECYCLERFULL, 786 /* Missing: 33 - 39 */ 787 SIID_MEDIACDAUDIO = 40, 788 /* Missing: 41 - 46 */ 789 SIID_LOCK = 47, 790 /* Missing: 48 */ 791 SIID_AUTOLIST = 49, 792 SIID_PRINTERNET, 793 SIID_SERVERSHARE, 794 SIID_PRINTERFAX, 795 SIID_PRINTERFAXNET, 796 SIID_PRINTERFILE, 797 SIID_STACK, 798 SIID_MEDIASVCD, 799 SIID_STUFFEDFOLDER, 800 SIID_DRIVEUNKNOWN, 801 SIID_DRIVEDVD, 802 SIID_MEDIADVD, 803 SIID_MEDIADVDRAM, 804 SIID_MEDIADVDRW, 805 SIID_MEDIADVDR, 806 SIID_MEDIADVDROM, 807 SIID_MEDIACDAUDIOPLUS, 808 SIID_MEDIACDRW, 809 SIID_MEDIACDR, 810 SIID_MEDIACDBURN, 811 SIID_MEDIABLANKCD, 812 SIID_MEDIACDROM, 813 SIID_AUDIOFILES, 814 SIID_IMAGEFILES, 815 SIID_VIDEOFILES, 816 SIID_MIXEDFILES, 817 SIID_FOLDERBACK, 818 SIID_FOLDERFRONT, 819 SIID_SHIELD, 820 SIID_WARNING, 821 SIID_INFO, 822 SIID_ERROR, 823 SIID_KEY, 824 SIID_SOFTWARE, 825 SIID_RENAME, 826 SIID_DELETE, 827 SIID_MEDIAAUDIODVD, 828 SIID_MEDIAMOVIEDVD, 829 SIID_MEDIAENHANCEDCD, 830 SIID_MEDIAENHANCEDDVD, 831 SIID_MEDIAHDDVD, 832 SIID_MEDIABLUERAY, 833 SIID_MEDIAVCD, 834 SIID_MEDIADVDPLUSR, 835 SIID_MEDIADVDPLUSRW, 836 SIID_DESKTOPPC, 837 SIID_MOBILEPC, 838 SIID_USERS, 839 SIID_MEDIASMARTMEDIA, 840 SIID_MEDIACOMPACTFLASH, 841 SIID_DEVICECELLPHONE, 842 SIID_DEVICECAMERA, 843 SIID_DEVICEVIDEOCAMERA, 844 SIID_DEVICEAUDIOPLAYER, 845 SIID_NETWORKCONNECT, 846 SIID_INTERNET, 847 SIID_ZIPFILE, 848 SIID_SETTINGS, 849 /* Missing: 107 - 131 */ 850 SIID_DRIVEHDDVD = 132, 851 SIID_DRIVEBD, 852 SIID_MEDIAHDDVDROM, 853 SIID_MEDIAHDDVDR, 854 SIID_MEDIAHDDVDRAM, 855 SIID_MEDIABDROM, 856 SIID_MEDIABDR, 857 SIID_MEDIABDRE, 858 SIID_CLUSTEREDDRIVE, 859 /* Missing: 141 - 174 */ 860 SIID_MAX_ICONS = 175 861} SHSTOCKICONID; 862 863#endif /* (NTDDI_VERSION >= NTDDI_VISTA) */ 864 865#if !defined(_WIN64) 866#include <poppack.h> 867#endif 868 869#ifdef _MSC_VER 870#pragma warning(pop) 871#endif 872#ifdef __cplusplus 873} 874#endif 875#endif