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