1/* 2 * COM interfaces for shell objects 3 * 4 * Copyright (C) 1999 Juergen Schmied 5 * Copyright (C) 2003 Alexandre Julliard 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public 9 * License as published by the Free Software Foundation; either 10 * version 2.1 of the License, or (at your option) any later version. 11 * 12 * This library is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 15 * Lesser General Public License for more details. 16 * 17 * You should have received a copy of the GNU Lesser General Public 18 * License along with this library; if not, write to the Free Software 19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 20 */ 21 22import "objidl.idl"; 23import "oleidl.idl"; 24import "oaidl.idl"; 25import "docobj.idl"; 26import "shtypes.idl"; 27import "servprov.idl"; 28import "comcat.idl"; 29import "propidl.idl"; 30/* FIXME: import "prsht.idl";*/ 31import "msxml.idl"; 32import "wtypes.idl"; 33import "propsys.idl"; 34import "objectarray.idl"; 35/* FIXME: import "structuredquery.idl"; */ 36 37cpp_quote("/* FIXME: #include <sherrors.h> */") 38 39cpp_quote("#ifdef WINE_NO_UNICODE_MACROS") 40cpp_quote("#undef PlaySound") 41cpp_quote("#endif") 42 43 44/***************************************************************************** 45 * IPersistFolder interface 46 */ 47[ 48 object, 49 uuid(000214ea-0000-0000-c000-000000000046), 50 pointer_default(unique) 51] 52interface IPersistFolder : IPersist 53{ 54 typedef IPersistFolder *LPPERSISTFOLDER; 55 56 HRESULT Initialize( [in] PCIDLIST_ABSOLUTE pidl ); 57} 58 59 60/***************************************************************************** 61 * IPersistFolder2 interface 62 */ 63[ 64 object, 65 uuid(1ac3d9f0-175c-11d1-95be-00609797ea4f), 66 pointer_default(unique) 67] 68interface IPersistFolder2 : IPersistFolder 69{ 70 typedef IPersistFolder2 *LPPERSISTFOLDER2; 71 72 HRESULT GetCurFolder( [out] PIDLIST_ABSOLUTE *ppidl ); 73} 74 75 76/***************************************************************************** 77 * IPersistIDList interface 78 */ 79[ 80 object, 81 uuid(1079acfc-29bd-11d3-8e0d-00c04f6837d5), 82 pointer_default(unique) 83] 84interface IPersistIDList : IPersist 85{ 86 HRESULT SetIDList( [in] PCIDLIST_ABSOLUTE pidl ); 87 HRESULT GetIDList( [out] PIDLIST_ABSOLUTE *ppidl ); 88} 89 90 91/***************************************************************************** 92 * IEnumIDList interface 93 */ 94[ 95 object, 96 uuid(000214f2-0000-0000-c000-000000000046), 97 pointer_default(unique) 98] 99interface IEnumIDList : IUnknown 100{ 101 typedef IEnumIDList *LPENUMIDLIST; 102 103 HRESULT Next( 104 [in] ULONG celt, 105 [out, size_is(celt), length_is(*pceltFetched)] LPITEMIDLIST *rgelt, 106 [out] ULONG *pceltFetched); 107 108 HRESULT Skip( [in] ULONG celt ); 109 HRESULT Reset(); 110 HRESULT Clone( [out] IEnumIDList **ppenum ); 111} 112 113/***************************************************************************** 114 * IShellPropSheetExt interface 115 */ 116cpp_quote("#if 0") 117 typedef LPARAM LPFNSVADDPROPSHEETPAGE; 118cpp_quote("#else") 119cpp_quote("#include <prsht.h>") 120cpp_quote("typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;") 121cpp_quote("#endif") 122 123[ 124 object, 125 uuid(000214E9-0000-0000-C000-000000000046), 126 pointer_default(unique), 127 local 128] 129interface IShellPropSheetExt : IUnknown 130{ 131 enum tagSHELLPROPSHEETEXTPAGEID { 132 EXPPS_FILETYPES = 0x1 133 }; 134 135 typedef UINT EXPPS; 136 137 HRESULT AddPages( 138 [in] LPFNSVADDPROPSHEETPAGE pfnAddPage, 139 [in] LPARAM lParam); 140 HRESULT ReplacePage( 141 [in] EXPPS uPageID, 142 [in] LPFNSVADDPROPSHEETPAGE pfnReplaceWith, 143 [in] LPARAM lParam); 144} 145typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT; 146 147/***************************************************************************** 148 * IShellFolder interface 149 */ 150[ 151 object, 152 uuid(000214e6-0000-0000-c000-000000000046), 153 pointer_default(unique) 154] 155interface IShellFolder : IUnknown 156{ 157 typedef IShellFolder * LPSHELLFOLDER; 158 159 typedef enum tagSHGDN 160 { 161 SHGDN_NORMAL = 0, 162 SHGDN_INFOLDER = 1, 163 SHGDN_FOREDITING = 0x1000, 164 SHGDN_INCLUDE_NONFILESYS = 0x2000, 165 SHGDN_FORADDRESSBAR = 0x4000, 166 SHGDN_FORPARSING = 0x8000 167 } SHGNO; 168 169 typedef DWORD SHGDNF; 170 171 enum tagSHCONTF 172 { 173 SHCONTF_FOLDERS = 32, 174 SHCONTF_NONFOLDERS = 64, 175 SHCONTF_INCLUDEHIDDEN = 128, 176 SHCONTF_INIT_ON_FIRST_NEXT = 256, 177 SHCONTF_NETPRINTERSRCH = 512, 178 SHCONTF_SHAREABLE = 1024, 179 SHCONTF_STORAGE = 2048, 180 SHCONTF_NAVIGATION_ENUM = 0x01000, 181 SHCONTF_FASTITEMS = 0x02000, 182 SHCONTF_FLATLIST = 0x04000, 183 SHCONTF_ENABLE_ASYNC = 0x08000, 184 SHCONTF_INCLUDESUPERHIDDEN = 0x10000 185 }; 186 187 typedef DWORD SHCONTF; 188 189 cpp_quote("#define SFGAO_CANCOPY DROPEFFECT_COPY") 190 cpp_quote("#define SFGAO_CANMOVE DROPEFFECT_MOVE") 191 cpp_quote("#define SFGAO_CANLINK DROPEFFECT_LINK") 192 cpp_quote("#define SFGAO_STORAGE 0x00000008L") 193 cpp_quote("#define SFGAO_CANRENAME 0x00000010L") 194 cpp_quote("#define SFGAO_CANDELETE 0x00000020L") 195 cpp_quote("#define SFGAO_HASPROPSHEET 0x00000040L") 196 cpp_quote("#define SFGAO_DROPTARGET 0x00000100L") 197 cpp_quote("#define SFGAO_CAPABILITYMASK 0x00000177L") 198 cpp_quote("#define SFGAO_ENCRYPTED 0x00002000L") 199 cpp_quote("#define SFGAO_ISSLOW 0x00004000L") 200 cpp_quote("#define SFGAO_GHOSTED 0x00008000L") 201 cpp_quote("#define SFGAO_LINK 0x00010000L") 202 cpp_quote("#define SFGAO_SHARE 0x00020000L") 203 cpp_quote("#define SFGAO_READONLY 0x00040000L") 204 cpp_quote("#define SFGAO_HIDDEN 0x00080000L") 205 cpp_quote("#define SFGAO_DISPLAYATTRMASK 0x000FC000L") 206 cpp_quote("#define SFGAO_FILESYSANCESTOR 0x10000000L") 207 cpp_quote("#define SFGAO_FOLDER 0x20000000L") 208 cpp_quote("#define SFGAO_FILESYSTEM 0x40000000L") 209 cpp_quote("#define SFGAO_HASSUBFOLDER 0x80000000L") 210 cpp_quote("#define SFGAO_CONTENTSMASK 0x80000000L") 211 cpp_quote("#define SFGAO_VALIDATE 0x01000000L") 212 cpp_quote("#define SFGAO_REMOVABLE 0x02000000L") 213 cpp_quote("#define SFGAO_COMPRESSED 0x04000000L") 214 cpp_quote("#define SFGAO_BROWSABLE 0x08000000L") 215 cpp_quote("#define SFGAO_NONENUMERATED 0x00100000L") 216 cpp_quote("#define SFGAO_NEWCONTENT 0x00200000L") 217 cpp_quote("#define SFGAO_STREAM 0x00400000L") 218 cpp_quote("#define SFGAO_STORAGEANCESTOR 0x00800000L") 219 220 typedef ULONG SFGAOF; 221 222 HRESULT ParseDisplayName( 223 [in] HWND hwndOwner, 224 [in] LPBC pbcReserved, 225 [in, string] LPOLESTR lpszDisplayName, 226 [out] ULONG *pchEaten, 227 [out] PIDLIST_RELATIVE *ppidl, 228 [in, out, unique] ULONG *pdwAttributes); 229 230 HRESULT EnumObjects( 231 [in] HWND hwndOwner, 232 [in] SHCONTF grfFlags, 233 [out] IEnumIDList **ppenumIDList); 234 235 HRESULT BindToObject( 236 [in] PCUIDLIST_RELATIVE pidl, 237 [in] LPBC pbcReserved, 238 [in] REFIID riid, 239 [out, iid_is(riid)] void **ppvOut); 240 241 HRESULT BindToStorage( 242 [in] PCUIDLIST_RELATIVE pidl, 243 [in] LPBC pbcReserved, 244 [in] REFIID riid, 245 [out, iid_is(riid)] void **ppvObj); 246 247 HRESULT CompareIDs( 248 [in] LPARAM lParam, 249 [in] PCUIDLIST_RELATIVE pidl1, 250 [in] PCUIDLIST_RELATIVE pidl2); 251 252 HRESULT CreateViewObject( 253 [in] HWND hwndOwner, 254 [in] REFIID riid, 255 [out, iid_is(riid)] void **ppvOut); 256 257 HRESULT GetAttributesOf( 258 [in] UINT cidl, 259 [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, 260 [in, out] SFGAOF *rgfInOut); 261 262 HRESULT GetUIObjectOf( 263 [in] HWND hwndOwner, 264 [in] UINT cidl, 265 [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, 266 [in] REFIID riid, 267 [in, out, unique] UINT *prgfInOut, 268 [out, iid_is(riid)] void **ppvOut); 269 270 HRESULT GetDisplayNameOf( 271 [in] PCUITEMID_CHILD pidl, 272 [in] SHGDNF uFlags, 273 [out] STRRET *lpName); 274 275 HRESULT SetNameOf( 276 [in] HWND hwnd, 277 [in] PCUITEMID_CHILD pidl, 278 [in, string] LPCOLESTR lpszName, 279 [in] SHGDNF uFlags, 280 [out] PITEMID_CHILD *ppidlOut); 281} 282 283 284/***************************************************************************** 285 * IEnumExtraSearch interface 286 */ 287[ 288 object, 289 uuid(0e700be1-9db6-11d1-a1ce-00c04fd75d13), 290 pointer_default(unique) 291] 292interface IEnumExtraSearch : IUnknown 293{ 294 typedef IEnumExtraSearch *LPENUMEXTRASEARCH; 295 296 typedef struct 297 { 298 GUID guidSearch; 299 WCHAR wszFriendlyName[80]; 300 /* 301 *WCHAR wszMenuText[80]; 302 *WCHAR wszHelpText[MAX_PATH]; 303 */ 304 WCHAR wszUrl[2084]; 305 /* 306 *WCHAR wszIcon[MAX_PATH+10]; 307 *WCHAR wszGreyIcon[MAX_PATH+10]; 308 *WCHAR wszClrIcon[MAX_PATH+10]; 309 */ 310 } EXTRASEARCH, *LPEXTRASEARCH; 311 312 HRESULT Next( 313 [in] ULONG celt, 314 [out, size_is(celt), length_is(*pceltFetched)] EXTRASEARCH *rgelt, 315 [out] ULONG *pceltFetched); 316 317 HRESULT Skip( [in] ULONG celt ); 318 HRESULT Reset(); 319 HRESULT Clone( [out] IEnumExtraSearch **ppenum ); 320} 321 322 323/***************************************************************************** 324 * IShellFolder2 interface 325 */ 326[ 327 object, 328 uuid(93f2f68c-1d1b-11d3-a30e-00c04f79abd1), 329 pointer_default(unique) 330] 331interface IShellFolder2 : IShellFolder 332{ 333 typedef struct 334 { 335 GUID fmtid; 336 DWORD pid; 337 } SHCOLUMNID, *LPSHCOLUMNID; 338 typedef const SHCOLUMNID *LPCSHCOLUMNID; 339 340 HRESULT GetDefaultSearchGUID( [out] GUID *lpguid ); 341 HRESULT EnumSearches( [out] IEnumExtraSearch **ppenum ); 342 HRESULT GetDefaultColumn( [in] DWORD dwReserved, [out] ULONG *pSort, [out] ULONG *pDisplay ); 343 HRESULT GetDefaultColumnState( [in] UINT iColumn, [out] SHCOLSTATEF *pcsFlags ); 344 HRESULT GetDetailsEx( [in] PCUITEMID_CHILD pidl, [in] const SHCOLUMNID *pscid, [out] VARIANT *pv); 345 HRESULT GetDetailsOf( [in] PCUITEMID_CHILD pidl, [in] UINT iColumn, [out] SHELLDETAILS *psd); 346 HRESULT MapColumnToSCID( [in] UINT iColumn, [in] SHCOLUMNID *pscid ); 347} 348 349/***************************************************************************** 350 * IShellItem interface 351 */ 352[ 353 object, 354 uuid(43826d1e-e718-42ee-bc55-a1e261c37bfe), 355 pointer_default(unique) 356] 357interface IShellItem : IUnknown 358{ 359 typedef [v1_enum] enum { 360 SIGDN_NORMALDISPLAY = 0, 361 SIGDN_PARENTRELATIVEPARSING = 0x80018001, 362 SIGDN_DESKTOPABSOLUTEPARSING = 0x80028000, 363 SIGDN_PARENTRELATIVEEDITING = 0x80031001, 364 SIGDN_DESKTOPABSOLUTEEDITING = 0x8004c000, 365 SIGDN_FILESYSPATH = 0x80058000, 366 SIGDN_URL = 0x80068000, 367 SIGDN_PARENTRELATIVEFORADDRESSBAR = 0x8007c001, 368 SIGDN_PARENTRELATIVE = 0x80080001 369 } SIGDN; /* & 0xFFFF => SHGDN */ 370 371 [v1_enum] enum _SICHINTF 372 { 373 SICHINT_DISPLAY = 0x00000000, 374 SICHINT_CANONICAL = 0x10000000, 375 SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000, 376 SICHINT_ALLFIELDS = 0x80000000 377 }; 378 typedef DWORD SICHINTF; 379 380 HRESULT BindToHandler( 381 [in] IBindCtx *pbc, 382 [in] REFGUID rbhid, 383 [in] REFIID riid, 384 [out, iid_is(riid)] void **ppvOut); 385 386 HRESULT GetParent( [out] IShellItem **ppsi ); 387 388 HRESULT GetDisplayName( 389 [in] SIGDN sigdnName, 390 [out] LPWSTR *ppszName); 391 392 HRESULT GetAttributes( 393 [in] SFGAOF sfgaoMask, 394 [out] SFGAOF *psfgaoAttribs); 395 396 HRESULT Compare( 397 [in] IShellItem *psi, 398 [in] SICHINTF hint, 399 [out] int *piOrder); 400} 401 402/***************************************************************************** 403 * IShellItem2 interface 404 */ 405[ 406 object, 407 uuid(7E9FB0D3-919F-4307-AB2E-9B1860310C93), 408 pointer_default(unique) 409] 410interface IShellItem2 : IShellItem 411{ 412 HRESULT GetPropertyStore( 413 [in] GETPROPERTYSTOREFLAGS flags, 414 [in] REFIID riid, 415 [out, iid_is(riid)] void **ppv); 416 417 HRESULT GetPropertyStoreWithCreateObject( 418 [in] GETPROPERTYSTOREFLAGS flags, 419 [in] IUnknown *punkCreateObject, 420 [in] REFIID riid, 421 [out, iid_is(riid)] void **ppv); 422 423 HRESULT GetPropertyStoreForKeys( 424 [in, size_is(cKeys)] const PROPERTYKEY *rgKeys, 425 [in] UINT cKeys, 426 [in] GETPROPERTYSTOREFLAGS flags, 427 [in] REFIID riid, 428 [out, iid_is(riid)] void **ppv); 429 430 HRESULT GetPropertyDescriptionList( 431 [in] REFPROPERTYKEY keyType, 432 [in] REFIID riid, 433 [out, iid_is(riid)] void **ppv); 434 435 HRESULT Update( 436 [in, unique] IBindCtx *pbc); 437 438 HRESULT GetProperty( 439 [in] REFPROPERTYKEY key, 440 [out] PROPVARIANT *ppropvar); 441 442 HRESULT GetCLSID( 443 [in] REFPROPERTYKEY key, 444 [out] CLSID *pclsid); 445 446 HRESULT GetFileTime ( 447 [in] REFPROPERTYKEY key, 448 [out] FILETIME *pft); 449 450 HRESULT GetInt32( 451 [in] REFPROPERTYKEY key, 452 [out] int *pi); 453 454 HRESULT GetString( 455 [in] REFPROPERTYKEY key, 456 [out, string] LPWSTR *ppsz); 457 458 HRESULT GetUInt32( 459 [in] REFPROPERTYKEY key, 460 [out] ULONG *pui); 461 462 HRESULT GetUInt64( 463 [in] REFPROPERTYKEY key, 464 [out] ULONGLONG *pull); 465 466 HRESULT GetBool( 467 [in] REFPROPERTYKEY key, 468 [out] BOOL *pf); 469} 470 471typedef enum tagNWMF { 472 NWMF_UNLOADING = 0x0001, 473 NWMF_USERINITED = 0x0002, 474 NWMF_FIRST = 0x0004, 475 NWMF_OVERRIDEKEY = 0x0008, 476 NWMF_SHOWHELP = 0x0010, 477 NWMF_HTMLDIALOG = 0x0020, 478 NWMF_FROMDIALOGCHILD = 0x0040, 479 NWMF_USERREQUESTED = 0x0080, 480 NWMF_USERALLOWED = 0x0100 481} NWMF; 482 483[ 484 uuid(d2bc4c84-3f72-4a52-a604-7bcbf3982cbb), 485 object, 486 pointer_default(unique) 487] 488interface INewWindowManager : IUnknown 489{ 490 HRESULT EvaluateNewWindow( 491 [in, string] LPCWSTR pszUrl, 492 [in, string] LPCWSTR pszName, 493 [in, string] LPCWSTR pszUrlContext, 494 [in, string] LPCWSTR pszFeatures, 495 [in] BOOL fReplace, 496 [in] DWORD dwFlags, 497 [in] DWORD dwUserActionTime); 498} 499 500cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager") 501 502/***************************************************************************** 503 * IEnumShellItems interface 504 */ 505[ 506 object, 507 uuid(70629033-E363-4A28-A567-0DB78006E6D7), 508 pointer_default(unique) 509] 510interface IEnumShellItems : IUnknown 511{ 512 [local] HRESULT Next( 513 [in] ULONG celt, 514 [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt, 515 [out] ULONG *pceltFetched); 516 517 [call_as(Next)] HRESULT RemoteNext( 518 [in] ULONG celt, 519 [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt, 520 [out] ULONG *pceltFetched); 521 522 HRESULT Skip( 523 [in] ULONG celt); 524 525 HRESULT Reset(); 526 527 HRESULT Clone( 528 [out] IEnumShellItems **ppenum); 529} 530 531/***************************************************************************** 532 * IShellItemArray interface 533 */ 534[ 535 object, 536 uuid(B63EA76D-1F85-456F-A19C-48159EFA858B), 537 pointer_default(unique) 538] 539interface IShellItemArray : IUnknown 540{ 541 typedef [v1_enum] enum SIATTRIBFLAGS { 542 SIATTRIBFLAGS_AND = 0x0001, 543 SIATTRIBFLAGS_OR = 0x0002, 544 SIATTRIBFLAGS_APPCOMPAT = 0x0003, 545 SIATTRIBFLAGS_MASK = 0x0003, 546 SIATTRIBFLAGS_ALLITEMS = 0x4000 547 } SIATTRIBFLAGS; 548 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)") 549 550 HRESULT BindToHandler( 551 [in, unique] IBindCtx *pbc, 552 [in] REFGUID bhid, 553 [in] REFIID riid, 554 [out, iid_is(riid)] void **ppvOut); 555 556 HRESULT GetPropertyStore( 557 [in] GETPROPERTYSTOREFLAGS flags, 558 [in] REFIID riid, 559 [out, iid_is(riid)] void **ppv); 560 561 HRESULT GetPropertyDescriptionList( 562 [in] REFPROPERTYKEY keyType, 563 [in] REFIID riid, 564 [out, iid_is(riid)] void **ppv); 565 566 HRESULT GetAttributes( 567 [in] SIATTRIBFLAGS AttribFlags, 568 [in] SFGAOF sfgaoMask, 569 [out] SFGAOF *psfgaoAttribs); 570 571 HRESULT GetCount( 572 [out] DWORD *pdwNumItems); 573 574 HRESULT GetItemAt( 575 [in] DWORD dwIndex, 576 [out] IShellItem **ppsi); 577 578 HRESULT EnumItems( 579 [out] IEnumShellItems **ppenumShellItems); 580 581} 582 583typedef [v1_enum] enum DATAOBJ_GET_ITEM_FLAGS 584{ 585 DOGIF_DEFAULT = 0x0, 586 DOGIF_TRAVERSE_LINK = 0x1, 587 DOGIF_NO_HDROP = 0x2, 588 DOGIF_NO_URL = 0x4, 589 DOGIF_ONLY_IF_ONE = 0x8 590} DATAOBJ_GET_ITEM_FLAGS; 591cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)") 592 593cpp_quote("HRESULT WINAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);") 594cpp_quote("HRESULT WINAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);") 595cpp_quote("HRESULT WINAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);") 596cpp_quote("HRESULT WINAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);") 597cpp_quote("HRESULT WINAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);") 598cpp_quote("HRESULT WINAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);") 599cpp_quote("HRESULT WINAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder* psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);") 600cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);") 601cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY pidl_array, IShellItemArray **psia);") 602cpp_quote("HRESULT WINAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);") 603 604/***************************************************************************** 605 * IShellItemFilter interface 606 */ 607[ 608 object, 609 uuid(2659B475-EEB8-48B7-8F07-B378810F48CF), 610 pointer_default(unique) 611] 612interface IShellItemFilter : IUnknown 613{ 614 HRESULT IncludeItem( 615 [in] IShellItem *psi); 616 617 HRESULT GetEnumFlagsForItem( 618 [in] IShellItem *psi, 619 [out] SHCONTF *pgrfFlags); 620} 621 622/***************************************************************************** 623 * FOLDERSETTINGS 624 */ 625typedef char *LPVIEWSETTINGS; 626 627typedef enum 628{ 629 FWF_AUTOARRANGE = 0x00000001, 630 FWF_ABBREVIATEDNAMES = 0x00000002, 631 FWF_SNAPTOGRID = 0x00000004, 632 FWF_OWNERDATA = 0x00000008, 633 FWF_BESTFITWINDOW = 0x00000010, 634 FWF_DESKTOP = 0x00000020, 635 FWF_SINGLESEL = 0x00000040, 636 FWF_NOSUBFOLDERS = 0x00000080, 637 FWF_TRANSPARENT = 0x00000100, 638 FWF_NOCLIENTEDGE = 0x00000200, 639 FWF_NOSCROLL = 0x00000400, 640 FWF_ALIGNLEFT = 0x00000800, 641 FWF_NOICONS = 0x00001000, 642 FWF_SHOWSELALWAYS = 0x00002000, 643 FWF_NOVISIBLE = 0x00004000, 644 FWF_SINGLECLICKACTIVATE = 0x00008000, 645 FWF_NOWEBVIEW = 0x00010000, 646 FWF_HIDEFILENAMES = 0x00020000, 647 FWF_CHECKSELECT = 0x00040000, 648 FWF_NOENUMREFRESH = 0x00080000, 649 FWF_NOGROUPING = 0x00100000, 650 FWF_FULLROWSELECT = 0x00200000, 651 FWF_NOFILTERS = 0x00400000, 652 FWF_NOCOLUMNHEADER = 0x00800000, 653 FWF_NOHEADERINALLVIEWS = 0x01000000, 654 FWF_EXTENDEDTILES = 0x02000000, 655 FWF_TRICHECKSELECT = 0x04000000, 656 FWF_AUTOCHECKSELECT = 0x08000000, 657 FWF_NOBROWSERVIEWSTATE = 0x10000000, 658 FWF_SUBSETGROUPS = 0x20000000, 659 FWF_USESEARCHFOLDER = 0x40000000, 660 FWF_ALLOWRTLREADING = 0x80000000 661} FOLDERFLAGS; 662 663typedef enum 664{ 665 FVM_AUTO =-1, 666 FVM_ICON = 1, 667 FVM_FIRST = FVM_ICON, 668 FVM_SMALLICON = 2, 669 FVM_LIST = 3, 670 FVM_DETAILS = 4, 671 FVM_THUMBNAIL = 5, 672 FVM_TILE = 6, 673 FVM_THUMBSTRIP = 7, 674 FVM_CONTENT = 8, 675 FVM_LAST = FVM_CONTENT 676} FOLDERVIEWMODE; 677 678typedef struct 679{ 680 UINT ViewMode; 681 UINT fFlags; 682} FOLDERSETTINGS, *PFOLDERSETTINGS, *LPFOLDERSETTINGS; 683typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS; 684 685/***************************************************************************** 686 * IShellIcon interface 687 */ 688[ 689 uuid(000214e5-0000-0000-c000-000000000046), 690 object, 691 pointer_default(unique) 692] 693interface IShellIcon : IUnknown 694{ 695 HRESULT GetIconOf( 696 [in] PCUITEMID_CHILD pidl, 697 [in] UINT flags, 698 [out] int *pIconIndex); 699} 700 701/***************************************************************************** 702 * IShellView interface 703 */ 704interface IShellBrowser; /* forward declaration */ 705[ 706 object, 707 uuid(000214e3-0000-0000-c000-000000000046), 708 pointer_default(unique) 709] 710interface IShellView : IOleWindow 711{ 712 typedef IShellView *LPSHELLVIEW; 713 714 cpp_quote("#define SVSI_DESELECT 0x00000000") 715 cpp_quote("#define SVSI_SELECT 0x00000001") 716 cpp_quote("#define SVSI_EDIT 0x00000003") 717 cpp_quote("#define SVSI_DESELECTOTHERS 0x00000004") 718 cpp_quote("#define SVSI_ENSUREVISIBLE 0x00000008") 719 cpp_quote("#define SVSI_FOCUSED 0x00000010") 720 cpp_quote("#define SVSI_TRANSLATEPT 0x00000020") 721 cpp_quote("#define SVSI_SELECTIONMARK 0x00000040") 722 cpp_quote("#define SVSI_POSITIONITEM 0x00000080") 723 cpp_quote("#define SVSI_CHECK 0x00000100") 724 cpp_quote("#define SVSI_NOSTATECHANGE 0x80000000") 725 726 typedef UINT SVSIF; 727 728 typedef enum 729 { 730 SVGIO_BACKGROUND = 0x00000000, 731 SVGIO_SELECTION = 0x00000001, 732 SVGIO_ALLVIEW = 0x00000002, 733 SVGIO_CHECKED = 0x00000003, 734 SVGIO_TYPE_MASK = 0x0000000f, 735 SVGIO_FLAG_VIEWORDER = 0x80000000, 736 } SVGIO; 737 738 typedef enum 739 { 740 SVUIA_DEACTIVATE = 0, 741 SVUIA_ACTIVATE_NOFOCUS = 1, 742 SVUIA_ACTIVATE_FOCUS = 2, 743 SVUIA_INPLACEACTIVATE = 3 744 } SVUIA_STATUS; 745 746 HRESULT TranslateAccelerator( [in] MSG *pmsg ); 747 HRESULT EnableModeless( [in] BOOL fEnable ); 748 HRESULT UIActivate( [in] UINT uState ); 749 HRESULT Refresh(); 750 HRESULT CreateViewWindow( 751 [in] IShellView *psvPrevious, 752 [in] LPCFOLDERSETTINGS lpfs, 753 [in] IShellBrowser *psb, 754 [out] RECT *prcView, 755 [out] HWND *phWnd); 756 757 HRESULT DestroyViewWindow(); 758 HRESULT GetCurrentInfo( [out] LPFOLDERSETTINGS lpfs ); 759 760 [local] HRESULT AddPropertySheetPages( 761 [in] DWORD dwReserved, 762 [in] LPFNSVADDPROPSHEETPAGE pfn, 763 [in] LPARAM lparam); 764 765 HRESULT SaveViewState(); 766 HRESULT SelectItem( 767 [in] LPCITEMIDLIST pidlItem, 768 [in] SVSIF uFlags); 769 HRESULT GetItemObject( 770 [in] UINT uItem, 771 [in] REFIID riid, 772 [out, iid_is(riid)] void **ppv); 773} 774 775[ 776 object, 777 uuid(88e39e80-3578-11cf-ae69-08002b2e1262), 778 pointer_default(unique) 779] 780interface IShellView2 : IShellView 781{ 782 typedef GUID SHELLVIEWID; 783cpp_quote("#include <pshpack8.h>") 784 typedef struct _SV2CVW2_PARAMS 785 { 786 DWORD cbSize; 787 IShellView *psvPrev; 788 LPCFOLDERSETTINGS pfs; 789 IShellBrowser *psbOwner; 790 RECT *prcView; 791 SHELLVIEWID const *pvid; 792 HWND hwndView; 793 } SV2CVW2_PARAMS, *LPSV2CVW2_PARAMS; 794cpp_quote("#include <poppack.h>") 795 796 HRESULT GetView( 797 [in, out] SHELLVIEWID *view_guid, 798 [in] ULONG view_type 799 ); 800 HRESULT CreateViewWindow2( 801 [in] LPSV2CVW2_PARAMS view_params 802 ); 803 HRESULT HandleRename( 804 [in] LPCITEMIDLIST new_pidl 805 ); 806 HRESULT SelectAndPositionItem( 807 [in] LPCITEMIDLIST item, 808 [in] UINT flags, 809 [in] POINT *point 810 ); 811} 812 813[ 814 object, 815 uuid(ec39fa88-f8af-41c5-8421-38bed28f4673), 816 pointer_default(unique) 817] 818interface IShellView3 : IShellView2 819{ 820 [v1_enum] enum _SV3CVW3_FLAGS 821 { 822 SV3CVW3_DEFAULT = 0x00000000, 823 SV3CVW3_NONINTERACTIVE = 0x00000001, 824 SV3CVW3_FORCEVIEWMODE = 0x00000002, 825 SV3CVW3_FORCEFOLDERFLAGS = 0x00000004 826 }; 827 828 typedef DWORD SV3CVW3_FLAGS; 829 830 HRESULT CreateViewWindow3( 831 [in] IShellBrowser *owner, 832 [in, unique] IShellView *prev_view, 833 [in] SV3CVW3_FLAGS view_flags, 834 [in] FOLDERFLAGS mask, 835 [in] FOLDERFLAGS flags, 836 [in] FOLDERVIEWMODE mode, 837 [in, unique] const SHELLVIEWID *view_id, 838 [in] const RECT *rect, 839 [out] HWND *hwnd); 840} 841 842/***************************************************************************** 843 * IFolderView interface 844 */ 845[ 846 uuid(cde725b0-ccc9-4519-917e-325d72fab4ce), 847 object, 848 pointer_default(unique) 849] 850interface IFolderView : IUnknown 851{ 852 HRESULT GetCurrentViewMode( [out] UINT *mode ); 853 HRESULT SetCurrentViewMode( [in] UINT mode ); 854 HRESULT GetFolder( [in] REFIID riid, [out, iid_is(riid)] void **ppv ); 855 HRESULT Item( 856 [in] int index, 857 [out] PITEMID_CHILD *ppidl 858 ); 859 HRESULT ItemCount( 860 [in] UINT flags, 861 [out] int *items 862 ); 863 HRESULT Items( 864 [in] UINT flags, 865 [in] REFIID riid, 866 [out, iid_is(riid)] void **ppv 867 ); 868 HRESULT GetSelectionMarkedItem( [out] int *item ); 869 HRESULT GetFocusedItem( [out] int *item ); 870 HRESULT GetItemPosition( 871 [in] PCUITEMID_CHILD pidl, 872 [out] POINT* ppt 873 ); 874 HRESULT GetSpacing( [in, out, unique] POINT* pt ); 875 HRESULT GetDefaultSpacing( [out] POINT* pt ); 876 HRESULT GetAutoArrange(); 877 HRESULT SelectItem( 878 [in] int item, 879 [in] DWORD flags 880 ); 881 HRESULT SelectAndPositionItems( 882 [in] UINT cidl, 883 [in, size_is(cidl)] PCUITEMID_CHILD_ARRAY apidl, 884 [in, unique, size_is(cidl)] POINT* apt, 885 [in] DWORD flags 886 ); 887} 888 889[v1_enum] enum tagSORTDIRECTION 890{ 891 SORT_DESCENDING = -1, 892 SORT_ASCENDING = 1 893}; 894typedef int SORTDIRECTION; 895 896typedef struct SORTCOLUMN 897{ 898 PROPERTYKEY propkey; 899 SORTDIRECTION direction; 900} SORTCOLUMN; 901 902typedef [v1_enum] enum FVTEXTTYPE 903{ 904 FVST_EMPTYTEXT = 0 905} FVTEXTTYPE; 906 907[ 908 uuid(1af3a467-214f-4298-908e-06b03e0b39f9), 909 object, 910 pointer_default(unique) 911] 912interface IFolderView2 : IFolderView 913{ 914 HRESULT SetGroupBy( 915 [in] REFPROPERTYKEY key, 916 [in] BOOL ascending); 917 918 [local] 919 HRESULT GetGroupBy( 920 [out] PROPERTYKEY *pkey, 921 [out] BOOL *ascending); 922 923 [call_as(GetGroupBy)] 924 HRESULT RemoteGetGroupBy( 925 [out] PROPERTYKEY *pkey, 926 [out] BOOL *ascending); 927 928 HRESULT SetViewProperty( 929 [in] PCUITEMID_CHILD pidl, 930 [in] REFPROPERTYKEY propkey, 931 [in] REFPROPVARIANT propvar); 932 933 HRESULT GetViewProperty( 934 [in] PCUITEMID_CHILD pidl, 935 [in] REFPROPERTYKEY propkey, 936 [out] PROPVARIANT *propvar); 937 938 HRESULT SetTileViewProperties( 939 [in] PCUITEMID_CHILD pidl, 940 [in, string] LPCWSTR prop_list); 941 942 HRESULT SetExtendedTileViewProperties( 943 [in] PCUITEMID_CHILD pidl, 944 [in, string] LPCWSTR prop_list); 945 946 HRESULT SetText( 947 [in] FVTEXTTYPE type, 948 [in] LPCWSTR text); 949 950 HRESULT SetCurrentFolderFlags( 951 [in] DWORD mask, 952 [in] DWORD flags); 953 954 HRESULT GetCurrentFolderFlags([out] DWORD *flags); 955 956 HRESULT GetSortColumnCount([out] int *columns); 957 958 HRESULT SetSortColumns( 959 [in, size_is(count)] const SORTCOLUMN *columns, 960 [in] int count); 961 962 HRESULT GetSortColumns( 963 [out, size_is(count)] SORTCOLUMN *columns, 964 [in] int count); 965 966 HRESULT GetItem( 967 [in] int ittem, 968 [in] REFIID riid, 969 [out, iid_is(riid)] void **ppv); 970 971 HRESULT GetVisibleItem( 972 [in] int start, 973 [in] BOOL previous, 974 [out] int *item); 975 976 HRESULT GetSelectedItem( 977 [in] int start, 978 [out] int *item); 979 980 HRESULT GetSelection( 981 [in] BOOL none_implies_folder, 982 [out] IShellItemArray **array); 983 984 HRESULT GetSelectionState( 985 [in] PCUITEMID_CHILD pidl, 986 [out] DWORD *flags); 987 988 HRESULT InvokeVerbOnSelection([in, unique, string] LPCSTR verb); 989 990 HRESULT SetViewModeAndIconSize( 991 [in] FOLDERVIEWMODE mode, 992 [in] int size); 993 994 HRESULT GetViewModeAndIconSize( 995 [out] FOLDERVIEWMODE *mode, 996 [out] int *size); 997 998 HRESULT SetGroupSubsetCount([in] UINT visible_rows); 999 1000 HRESULT GetGroupSubsetCount([out] UINT *visible_rows); 1001 1002 HRESULT SetRedraw([in] BOOL redraw); 1003 1004 HRESULT IsMoveInSameFolder(); 1005 1006 HRESULT DoRename(); 1007} 1008 1009/***************************************************************************** 1010 * IShellBrowser interface 1011 */ 1012[ 1013 object, 1014 uuid(000214e2-0000-0000-c000-000000000046), 1015 pointer_default(unique) 1016] 1017interface IShellBrowser : IOleWindow 1018{ 1019 typedef IShellBrowser *LPSHELLBROWSER; 1020 1021cpp_quote("#define SBSP_DEFBROWSER 0x00000000") 1022cpp_quote("#define SBSP_SAMEBROWSER 0x00000001") 1023cpp_quote("#define SBSP_NEWBROWSER 0x00000002") 1024cpp_quote("#define SBSP_DEFMODE 0x00000000") 1025cpp_quote("#define SBSP_OPENMODE 0x00000010") 1026cpp_quote("#define SBSP_EXPLOREMODE 0x00000020") 1027cpp_quote("#define SBSP_HELPMODE 0x00000040") 1028cpp_quote("#define SBSP_NOTRANSFERHIST 0x00000080") 1029cpp_quote("#define SBSP_ABSOLUTE 0x00000000") 1030cpp_quote("#define SBSP_RELATIVE 0x00001000") 1031cpp_quote("#define SBSP_PARENT 0x00002000") 1032cpp_quote("#define SBSP_NAVIGATEBACK 0x00004000") 1033cpp_quote("#define SBSP_NAVIGATEFORWARD 0x00008000") 1034cpp_quote("#define SBSP_ALLOW_AUTONAVIGATE 0x00010000") 1035cpp_quote("#define SBSP_KEEPSAMETEMPLATE 0x00020000") 1036cpp_quote("#define SBSP_KEEPWORDWHEELTEXT 0x00040000") 1037cpp_quote("#define SBSP_ACTIVATE_NOFOCUS 0x00080000") 1038cpp_quote("#define SBSP_CREATENOHISTORY 0x00100000") 1039cpp_quote("#define SBSP_PLAYNOSOUND 0x00200000") 1040cpp_quote("#define SBSP_CALLERUNTURUSTED 0x00800000") 1041cpp_quote("#define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000") 1042cpp_quote("#define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000") 1043cpp_quote("#define SBSP_NOAUTOSELECT 0x04000000") 1044cpp_quote("#define SBSP_WRITENOHISTORY 0x08000000") 1045cpp_quote("#define SBSP_TRUSTEDFORACTIVEX 0x10000000") 1046cpp_quote("#define SBSP_FEEDNAVIGATION 0x20000000") 1047cpp_quote("#define SBSP_REDIRECT 0x40000000") 1048cpp_quote("#define SBSP_INITIATEDBYHLINKFRAME 0x80000000") 1049 1050cpp_quote("#define FCW_STATUS 0x0001") 1051cpp_quote("#define FCW_TOOLBAR 0x0002") 1052cpp_quote("#define FCW_TREE 0x0003") 1053cpp_quote("#define FCW_INTERNETBAR 0x0006") 1054cpp_quote("#define FCW_PROGRESS 0x0008") 1055 1056cpp_quote("#define FCT_MERGE 0x0001") 1057cpp_quote("#define FCT_CONFIGABLE 0x0002") 1058cpp_quote("#define FCT_ADDTOEND 0x0004") 1059 1060cpp_quote("#if 0") 1061 typedef LPARAM LPTBBUTTONSB; 1062cpp_quote("#else") 1063cpp_quote("#include <commctrl.h>") 1064cpp_quote("typedef LPTBBUTTON LPTBBUTTONSB;") 1065cpp_quote("#endif") 1066 1067 HRESULT InsertMenusSB( 1068 [in] HMENU hmenuShared, 1069 [in, out] LPOLEMENUGROUPWIDTHS lpMenuWidths); 1070 1071 HRESULT SetMenuSB( 1072 [in] HMENU hmenuShared, 1073 [in] HOLEMENU holemenuReserved, 1074 [in] HWND hwndActiveObject); 1075 1076 HRESULT RemoveMenusSB( [in] HMENU hmenuShared ); 1077 HRESULT SetStatusTextSB( [in, unique] LPCOLESTR pszStatusText ); 1078 HRESULT EnableModelessSB( [in] BOOL fEnable ); 1079 HRESULT TranslateAcceleratorSB( [in] MSG *pmsg, [in] WORD wID ); 1080 1081 HRESULT BrowseObject( 1082 [in] LPCITEMIDLIST pidl, 1083 [in] UINT wFlags); 1084 1085 HRESULT GetViewStateStream( 1086 [in] DWORD grfMode, 1087 [out] IStream **ppStrm); 1088 1089 HRESULT GetControlWindow( 1090 [in] UINT id, 1091 [out] HWND *phwnd); 1092 1093 [local] HRESULT SendControlMsg( 1094 [in] UINT id, 1095 [in] UINT uMsg, 1096 [in] WPARAM wParam, 1097 [in] LPARAM lParam, 1098 [in] LRESULT *pret); 1099 1100 HRESULT QueryActiveShellView( [out] IShellView **ppshv ); 1101 HRESULT OnViewWindowActive( [in] IShellView *pshv ); 1102 1103 [local] 1104 HRESULT SetToolbarItems( 1105 [in] LPTBBUTTONSB lpButtons, 1106 [in] UINT nButtons, 1107 [in] UINT uFlags); 1108} 1109 1110 1111/***************************************************************************** 1112 * IShellLinkA interface 1113 */ 1114[ 1115 object, 1116 uuid(000214ee-0000-0000-c000-000000000046), 1117 pointer_default(unique) 1118] 1119interface IShellLinkA : IUnknown 1120{ 1121 typedef enum 1122 { 1123 SLR_NO_UI = 0x0001, 1124 SLR_ANY_MATCH = 0x0002, 1125 SLR_UPDATE = 0x0004, 1126 SLR_NOUPDATE = 0x0008, 1127 SLR_NOSEARCH = 0x0010, 1128 SLR_NOTRACK = 0x0020, 1129 SLR_NOLINKINFO = 0x0040, 1130 SLR_INVOKE_MSI = 0x0080, 1131 SLR_NO_UI_WITH_MSG_PUMP = 0x0101, 1132 } SLR_FLAGS; 1133 1134 typedef enum 1135 { 1136 SLGP_SHORTPATH = 0x0001, 1137 SLGP_UNCPRIORITY = 0x0002, 1138 SLGP_RAWPATH = 0x0004, 1139 } SLGP_FLAGS; 1140 1141 HRESULT GetPath( 1142 [out, size_is(cch)] LPSTR pszFile, 1143 [in] int cch, 1144 [in, out, unique] WIN32_FIND_DATAA *pfd, 1145 [in] DWORD fFlags); 1146 1147 HRESULT GetIDList( [out] PIDLIST_ABSOLUTE * ppidl ); 1148 1149 HRESULT SetIDList( [in] PCIDLIST_ABSOLUTE pidl ); 1150 1151 HRESULT GetDescription( 1152 [out, size_is(cch)] LPSTR pszName, 1153 [in] int cch); 1154 1155 HRESULT SetDescription( [in] LPCSTR pszName ); 1156 1157 HRESULT GetWorkingDirectory( 1158 [out, size_is(cch)] LPSTR pszDir, 1159 [in] int cch); 1160 1161 HRESULT SetWorkingDirectory( [in] LPCSTR pszDir ); 1162 1163 HRESULT GetArguments( 1164 [out, size_is(cch)] LPSTR pszArgs, 1165 [in] int cch); 1166 1167 HRESULT SetArguments( [in] LPCSTR pszArgs ); 1168 1169 HRESULT GetHotkey( [out] WORD *pwHotkey ); 1170 1171 HRESULT SetHotkey( [in] WORD wHotkey ); 1172 1173 HRESULT GetShowCmd( [out] int *piShowCmd ); 1174 1175 HRESULT SetShowCmd( [in] int iShowCmd ); 1176 1177 HRESULT GetIconLocation( 1178 [out, size_is(cch)] LPSTR pszIconPath, 1179 [in] int cch, 1180 [out] int *piIcon); 1181 1182 HRESULT SetIconLocation( 1183 [in] LPCSTR pszIconPath, 1184 [in] int iIcon); 1185 1186 HRESULT SetRelativePath( 1187 [in] LPCSTR pszPathRel, 1188 [in] DWORD dwReserved); 1189 1190 HRESULT Resolve( 1191 [in] HWND hwnd, 1192 [in] DWORD fFlags); 1193 1194 HRESULT SetPath( [in] LPCSTR pszFile ); 1195} 1196 1197 1198/***************************************************************************** 1199 * IShellLinkW interface 1200 */ 1201[ 1202 object, 1203 uuid(000214f9-0000-0000-c000-000000000046), 1204 pointer_default(unique) 1205] 1206interface IShellLinkW : IUnknown 1207{ 1208 HRESULT GetPath( 1209 [out, size_is(cch)] LPWSTR pszFile, 1210 [in] int cch, 1211 [in, out] WIN32_FIND_DATAW *pfd, 1212 [in] DWORD fFlags); 1213 1214 HRESULT GetIDList( [out] PIDLIST_ABSOLUTE * ppidl ); 1215 1216 HRESULT SetIDList( [in] PCIDLIST_ABSOLUTE pidl ); 1217 1218 HRESULT GetDescription( 1219 [out, size_is(cch)] LPWSTR pszName, 1220 [in] int cch); 1221 1222 HRESULT SetDescription( [in] LPCWSTR pszName ); 1223 1224 HRESULT GetWorkingDirectory( 1225 [out, size_is(cch)] LPWSTR pszDir, 1226 [in] int cch); 1227 1228 HRESULT SetWorkingDirectory( [in] LPCWSTR pszDir ); 1229 1230 HRESULT GetArguments( 1231 [out, size_is(cch)] LPWSTR pszArgs, 1232 [in] int cch); 1233 1234 HRESULT SetArguments( [in] LPCWSTR pszArgs ); 1235 1236 HRESULT GetHotkey( [out] WORD *pwHotkey ); 1237 1238 HRESULT SetHotkey( [in] WORD wHotkey ); 1239 1240 HRESULT GetShowCmd( [out] int *piShowCmd ); 1241 1242 HRESULT SetShowCmd( [in] int iShowCmd ); 1243 1244 HRESULT GetIconLocation( 1245 [out, size_is(cch)] LPWSTR pszIconPath, 1246 [in] int cch, 1247 [out] int *piIcon); 1248 1249 HRESULT SetIconLocation( 1250 [in] LPCWSTR pszIconPath, 1251 [in] int iIcon); 1252 1253 HRESULT SetRelativePath( 1254 [in] LPCWSTR pszPathRel, 1255 [in] DWORD dwReserved); 1256 1257 HRESULT Resolve( 1258 [in] HWND hwnd, 1259 [in] DWORD fFlags); 1260 1261 HRESULT SetPath( [in] LPCWSTR pszFile ); 1262} 1263 1264cpp_quote("#define IShellLink WINELIB_NAME_AW(IShellLink)") 1265 1266 1267/***************************************************************************** 1268 * IShellExtInit interface 1269 */ 1270[ 1271 object, 1272 uuid(000214e8-0000-0000-c000-000000000046), 1273 pointer_default(unique), 1274 local 1275] 1276interface IShellExtInit : IUnknown 1277{ 1278 typedef IShellExtInit *LPSHELLEXTINIT; 1279 1280 HRESULT Initialize( 1281 [in] PCIDLIST_ABSOLUTE pidlFolder, 1282 [in] IDataObject *pdtobj, 1283 [in] HKEY hkeyProgID); 1284} 1285 1286 1287/*******************************************************************************/ 1288/* Note: the following interfaces are not in shobjidl.idl under Windows, they */ 1289/* are declared directly in shlobj.h. It hopefully won't break anything to put */ 1290/* them here anyway. */ 1291/*******************************************************************************/ 1292 1293#ifndef MAX_PATH 1294#define MAX_PATH 260 1295#endif 1296 1297 1298/***************************************************************************** 1299 * IPersistFolder3 interface 1300 */ 1301[ 1302 object, 1303 uuid(cef04fdf-fe72-11d2-87a5-00c04f6837cf), 1304 pointer_default(unique) 1305] 1306interface IPersistFolder3 : IPersistFolder2 1307{ 1308 typedef struct 1309 { 1310 LPITEMIDLIST pidlTargetFolder; 1311 WCHAR szTargetParsingName[MAX_PATH]; 1312 WCHAR szNetworkProvider[MAX_PATH]; 1313 DWORD dwAttributes; 1314 int csidl; 1315 } PERSIST_FOLDER_TARGET_INFO; 1316 1317 HRESULT InitializeEx( 1318 [in] IBindCtx *pbc, 1319 [in] LPCITEMIDLIST pidlRoot, 1320 [in] const PERSIST_FOLDER_TARGET_INFO *ppfti); 1321 1322 HRESULT GetFolderTargetInfo( [out] PERSIST_FOLDER_TARGET_INFO *ppfti ); 1323} 1324 1325 1326/***************************************************************************** 1327 * IExtractIconA interface 1328 */ 1329[ 1330 object, 1331 uuid(000214eb-0000-0000-c000-000000000046), 1332 pointer_default(unique), 1333 local 1334] 1335interface IExtractIconA : IUnknown 1336{ 1337cpp_quote("#define GIL_OPENICON 0x0001") 1338cpp_quote("#define GIL_FORSHELL 0x0002") 1339cpp_quote("#define GIL_ASYNC 0x0020") 1340cpp_quote("#define GIL_DEFAULTICON 0x0040") 1341cpp_quote("#define GIL_FORSHORTCUT 0x0080") 1342 1343cpp_quote("#define GIL_SIMULATEDOC 0x0001") 1344cpp_quote("#define GIL_PERINSTANCE 0x0002") 1345cpp_quote("#define GIL_PERCLASS 0x0004") 1346cpp_quote("#define GIL_NOTFILENAME 0x0008") 1347cpp_quote("#define GIL_DONTCACHE 0x0010") 1348 1349 typedef IExtractIconA *LPEXTRACTICONA; 1350 1351 HRESULT GetIconLocation( 1352 [in] UINT uFlags, 1353 [out, size_is(cchMax)] LPSTR szIconFile, 1354 [in] UINT cchMax, 1355 [out] INT *piIndex, 1356 [out] UINT *pwFlags); 1357 1358 HRESULT Extract( 1359 [in] LPCSTR pszFile, 1360 [in] UINT nIconIndex, 1361 [out] HICON *phiconLarge, 1362 [out] HICON *phiconSmall, 1363 [in] UINT nIconSize ); 1364} 1365 1366 1367/***************************************************************************** 1368 * IExtractIconW interface 1369 */ 1370[ 1371 object, 1372 uuid(000214fa-0000-0000-c000-000000000046), 1373 pointer_default(unique), 1374 local 1375] 1376interface IExtractIconW : IUnknown 1377{ 1378 typedef IExtractIconW *LPEXTRACTICONW; 1379 1380 HRESULT GetIconLocation( 1381 [in] UINT uFlags, 1382 [out, size_is(cchMax)] LPWSTR szIconFile, 1383 [in] UINT cchMax, 1384 [out] INT *piIndex, 1385 [out] UINT *pwFlags); 1386 1387 HRESULT Extract( 1388 [in] LPCWSTR pszFile, 1389 [in] UINT nIconIndex, 1390 [out] HICON *phiconLarge, 1391 [out] HICON *phiconSmall, 1392 [in] UINT nIconSize ); 1393} 1394 1395cpp_quote("#define LPEXTRACTICON WINELIB_NAME_AW(LPEXTRACTICON)") 1396cpp_quote("#define IExtractIcon WINELIB_NAME_AW(IExtractIcon)") 1397 1398 1399/***************************************************************************** 1400 * ICommDlgBrowser interface 1401 */ 1402[ 1403 object, 1404 uuid(000214f1-0000-0000-c000-000000000046), 1405 pointer_default(unique) 1406] 1407interface ICommDlgBrowser : IUnknown 1408{ 1409cpp_quote("#define CDBOSC_SETFOCUS 0x00000000") 1410cpp_quote("#define CDBOSC_KILLFOCUS 0x00000001") 1411cpp_quote("#define CDBOSC_SELCHANGE 0x00000002") 1412cpp_quote("#define CDBOSC_RENAME 0x00000003") 1413cpp_quote("#define CDBOSC_STATECHANGE 0x00000004") 1414 1415 typedef ICommDlgBrowser *LPCOMMDLGBROWSER; 1416 1417 HRESULT OnDefaultCommand( [in] IShellView *shv ); 1418 HRESULT OnStateChange( [in] IShellView *shv, [in] ULONG uChange ); 1419 HRESULT IncludeObject( [in] IShellView *shv, [in] LPCITEMIDLIST pidl ); 1420} 1421 1422 1423/***************************************************************************** 1424 * ICommDlgBrowser2 interface 1425 */ 1426[ 1427 object, 1428 uuid(10339516-2894-11D2-9039-00C04F8EEB3E), 1429 pointer_default(unique) 1430] 1431interface ICommDlgBrowser2 : ICommDlgBrowser 1432{ 1433 1434 HRESULT Notify( 1435 [in] IShellView *ppshv, 1436 [in] DWORD dwNotifyType); 1437 1438 HRESULT GetDefaultMenuText( 1439 [in] IShellView *ppshv, 1440 [out, string, size_is(cchMax)] LPWSTR pszText, 1441 [in] int cchMax); 1442 1443 HRESULT GetViewFlags( 1444 [out] DWORD *pdwFlags); 1445} 1446 1447 1448/***************************************************************************** 1449 * ICommDlgBrowser3 interface 1450 */ 1451[ 1452 object, 1453 uuid(C8AD25A1-3294-41EE-8165-71174BD01C57), 1454 pointer_default(unique) 1455] 1456interface ICommDlgBrowser3 : ICommDlgBrowser2 1457{ 1458 1459 HRESULT OnColumnClicked( 1460 [in] IShellView *ppshv, 1461 [in] int iColumn); 1462 1463 HRESULT GetCurrentFilter( 1464 [out, string, size_is(cchFileSpec)] LPWSTR pszFileSpec, 1465 [in] int cchFileSpec); 1466 1467 HRESULT OnPreviewCreated( 1468 [in] IShellView *ppshv); 1469} 1470 1471/***************************************************************************** 1472 * IDockingWindow interface 1473 */ 1474[ 1475 object, 1476 uuid(012dd920-7b26-11d0-8ca9-00a0c92dbfe8) 1477] 1478interface IDockingWindow : IOleWindow 1479{ 1480 HRESULT ShowDW( 1481 [in] BOOL fShow); 1482 1483 HRESULT CloseDW( 1484 [in] DWORD dwReserved); 1485 1486 HRESULT ResizeBorderDW( 1487 [in] LPCRECT prcBorder, 1488 [in] IUnknown *punkToolbarSite, 1489 [in] BOOL fReserved); 1490}; 1491 1492 1493/***************************************************************************** 1494 * IDockingWindowFrame interface 1495 */ 1496[ 1497 object, 1498 uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8), 1499 pointer_default(unique), 1500 local 1501] 1502interface IDockingWindowFrame : IOleWindow 1503{ 1504cpp_quote("#define DWFRF_NORMAL 0x0000") 1505cpp_quote("#define DWFRF_DELETECONFIGDATA 0x0001") 1506cpp_quote("#define DWFAF_HIDDEN 0x0001") 1507 1508 HRESULT AddToolbar( 1509 [in] IUnknown *punkSrc, 1510 [in] LPCWSTR pwszItem, 1511 [in] DWORD dwAddFlags); 1512 1513 HRESULT RemoveToolbar( 1514 [in] IUnknown *punkSrc, 1515 [in] DWORD dwRemoveFlags); 1516 1517 HRESULT FindToolbar( 1518 [in] LPCWSTR pwszItem, 1519 [in] REFIID riid, 1520 [out] LPVOID *ppvObj); 1521} 1522 1523 1524/***************************************************************************** 1525 * IDragSourceHelper interface 1526 */ 1527[ 1528 object, 1529 uuid(de5bf786-477a-11d2-839d-00c04fd918d0), 1530 pointer_default(unique), 1531 local 1532] 1533interface IDragSourceHelper : IUnknown 1534{ 1535 typedef struct 1536 { 1537 SIZE sizeDragImage; 1538 POINT ptOffset; 1539 HBITMAP hbmpDragImage; 1540 COLORREF crColorKey; 1541 } SHDRAGIMAGE, *LPSHDRAGIMAGE; 1542 1543 HRESULT InitializeFromBitmap( 1544 [in] LPSHDRAGIMAGE pshdi, 1545 [in] IDataObject *pDataObject); 1546 1547 HRESULT InitializeFromWindow( 1548 [in] HWND hwnd, 1549 [in] POINT *ppt, 1550 [in] IDataObject *pDataObject); 1551} 1552 1553 1554/***************************************************************************** 1555 * IDropTargetHelper interface 1556 */ 1557[ 1558 object, 1559 uuid(4657278b-411b-11d2-839a-00c04fd918d0), 1560 pointer_default(unique), 1561 local 1562] 1563interface IDropTargetHelper : IUnknown 1564{ 1565 HRESULT DragEnter( 1566 [in] HWND hwndTarget, 1567 [in] IDataObject *pDataObject, 1568 [in] POINT *ppt, 1569 [in] DWORD dwEffect); 1570 1571 HRESULT DragLeave(); 1572 1573 HRESULT DragOver( 1574 [in] POINT *ppt, 1575 [in] DWORD dwEffect); 1576 1577 HRESULT Drop( 1578 [in] IDataObject *pDataObject, 1579 [in] POINT *ppt, 1580 [in] DWORD dwEffect); 1581 1582 HRESULT Show( [in] BOOL fShow ); 1583} 1584 1585 1586/***************************************************************************** 1587 * IContextMenu interface 1588 */ 1589[ 1590 object, 1591 uuid(000214e4-0000-0000-c000-000000000046), 1592 pointer_default(unique), 1593 local 1594] 1595interface IContextMenu : IUnknown 1596{ 1597cpp_quote("#define CMF_NORMAL 0x00000000") 1598cpp_quote("#define CMF_DEFAULTONLY 0x00000001") 1599cpp_quote("#define CMF_VERBSONLY 0x00000002") 1600cpp_quote("#define CMF_EXPLORE 0x00000004") 1601cpp_quote("#define CMF_NOVERBS 0x00000008") 1602cpp_quote("#define CMF_CANRENAME 0x00000010") 1603cpp_quote("#define CMF_NODEFAULT 0x00000020") 1604cpp_quote("#define CMF_INCLUDESTATIC 0x00000040") 1605cpp_quote("#define CMF_EXTENDEDVERBS 0x00000100") 1606cpp_quote("#define CMF_RESERVED 0xffff0000") 1607 1608cpp_quote("#define GCS_VERBA 0x00000000") 1609cpp_quote("#define GCS_HELPTEXTA 0x00000001") 1610cpp_quote("#define GCS_VALIDATEA 0x00000002") 1611cpp_quote("#define GCS_VERBW 0x00000004") 1612cpp_quote("#define GCS_HELPTEXTW 0x00000005") 1613cpp_quote("#define GCS_VALIDATEW 0x00000006") 1614cpp_quote("#define GCS_UNICODE 0x00000004") 1615cpp_quote("#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)") 1616cpp_quote("#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)") 1617cpp_quote("#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)") 1618 1619cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"") 1620cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"") 1621cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"") 1622cpp_quote("#if defined(__GNUC__)") 1623cpp_quote("# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }") 1624cpp_quote("# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }") 1625cpp_quote("# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }") 1626cpp_quote("#elif defined(_MSC_VER)") 1627cpp_quote("# define CMDSTR_NEWFOLDERW L\"NewFolder\"") 1628cpp_quote("# define CMDSTR_VIEWLISTW L\"ViewList\"") 1629cpp_quote("# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"") 1630cpp_quote("#else") 1631cpp_quote("static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};") 1632cpp_quote("static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};") 1633cpp_quote("static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};") 1634cpp_quote("#endif") 1635cpp_quote("#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)") 1636cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)") 1637cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)") 1638 1639cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY") 1640cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON") 1641cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI") 1642cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE") 1643cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE") 1644cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME") 1645cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM") 1646cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE") 1647cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK") 1648cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC") 1649cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000") 1650cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000") 1651cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000") 1652cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE") 1653cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS") 1654 1655 typedef IContextMenu *LPCONTEXTMENU; 1656 1657 typedef struct tagCMINVOKECOMMANDINFO 1658 { 1659 DWORD cbSize; 1660 DWORD fMask; 1661 HWND hwnd; 1662 LPCSTR lpVerb; 1663 LPCSTR lpParameters; 1664 LPCSTR lpDirectory; 1665 INT nShow; 1666 DWORD dwHotKey; 1667 HANDLE hIcon; 1668 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO; 1669 1670 typedef struct tagCMInvokeCommandInfoEx 1671 { 1672 DWORD cbSize; 1673 DWORD fMask; 1674 HWND hwnd; 1675 LPCSTR lpVerb; 1676 LPCSTR lpParameters; 1677 LPCSTR lpDirectory; 1678 INT nShow; 1679 DWORD dwHotKey; 1680 HANDLE hIcon; 1681 LPCSTR lpTitle; 1682 LPCWSTR lpVerbW; 1683 LPCWSTR lpParametersW; 1684 LPCWSTR lpDirectoryW; 1685 LPCWSTR lpTitleW; 1686 POINT ptInvoke; 1687 } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX; 1688 1689 HRESULT QueryContextMenu( 1690 [in] HMENU hmenu, 1691 [in] UINT indexMenu, 1692 [in] UINT idCmdFirst, 1693 [in] UINT idCmdLast, 1694 [in] UINT uFlags); 1695 1696 HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO lpici ); 1697 1698 HRESULT GetCommandString( 1699 [in] UINT_PTR idCmd, 1700 [in] UINT uType, 1701 [out] UINT *pwReserved, 1702 [out, size_is(cchMax)] LPSTR pszName, 1703 [in] UINT cchMax); 1704} 1705 1706 1707/***************************************************************************** 1708 * IContextMenu2 interface 1709 */ 1710[ 1711 object, 1712 uuid(000214f4-0000-0000-c000-000000000046), 1713 pointer_default(unique), 1714 local 1715] 1716interface IContextMenu2 : IContextMenu 1717{ 1718 typedef IContextMenu2 *LPCONTEXTMENU2; 1719 1720 HRESULT HandleMenuMsg( 1721 [in] UINT uMsg, 1722 [in] WPARAM wParam, 1723 [in] LPARAM lParam); 1724} 1725 1726 1727/***************************************************************************** 1728 * IContextMenu3 interface 1729 */ 1730[ 1731 object, 1732 uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719), 1733 pointer_default(unique), 1734 local 1735] 1736interface IContextMenu3 : IContextMenu2 1737{ 1738 typedef IContextMenu3 *LPCONTEXTMENU3; 1739 1740 HRESULT HandleMenuMsg2( 1741 [in] UINT uMsg, 1742 [in] WPARAM wParam, 1743 [in] LPARAM lParam, 1744 [out] LRESULT *plResult); 1745} 1746 1747/***************************************************************************** 1748 * IContextMenuCB interface 1749 */ 1750 1751[ 1752 object, 1753 uuid(3409e930-5a39-11d1-83fa-00a0c90dc849), 1754 pointer_default(unique), 1755 local 1756] 1757interface IContextMenuCB : IUnknown 1758{ 1759 HRESULT CallBack( 1760 [in] IShellFolder *psf, 1761 [in] HWND hwndOwner, 1762 [in] IDataObject *pdtobj, 1763 [in] UINT uMsg, 1764 [in] WPARAM wParam, 1765 [in] LPARAM lParam); 1766} 1767 1768/***************************************************************************** 1769 * IShellExecuteHookA interface 1770 */ 1771[ 1772 object, 1773 uuid(000214f5-0000-0000-c000-000000000046), 1774 pointer_default(unique), 1775 local 1776] 1777interface IShellExecuteHookA : IUnknown 1778{ 1779 cpp_quote("struct _SHELLEXECUTEINFOA;") 1780 HRESULT Execute( 1781 [in, out] struct _SHELLEXECUTEINFOA* pei); 1782} 1783 1784 1785/***************************************************************************** 1786 * IShellExecuteHookW interface 1787 */ 1788[ 1789 object, 1790 uuid(000214fb-0000-0000-c000-000000000046), 1791 pointer_default(unique), 1792 local 1793] 1794interface IShellExecuteHookW : IUnknown 1795{ 1796 cpp_quote("struct _SHELLEXECUTEINFOW;") 1797 HRESULT Execute( 1798 [in, out] struct _SHELLEXECUTEINFOW* pei); 1799} 1800 1801/***************************************************************************** 1802 * IShellLinkDataList interface 1803 */ 1804[ 1805 object, 1806 uuid(45e2b4ae-b1c3-11d0-b92f-00a0c90312e1), 1807 pointer_default(unique) 1808] 1809interface IShellLinkDataList : IUnknown 1810{ 1811 [local] HRESULT AddDataBlock( 1812 [in] void *pDataBlock); 1813 [local] HRESULT CopyDataBlock( 1814 [in] DWORD dwSig, 1815 [out] void **ppDataBlock); 1816 HRESULT RemoveDataBlock( 1817 [in] DWORD dwSig); 1818 HRESULT GetFlags( 1819 [out] DWORD *pdwFlags); 1820 HRESULT SetFlags( 1821 [in] DWORD dwFlags); 1822} 1823 1824 1825/***************************************************************************** 1826 * IResolveShellLink interface 1827 */ 1828[ 1829 object, 1830 uuid(5cd52983-9449-11d2-963a-00c04f79adf0), 1831 pointer_default(unique) 1832] 1833interface IResolveShellLink : IUnknown 1834{ 1835 HRESULT ResolveShellLink( 1836 [in] IUnknown *punk, 1837 [in] HWND hwnd, 1838 [in] DWORD fFlags); 1839} 1840 1841 1842/***************************************************************************** 1843 * IURLSearchHook interface 1844 */ 1845[ 1846 object, 1847 uuid(ac60f6a0-0fd9-11d0-99cb-00c04fd64497), 1848 pointer_default(unique), 1849 local 1850] 1851interface IURLSearchHook : IUnknown 1852{ 1853 HRESULT Translate( 1854 [in, out] LPWSTR lpwszSearchURL, 1855 [in] DWORD cchBufferSize); 1856} 1857 1858 1859/***************************************************************************** 1860 * ISearchContext interface 1861 */ 1862[ 1863 object, 1864 uuid(09f656a2-41af-480c-88f7-16cc0d164615), 1865 pointer_default(unique), 1866 local 1867] 1868interface ISearchContext : IUnknown 1869{ 1870 HRESULT GetSearchUrl( 1871 [in] BSTR *pbstrSearchUrl); 1872 HRESULT GetSearchText( 1873 [in] BSTR *pbstrSearchText); 1874 HRESULT GetSearchStyle( 1875 [in] BSTR *pdwSearchStyle); 1876} 1877 1878 1879/***************************************************************************** 1880 * IURLSearchHook2 interface 1881 */ 1882[ 1883 object, 1884 uuid(5ee44da4-6d32-46e3-86bc-07540dedd0e0), 1885 pointer_default(unique), 1886 local 1887] 1888interface IURLSearchHook2 : IURLSearchHook 1889{ 1890 HRESULT TranslateWithSearchContext( 1891 [in, out] LPWSTR lpwszSearchURL, 1892 [in] DWORD cchBufferSize, 1893 [in] ISearchContext *pSearchContext); 1894} 1895 1896 1897cpp_quote("#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)") 1898 1899/***************************************************************************** 1900 * INewShortcutHookA interface 1901 */ 1902[ 1903 object, 1904 uuid(000214e1-0000-0000-c000-000000000046), 1905 pointer_default(unique), 1906 local 1907] 1908interface INewShortcutHookA : IUnknown 1909{ 1910 HRESULT SetReferent( 1911 [in] LPCSTR pcszReferent, 1912 [in] HWND hwnd); 1913 HRESULT GetReferent( 1914 [out] LPSTR pcszReferent, 1915 [in] int cchReferent); 1916 HRESULT SetFolder( 1917 [in] LPCSTR pcszReferent); 1918 HRESULT GetFolder( 1919 [out] LPSTR pcszReferent, 1920 [in] int cchFolder); 1921 HRESULT GetName( 1922 [out] LPSTR pszName, 1923 [in] int cchName); 1924 HRESULT GetExtension( 1925 [out] LPSTR pszExtension, 1926 [in] int cchExtension); 1927} 1928 1929 1930/***************************************************************************** 1931 * INewShortcutHookW interface 1932 */ 1933[ 1934 object, 1935 uuid(000214f7-0000-0000-c000-000000000046), 1936 pointer_default(unique), 1937 local 1938] 1939interface INewShortcutHookW : IUnknown 1940{ 1941 HRESULT SetReferent( 1942 [in] LPCWSTR pcszReferent, 1943 [in] HWND hwnd); 1944 HRESULT GetReferent( 1945 [out] LPWSTR pcszReferent, 1946 [in] int cchReferent); 1947 HRESULT SetFolder( 1948 [in] LPCWSTR pcszReferent); 1949 HRESULT GetFolder( 1950 [out] LPWSTR pcszReferent, 1951 [in] int cchFolder); 1952 HRESULT GetName( 1953 [out] LPWSTR pszName, 1954 [in] int cchName); 1955 HRESULT GetExtension( 1956 [out] LPWSTR pszExtension, 1957 [in] int cchExtension); 1958} 1959 1960/***************************************************************************** 1961 * IRunnableTask interface 1962 */ 1963[ 1964 object, 1965 uuid(85788d00-6807-11d0-b810-00c04fd706ec), 1966 pointer_default(unique), 1967 local 1968] 1969interface IRunnableTask : IUnknown 1970{ 1971 HRESULT Run(); 1972 HRESULT Kill([in] BOOL fWait); 1973 HRESULT Suspend(); 1974 HRESULT Resume(); 1975 ULONG IsRunning(); 1976} 1977 1978/***************************************************************************** 1979 * IShellChangeNotify interface 1980 */ 1981[ 1982 object, 1983 uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2), 1984 pointer_default(unique), 1985 local 1986] 1987interface IShellChangeNotify : IUnknown 1988{ 1989 HRESULT OnChange( 1990 [in] LONG lEvent, 1991 [in] LPCITEMIDLIST pidl1, 1992 [in] LPCITEMIDLIST pidl2); 1993} 1994 1995cpp_quote("#define STR_FILE_SYS_BIND_DATA L\"File System Bind Data\"") 1996 1997/***************************************************************************** 1998 * IFileSystemBindData interface 1999 */ 2000[ 2001 object, 2002 uuid(01e18d10-4d8b-11d2-855d-006008059367), 2003 pointer_default(unique), 2004 local 2005] 2006interface IFileSystemBindData : IUnknown 2007{ 2008 HRESULT SetFindData( 2009 [in] const WIN32_FIND_DATAW *pfd); 2010 HRESULT GetFindData( 2011 [out] WIN32_FIND_DATAW *pfd); 2012} 2013 2014/***************************************************************************** 2015 * ITaskbarList interface 2016 */ 2017[ 2018 object, 2019 uuid(56FDF342-FD6D-11d0-958A-006097C9A090), 2020 pointer_default(unique) 2021] 2022interface ITaskbarList : IUnknown 2023{ 2024 HRESULT HrInit(); 2025 2026 HRESULT AddTab( 2027 [in] HWND hwnd); 2028 2029 HRESULT DeleteTab( 2030 [in] HWND hwnd); 2031 2032 HRESULT ActivateTab( 2033 [in] HWND hwnd); 2034 2035 HRESULT SetActiveAlt( 2036 [in] HWND hwnd); 2037} 2038 2039/***************************************************************************** 2040 * ITaskbarList2 interface 2041 */ 2042[ 2043 object, 2044 uuid(602D4995-B13A-429B-A66E-1935E44F4317), 2045 pointer_default(unique) 2046] 2047interface ITaskbarList2 : ITaskbarList 2048{ 2049 HRESULT MarkFullscreenWindow( 2050 [in] HWND hwnd, 2051 [in] BOOL fullscreen); 2052} 2053 2054cpp_quote("#ifdef MIDL_PASS") 2055typedef IUnknown* HIMAGELIST; 2056cpp_quote("#endif") 2057 2058typedef [v1_enum] enum THUMBBUTTONFLAGS { 2059 THBF_ENABLED = 0x0000, 2060 THBF_DISABLED = 0x0001, 2061 THBF_DISMISSONCLICK = 0x0002, 2062 THBF_NOBACKGROUND = 0x0004, 2063 THBF_HIDDEN = 0x0008, 2064 THBF_NONINTERACTIVE = 0x0010 2065} THUMBBUTTONFLAGS; 2066 2067cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)") 2068 2069typedef [v1_enum] enum THUMBBUTTONMASK { 2070 THB_BITMAP = 0x0001, 2071 THB_ICON = 0x0002, 2072 THB_TOOLTIP = 0x0004, 2073 THB_FLAGS = 0x0008 2074} THUMBBUTTONMASK; 2075 2076cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)") 2077 2078cpp_quote("#include <pshpack8.h>") 2079typedef struct THUMBBUTTON { 2080 THUMBBUTTONMASK dwMask; 2081 UINT iId; 2082 UINT iBitmap; 2083 HICON hIcon; 2084 WCHAR szTip[260]; 2085 THUMBBUTTONFLAGS dwFlags; 2086} THUMBBUTTON, *LPTHUMBBUTTON; 2087cpp_quote("#include <poppack.h>") 2088 2089[ 2090 uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf), 2091 object 2092] 2093interface ITaskbarList3 : ITaskbarList2 2094{ 2095 typedef [v1_enum] enum TBPFLAG { 2096 TBPF_NOPROGRESS = 0x0000, 2097 TBPF_INDETERMINATE = 0x0001, 2098 TBPF_NORMAL = 0x0002, 2099 TBPF_ERROR = 0x0004, 2100 TBPF_PAUSED = 0x0008 2101 } TBPFLAG; 2102 2103 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)") 2104 2105 HRESULT SetProgressValue( 2106 [in] HWND hwnd, 2107 [in] ULONGLONG ullCompleted, 2108 [in] ULONGLONG ullTotal); 2109 2110 HRESULT SetProgressState( 2111 [in] HWND hwnd, 2112 [in] TBPFLAG tbpFlags); 2113 2114 HRESULT RegisterTab( 2115 [in] HWND hwndTab, 2116 [in] HWND hwndMDI); 2117 2118 HRESULT UnregisterTab([in] HWND hwndTab); 2119 2120 HRESULT SetTabOrder( 2121 [in] HWND hwndTab, 2122 [in] HWND hwndInsertBefore); 2123 2124 HRESULT SetTabActive( 2125 [in] HWND hwndTab, 2126 [in] HWND hwndMDI, 2127 [in] DWORD dwReserved); 2128 2129 HRESULT ThumbBarAddButtons( 2130 [in] HWND hwnd, 2131 [in] UINT cButtons, 2132 [in, size_is(cButtons)] LPTHUMBBUTTON pButton); 2133 2134 HRESULT ThumbBarUpdateButtons( 2135 [in] HWND hwnd, 2136 [in] UINT cButtons, 2137 [in, size_is(cButtons)] LPTHUMBBUTTON pButton); 2138 2139 HRESULT ThumbBarSetImageList( 2140 [in] HWND hwnd, 2141 [in] HIMAGELIST himl); 2142 2143 HRESULT SetOverlayIcon( 2144 [in] HWND hwnd, 2145 [in] HICON hIcon, 2146 [in, unique, string] LPCWSTR pszDescription); 2147 2148 HRESULT SetThumbnailTooltip( 2149 [in] HWND hwnd, 2150 [in, unique, string] LPCWSTR pszTip); 2151 2152 HRESULT SetThumbnailClip( 2153 [in] HWND hwnd, 2154 [in] RECT *prcClip); 2155} 2156 2157[ 2158 uuid(c43dc798-95d1-4bea-9030-bb99e2983a1a), 2159 object 2160] 2161interface ITaskbarList4 : ITaskbarList3 2162{ 2163 typedef [v1_enum] enum STPFLAG { 2164 STPF_NONE = 0x0000, 2165 STPF_USEAPPTHUMBNAILALWAYS = 0x0001, 2166 STPF_USEAPPTHUMBNAILWHENACTIVE = 0x0002, 2167 STPF_USEAPPPEEKALWAYS = 0x0004, 2168 STPF_USEAPPPEEKWHENACTIVE = 0x0008 2169 } STPFLAG; 2170 2171 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)") 2172 2173 HRESULT SetTabProperties( 2174 [in] HWND hwndTab, 2175 [in] STPFLAG stpFlags); 2176} 2177 2178/***************************************************************************** 2179 * IDefaultExtractIconInit interface 2180 */ 2181 2182[ 2183 object, 2184 uuid(800AB0B8-F5FA-4e72-8FF3-B1A243B87BD9), /* FIXME: wrong value! */ 2185 pointer_default(unique), 2186 local 2187] 2188interface IDefaultExtractIconInit : IUnknown 2189{ 2190 HRESULT SetDefaultIcon( 2191 [in] LPCWSTR pszFile, 2192 [in] int iIcon); 2193 HRESULT SetFlags( 2194 [in] UINT uFlags); 2195 HRESULT SetKey( 2196 [in] HKEY hkey); 2197 HRESULT SetNormalIcon( 2198 [in] LPCWSTR pszFile, 2199 [in] int iIcon); 2200 HRESULT SetOpenIcon( 2201 [in] LPCWSTR pszFile, 2202 [in] int iIcon); 2203 HRESULT SetShortcutIcon( 2204 [in] LPCWSTR pszFile, 2205 [in] int iIcon); 2206} 2207 2208 2209#ifdef __REACTOS__ 2210/***************************************************************************** 2211 * IExplorerCommand interface (Vista+) 2212 */ 2213 2214interface IEnumExplorerCommand; 2215 2216[ 2217 uuid(A08CE4D0-FA25-44AB-B57C-C7B1C323E0B9), 2218 pointer_default(unique) 2219] 2220interface IExplorerCommand : IUnknown 2221{ 2222 cpp_quote("// GetIcon(ppszIcon) Receives resource string that identifies icon source") 2223 typedef [v1_enum] enum _EXPCMDSTATE 2224 { 2225 ECS_ENABLED = 0x000, 2226 ECS_DISABLED = 0x001, 2227 ECS_HIDDEN = 0x002, 2228 ECS_CHECKBOX = 0x004, 2229 ECS_CHECKED = 0x008, 2230 ECS_RADIOCHECK = 0x010, // Windows 7 2231 } EXPCMDSTATE; 2232 2233 typedef [v1_enum] enum _EXPCMDFLAGS 2234 { 2235 ECF_DEFAULT = 0x000, 2236 ECF_HASSUBCOMMANDS = 0x001, 2237 ECF_HASSPLITBUTTON = 0x002, 2238 ECF_HIDELABEL = 0x004, 2239 ECF_ISSEPARATOR = 0x008, 2240 ECF_HASLUASHIELD = 0x010, 2241 ECF_SEPARATORBEFORE = 0x020, // Windows 7 2242 ECF_SEPARATORAFTER = 0x040, // Windows 7 2243 ECF_ISDROPDOWN = 0x080, // Windows 7 2244 ECF_TOGGLEABLE = 0x100, // Windows 8 2245 ECF_AUTOMENUICONS = 0x200, // Windows 8 2246 } EXPCMDFLAGS; 2247 2248 HRESULT GetTitle( 2249 [in, unique] IShellItemArray *psiItemArray, 2250 [out, string] LPWSTR *ppszName); 2251 HRESULT GetIcon( 2252 [in, unique] IShellItemArray *psiItemArray, 2253 [out, string] LPWSTR *ppszIcon); 2254 HRESULT GetToolTip( 2255 [in, unique] IShellItemArray *psiItemArray, 2256 [out, string] LPWSTR *ppszInfotip); 2257 HRESULT GetCanonicalName( 2258 [out] GUID* pguidCommandName); 2259 HRESULT GetState( 2260 [in] IShellItemArray *psiItemArray, 2261 [in] BOOL fOkToBeSlow, 2262 [out] EXPCMDSTATE *pCmdState); 2263 HRESULT Invoke( 2264 [in] IShellItemArray *psiItemArray, 2265 [in, unique] IBindCtx *pbc); 2266 HRESULT GetFlags( 2267 [out] EXPCMDFLAGS *pFlags); 2268 HRESULT EnumSubCommands( 2269 [out] IEnumExplorerCommand **ppEnum); 2270}; 2271 2272 2273/***************************************************************************** 2274 * IExplorerCommandState interface (Vista+) 2275 */ 2276[ 2277 object, 2278 uuid(BDDACB60-7657-47AE-8445-D23E1ACF82AE), 2279 pointer_default(unique) 2280] 2281interface IExplorerCommandState : IUnknown 2282{ 2283 HRESULT GetState( 2284 [in] IShellItemArray *psiItemArray, 2285 [in] BOOL fOkToBeSlow, 2286 [out] EXPCMDSTATE *pCmdState); 2287} 2288 2289 2290/***************************************************************************** 2291 * IInitializeCommand interface (Vista+) 2292 */ 2293[ 2294 object, 2295 uuid(85075ACF-231F-40EA-9610-D26B7B58F638), 2296 pointer_default(unique) 2297] 2298interface IInitializeCommand : IUnknown 2299{ 2300 HRESULT Initialize( 2301 [in, string] LPCWSTR pszCommandName, 2302 [in] IPropertyBag *ppb); 2303} 2304 2305 2306/***************************************************************************** 2307 * IEnumExplorerCommand interface (Vista+) 2308 */ 2309[ 2310 object, 2311 uuid(A88826F8-186F-4987-AADE-EA0CEF8FBFE8), 2312 pointer_default(unique) 2313] 2314interface IEnumExplorerCommand : IUnknown 2315{ 2316 [local] 2317 HRESULT Next( 2318 [in] ULONG celt, 2319 [out] IExplorerCommand** pUICommand, 2320 [out, optional] ULONG *pceltFetched); 2321 [call_as(Next)] 2322 HRESULT RemoteNext( 2323 [in] ULONG celt, 2324 [out] IExplorerCommand** pUICommand, 2325 [out, optional] ULONG *pceltFetched); 2326 HRESULT Skip( 2327 [in] ULONG celt); 2328 HRESULT Reset(); 2329 HRESULT Clone( 2330 [out] IEnumExplorerCommand **ppenum); 2331}; 2332 2333 2334/***************************************************************************** 2335 * IExplorerCommandProvider interface (Vista+) 2336 */ 2337[ 2338 uuid(64961751-0835-43C0-8FFE-D57686530E64), 2339 pointer_default(unique) 2340] 2341interface IExplorerCommandProvider : IUnknown 2342{ 2343 cpp_quote("// GetCommands usually creates an IEnumExplorerCommand") 2344 cpp_quote("// GetCommand usually creates an IExplorerCommand") 2345 2346 HRESULT GetCommands( 2347 [in] IUnknown *punkSite, 2348 [in] REFIID riid, 2349 [out, iid_is(riid)] void **ppv); 2350 HRESULT GetCommand( 2351 [in] REFGUID rguidCommandId, 2352 [in] REFIID riid, 2353 [out, iid_is(riid)] void **ppv); 2354}; 2355 2356#endif // __REACTOS__ 2357 2358/***************************************************************************** 2359 * IDeskBand interface 2360 */ 2361cpp_quote("#define DBIM_MINSIZE 0x0001") 2362cpp_quote("#define DBIM_MAXSIZE 0x0002") 2363cpp_quote("#define DBIM_INTEGRAL 0x0004") 2364cpp_quote("#define DBIM_ACTUAL 0x0008") 2365cpp_quote("#define DBIM_TITLE 0x0010") 2366cpp_quote("#define DBIM_MODEFLAGS 0x0020") 2367cpp_quote("#define DBIM_BKCOLOR 0x0040") 2368 2369cpp_quote("#include <pshpack8.h>") 2370 2371typedef struct tagDESKBANDINFO 2372{ 2373 DWORD dwMask; 2374 POINTL ptMinSize; 2375 POINTL ptMaxSize; 2376 POINTL ptIntegral; 2377 POINTL ptActual; 2378 WCHAR wszTitle[256]; 2379 DWORD dwModeFlags; 2380 COLORREF crBkgnd; 2381} DESKBANDINFO; 2382 2383cpp_quote("#include <poppack.h>") 2384 2385cpp_quote("#define DBIMF_NORMAL 0x0000") 2386cpp_quote("#define DBIMF_FIXED 0x0001") 2387cpp_quote("#define DBIMF_FIXEDBMP 0x0004 // a fixed background bitmap (if supported)") 2388cpp_quote("#define DBIMF_VARIABLEHEIGHT 0x0008") 2389cpp_quote("#define DBIMF_UNDELETEABLE 0x0010") 2390cpp_quote("#define DBIMF_DEBOSSED 0x0020") 2391cpp_quote("#define DBIMF_BKCOLOR 0x0040") 2392cpp_quote("#define DBIMF_USECHEVRON 0x0080") 2393cpp_quote("#define DBIMF_BREAK 0x0100") 2394cpp_quote("#define DBIMF_ADDTOFRONT 0x0200") 2395cpp_quote("#define DBIMF_TOPALIGN 0x0400") 2396cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)") 2397cpp_quote("#define DBIMF_NOGRIPPER 0x0800") 2398cpp_quote("#define DBIMF_ALWAYSGRIPPER 0x1000") 2399cpp_quote("#define DBIMF_NOMARGINS 0x2000") 2400cpp_quote("#endif // NTDDI_LONGHORN") 2401 2402cpp_quote("#define DBIF_VIEWMODE_NORMAL 0x0000") 2403cpp_quote("#define DBIF_VIEWMODE_VERTICAL 0x0001") 2404cpp_quote("#define DBIF_VIEWMODE_FLOATING 0x0002") 2405cpp_quote("#define DBIF_VIEWMODE_TRANSPARENT 0x0004") 2406 2407enum tagDESKBANDCID { 2408 DBID_BANDINFOCHANGED = 0, 2409 DBID_SHOWONLY = 1, 2410 DBID_MAXIMIZEBAND = 2, 2411 DBID_PUSHCHEVRON = 3, 2412 DBID_DELAYINIT = 4, 2413 DBID_FINISHINIT = 5, 2414 DBID_SETWINDOWTHEME = 6, 2415 DBID_PERMITAUTOHIDE = 7, 2416}; 2417 2418cpp_quote("#define DBPC_SELECTFIRST (DWORD)-1") 2419cpp_quote("#define DBPC_SELECTLAST (DWORD)-2") 2420 2421cpp_quote("#define CGID_DeskBand IID_IDeskBand") 2422 2423[ 2424 uuid(EB0FE172-1A3A-11D0-89B3-00A0C90A90AC), 2425 object, 2426] 2427interface IDeskBand : IDockingWindow 2428{ 2429 HRESULT GetBandInfo( 2430 [in] DWORD dwBandID, 2431 [in] DWORD dwViewMode, 2432 [in, out] DESKBANDINFO* pdbi); 2433} 2434 2435cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)") 2436 2437[ 2438 uuid(EB0FE173-1A3A-11D0-89B3-00A0C90A90AC), 2439 object, 2440 pointer_default(unique), 2441 local 2442] 2443interface IDeskBar : IOleWindow 2444{ 2445 HRESULT SetClient([in] IUnknown* punkClient); 2446 2447 HRESULT GetClient([out] IUnknown** ppunkClient); 2448 2449 HRESULT OnPosRectChangeDB([in] RECT *prc); 2450} 2451 2452 2453/***************************************************************************** 2454 * IMenuPopup interface 2455 */ 2456[ 2457 uuid(D1E7AFEB-6A2E-11d0-8C78-00C04FD918B4), 2458 object, 2459 pointer_default(unique), 2460 local 2461] 2462interface IMenuPopup : IDeskBar 2463{ 2464 enum tagMENUPOPUPSELECT 2465 { 2466 MPOS_EXECUTE = 0, 2467 MPOS_FULLCANCEL, 2468 MPOS_CANCELLEVEL, 2469 MPOS_SELECTLEFT, 2470 MPOS_SELECTRIGHT, 2471 MPOS_CHILDTRACKING 2472 }; 2473 2474 enum tagMENUPOPUPPOPUPFLAGS 2475 { 2476 MPPF_SETFOCUS = 0x00000001, 2477 MPPF_INITIALSELECT = 0x00000002, 2478 MPPF_NOANIMATE = 0x00000004, 2479 MPPF_KEYBOARD = 0x00000010, 2480 MPPF_REPOSITION = 0x00000020, 2481 MPPF_FORCEZORDER = 0x00000040, 2482 MPPF_FINALSELECT = 0x00000080, 2483 MPPF_TOP = 0x20000000, 2484 MPPF_LEFT = 0x40000000, 2485 MPPF_RIGHT = 0x60000000, 2486 MPPF_BOTTOM = 0x80000000, 2487 MPPF_POS_MASK = 0xE0000000, 2488 MPPF_ALIGN_LEFT = 0x02000000, 2489 MPPF_ALIGN_RIGHT = 0x04000000 2490 }; 2491 typedef int MP_POPUPFLAGS; 2492 2493 HRESULT Popup( 2494 [in] POINTL *ppt, 2495 [in] RECTL *prcExclude, 2496 [in] MP_POPUPFLAGS dwFlags); 2497 2498 HRESULT OnSelect([in] DWORD dwSelectType); 2499 2500 HRESULT SetSubMenu( 2501 [in] IMenuPopup* pmp, 2502 [in] BOOL fSet); 2503} 2504 2505cpp_quote("#endif /* _WIN32_IE_IE60 */") 2506 2507cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE40)") 2508 2509/***************************************************************************** 2510 * IBandSite interface 2511 */ 2512cpp_quote("#include <pshpack8.h>") 2513 2514typedef struct tagBANDSITEINFO 2515{ 2516 DWORD dwMask; 2517 DWORD dwState; 2518 DWORD dwStyle; 2519} BANDSITEINFO; 2520 2521cpp_quote("#include <poppack.h>") 2522 2523 2524enum tagBANDSITECID { 2525 BSID_BANDADDED, 2526 BSID_BANDREMOVED, 2527}; 2528 2529cpp_quote("#define BSIM_STATE 0x00000001") 2530cpp_quote("#define BSIM_STYLE 0x00000002") 2531 2532cpp_quote("#define BSSF_VISIBLE 0x00000001") 2533cpp_quote("#define BSSF_NOTITLE 0x00000002") 2534cpp_quote("#define BSSF_UNDELETEABLE 0x00001000") 2535 2536cpp_quote("#define BSIS_AUTOGRIPPER 0x00000000") 2537cpp_quote("#define BSIS_NOGRIPPER 0x00000001") 2538cpp_quote("#define BSIS_ALWAYSGRIPPER 0x00000002") 2539cpp_quote("#define BSIS_LEFTALIGN 0x00000004") 2540cpp_quote("#define BSIS_SINGLECLICK 0x00000008") 2541cpp_quote("#define BSIS_NOCONTEXTMENU 0x00000010") 2542cpp_quote("#define BSIS_NODROPTARGET 0x00000020") 2543cpp_quote("#define BSIS_NOCAPTION 0x00000040") 2544cpp_quote("#define BSIS_PREFERNOLINEBREAK 0x00000080") 2545cpp_quote("#define BSIS_LOCKED 0x00000100") 2546cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)") 2547cpp_quote("#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200") 2548cpp_quote("#endif /* _WIN32_IE_IE70 */") 2549 2550cpp_quote("#define SID_SBandSite IID_IBandSite") 2551cpp_quote("#define CGID_BandSite IID_IBandSite") 2552 2553[ 2554 object, 2555 uuid(4CF504B0-DE96-11D0-8B3F-00A0C911E8E5) 2556] 2557interface IBandSite : IUnknown 2558{ 2559 HRESULT AddBand([in] IUnknown* punk); 2560 2561 HRESULT EnumBands( 2562 [in] UINT uBand, 2563 [out] DWORD* pdwBandID); 2564 2565 HRESULT QueryBand( 2566 [in] DWORD dwBandID, 2567 [out] IDeskBand** ppstb, 2568 [out] DWORD* pdwState, 2569 [out, string, size_is(cchName)] LPWSTR pszName, 2570 [in] int cchName); 2571 2572 HRESULT SetBandState( 2573 [in] DWORD dwBandID, 2574 [in] DWORD dwMask, 2575 [in] DWORD dwState); 2576 2577 HRESULT RemoveBand([in] DWORD dwBandID); 2578 2579 HRESULT GetBandObject( 2580 [in] DWORD dwBandID, 2581 [in] REFIID riid, 2582 [out, iid_is(riid)] void **ppv); 2583 2584 HRESULT SetBandSiteInfo([in] const BANDSITEINFO *pbsinfo); 2585 2586 HRESULT GetBandSiteInfo([in, out] BANDSITEINFO *pbsinfo); 2587} 2588 2589cpp_quote("#endif /* _WIN32_IE_IE40 */") 2590 2591/***************************************************************************** 2592 * IMenuBand interface 2593 */ 2594[ 2595 uuid(568804CD-CBD7-11d0-9816-00C04FD91972), 2596 object, 2597 pointer_default(unique), 2598 local 2599] 2600interface IMenuBand : IUnknown 2601{ 2602 enum tagMENUBANDHANDLERCID { 2603 MBHANDCID_PIDLSELECT = 0, 2604 }; 2605 2606 HRESULT IsMenuMessage([in] MSG* pmsg); 2607 2608 HRESULT TranslateMenuMessage( 2609 [in, out] MSG* pmsg, 2610 [out] LRESULT* plRet); 2611} 2612 2613/***************************************************************************** 2614 * IShellMenuCallback interface 2615 */ 2616cpp_quote("#include <pshpack8.h>") 2617 2618typedef struct tagSMDATA 2619{ 2620 DWORD dwMask; 2621 DWORD dwFlags; 2622 HMENU hmenu; 2623 HWND hwnd; 2624 UINT uId; 2625 UINT uIdParent; 2626 UINT uIdAncestor; 2627 IUnknown *punk; 2628 LPITEMIDLIST pidlFolder; 2629 LPITEMIDLIST pidlItem; 2630 IShellFolder *psf; 2631 void *pvUserData; 2632} SMDATA, *LPSMDATA; 2633 2634cpp_quote("#define SMDM_SHELLFOLDER 0x00000001") 2635cpp_quote("#define SMDM_HMENU 0x00000002") 2636cpp_quote("#define SMDM_TOOLBAR 0x00000004") 2637 2638typedef struct tagSMINFO 2639{ 2640 DWORD dwMask; 2641 DWORD dwType; 2642 DWORD dwFlags; 2643 int iIcon; 2644} SMINFO, *PSMINFO; 2645 2646typedef struct tagSHCSCHANGENOTIFYSTRUCT 2647{ 2648 LONG lEvent; 2649 LPCITEMIDLIST pidl1; 2650 LPCITEMIDLIST pidl2; 2651} SMCSHCHANGENOTIFYSTRUCT, *PSMCSHCHANGENOTIFYSTRUCT; 2652 2653cpp_quote("#include <poppack.h>") 2654 2655enum 2656{ 2657 SMIM_TYPE = 0x00000001, 2658 SMIM_FLAGS = 0x00000002, 2659 SMIM_ICON = 0x00000004 2660}; 2661 2662enum 2663{ 2664 SMIT_SEPARATOR = 0x00000001, 2665 SMIT_STRING = 0x00000002 2666}; 2667 2668enum 2669{ 2670 SMIF_ICON = 0x00000001, 2671 SMIF_ACCELERATOR = 0x00000002, 2672 SMIF_DROPTARGET = 0x00000004, 2673 SMIF_SUBMENU = 0x00000008, 2674 SMIF_CHECKED = 0x00000020, 2675 SMIF_DROPCASCADE = 0x00000040, 2676 SMIF_HIDDEN = 0x00000080, 2677 SMIF_DISABLED = 0x00000100, 2678 SMIF_TRACKPOPUP = 0x00000200, 2679 SMIF_DEMOTED = 0x00000400, 2680 SMIF_ALTSTATE = 0x00000800, 2681 SMIF_DRAGNDROP = 0x00001000, 2682 SMIF_NEW = 0x00002000, 2683}; 2684 2685 2686cpp_quote("#define SMC_INITMENU 0x00000001") 2687cpp_quote("#define SMC_CREATE 0x00000002") 2688cpp_quote("#define SMC_EXITMENU 0x00000003") 2689cpp_quote("#define SMC_GETINFO 0x00000005") 2690cpp_quote("#define SMC_GETSFINFO 0x00000006") 2691cpp_quote("#define SMC_GETOBJECT 0x00000007") 2692cpp_quote("#define SMC_GETSFOBJECT 0x00000008") 2693cpp_quote("#define SMC_SFEXEC 0x00000009") 2694cpp_quote("#define SMC_SFSELECTITEM 0x0000000A") 2695cpp_quote("#define SMC_REFRESH 0x00000010") 2696cpp_quote("#define SMC_DEMOTE 0x00000011") 2697cpp_quote("#define SMC_PROMOTE 0x00000012") 2698cpp_quote("#define SMC_DEFAULTICON 0x00000016") 2699cpp_quote("#define SMC_NEWITEM 0x00000017") 2700cpp_quote("#define SMC_CHEVRONEXPAND 0x00000019") 2701cpp_quote("#define SMC_DISPLAYCHEVRONTIP 0x0000002A") 2702cpp_quote("#define SMC_SETSFOBJECT 0x0000002D") 2703cpp_quote("#define SMC_SHCHANGENOTIFY 0x0000002E") 2704cpp_quote("#define SMC_CHEVRONGETTIP 0x0000002F") 2705cpp_quote("#define SMC_SFDDRESTRICTED 0x00000030") 2706 2707[ 2708 uuid(4CA300A1-9B8D-11d1-8B22-00C04FD918D0), 2709 object, 2710 pointer_default(unique), 2711 local 2712] 2713interface IShellMenuCallback : IUnknown 2714{ 2715 HRESULT CallbackSM( 2716 [in, out] LPSMDATA psmd, 2717 [in] UINT uMsg, 2718 [in] WPARAM wParam, 2719 [in] LPARAM lParam); 2720} 2721 2722 2723/***************************************************************************** 2724 * IShellMenu interface 2725 */ 2726 2727cpp_quote("#define SMINIT_DEFAULT 0x00000000") 2728cpp_quote("#define SMINIT_RESTRICT_DRAGDROP 0x00000002") 2729cpp_quote("#define SMINIT_TOPLEVEL 0x00000004") 2730cpp_quote("#define SMINIT_CACHED 0x00000010") 2731cpp_quote("#define SMINIT_VERTICAL 0x10000000") 2732cpp_quote("#define SMINIT_HORIZONTAL 0x20000000") 2733cpp_quote("") 2734cpp_quote("#define ANCESTORDEFAULT (UINT)-1") 2735cpp_quote("") 2736cpp_quote("#define SMSET_TOP 0x10000000") 2737cpp_quote("#define SMSET_BOTTOM 0x20000000") 2738cpp_quote("#define SMSET_DONTOWN 0x00000001") 2739cpp_quote("") 2740cpp_quote("#define SMINV_REFRESH 0x00000001") 2741cpp_quote("#define SMINV_ID 0x00000008") 2742 2743[ 2744 uuid(EE1F7637-E138-11d1-8379-00C04FD918D0), 2745 object, 2746 pointer_default(unique), 2747 local 2748] 2749interface IShellMenu : IUnknown 2750{ 2751 HRESULT Initialize( 2752 [in] IShellMenuCallback *psmc, 2753 [in] UINT uId, 2754 [in] UINT uIdAncestor, 2755 [in] DWORD dwFlags); 2756 2757 HRESULT GetMenuInfo( 2758 [out] IShellMenuCallback **ppsmc, 2759 [out] UINT *puId, 2760 [out] UINT *puIdAncestor, 2761 [out] DWORD *pdwFlags); 2762 2763 HRESULT SetShellFolder( 2764 [in] IShellFolder *psf, 2765 [in] LPCITEMIDLIST pidlFolder, 2766 [in] HKEY hKey, 2767 [in] DWORD dwFlags); 2768 2769 HRESULT GetShellFolder( 2770 [out] DWORD *pdwFlags, 2771 [out] LPITEMIDLIST *ppidl, 2772 [in] REFIID riid, 2773 [out] void **ppv); 2774 2775 HRESULT SetMenu( 2776 [in] HMENU hmenu, 2777 [in] HWND hwnd, 2778 [in] DWORD dwFlags); 2779 2780 HRESULT GetMenu( 2781 [out] HMENU *phmenu, 2782 [out] HWND *phwnd, 2783 [out] DWORD *pdwFlags); 2784 2785 HRESULT InvalidateItem( 2786 [in] LPSMDATA psmd, 2787 [in] DWORD dwFlags); 2788 2789 HRESULT GetState( 2790 [out] LPSMDATA psmd); 2791 2792 HRESULT SetMenuToolbar( 2793 [in] IUnknown *punk, 2794 [in] DWORD dwFlags); 2795} 2796 2797cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)") 2798 2799/***************************************************************************** 2800 * ITrackShellMenu interface 2801 */ 2802[ 2803 uuid(8278F932-2A3E-11d2-838F-00C04FD918D0), 2804 object, 2805 pointer_default(unique), 2806 local 2807] 2808interface ITrackShellMenu : IShellMenu 2809{ 2810 HRESULT SetObscured( 2811 [in] HWND hwndTB, 2812 [in] IUnknown *punkBand, 2813 DWORD dwSMSetFlags); 2814 2815 HRESULT Popup( 2816 [in] HWND hwnd, 2817 [in] POINTL *ppt, 2818 [in] RECTL *prcExclude, 2819 MP_POPUPFLAGS dwFlags); 2820}; 2821 2822cpp_quote("#endif /* _WIN32_IE_IE60 */") 2823 2824/***************************************************************************** 2825 * IAutoCompleteDropDown interface 2826 */ 2827[ 2828 object, 2829 uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB), 2830 pointer_default(unique) 2831] 2832interface IAutoCompleteDropDown : IUnknown 2833{ 2834cpp_quote("#define ACDD_VISIBLE 0x0001") 2835 2836 HRESULT GetDropDownStatus( 2837 [out] DWORD *pdwFlags, 2838 [out, string] LPWSTR *ppwszString); 2839 2840 HRESULT ResetEnumerator(); 2841} 2842 2843/***************************************************************************** 2844 * IProfferService interface 2845 */ 2846[ 2847 object, 2848 uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0), 2849 pointer_default(unique) 2850] 2851interface IProfferService : IUnknown 2852{ 2853 HRESULT ProfferService( 2854 [in] REFGUID service, 2855 [in] IServiceProvider *pService, 2856 [out] DWORD *pCookie); 2857 2858 HRESULT RevokeService([in] DWORD cookie); 2859} 2860 2861/***************************************************************************** 2862 * IExplorerBrowserEvents interface 2863 */ 2864[ 2865 object, 2866 uuid(361BBDC7-E6EE-4E13-BE58-58E2240C810F) 2867] 2868interface IExplorerBrowserEvents : IUnknown 2869{ 2870 HRESULT OnNavigationPending( 2871 [in] PCIDLIST_ABSOLUTE pidlFolder); 2872 2873 HRESULT OnViewCreated( 2874 [in] IShellView *psv); 2875 2876 HRESULT OnNavigationComplete( 2877 [in] PCIDLIST_ABSOLUTE pidlFolder); 2878 2879 HRESULT OnNavigationFailed( 2880 [in] PCIDLIST_ABSOLUTE pidlFolder); 2881} 2882 2883typedef GUID EXPLORERPANE; 2884typedef EXPLORERPANE *REFEXPLORERPANE; 2885 2886cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility") 2887 2888/***************************************************************************** 2889 * IExplorerPaneVisibility interface 2890 */ 2891[ 2892 object, 2893 uuid(E07010EC-BC17-44C0-97B0-46C7C95B9EDC) 2894] 2895interface IExplorerPaneVisibility : IUnknown 2896{ 2897 typedef enum tagEXPLORERPANESTATE { 2898 EPS_DONTCARE = 0x0, 2899 EPS_DEFAULT_ON = 0x1, 2900 EPS_DEFAULT_OFF = 0x2, 2901 EPS_STATE_MASK = 0xffff, 2902 EPS_INITIALSTATE = 0x10000, 2903 EPS_FORCE = 0x20000 2904 } EXPLORERPANESTATE; 2905 2906 HRESULT GetPaneState( 2907 [in] REFEXPLORERPANE ep, 2908 [out] EXPLORERPANESTATE *peps); 2909} 2910 2911typedef [v1_enum] enum tagEXPLORER_BROWSER_FILL_FLAGS { 2912 EBF_NONE = 0, 2913 EBF_SELECTFROMDATAOBJECT = 0x100, 2914 EBF_NODROPTARGET = 0x200 2915} EXPLORER_BROWSER_FILL_FLAGS; 2916 2917typedef [v1_enum] enum tagEXPLORER_BROWSER_OPTIONS { 2918 EBO_NONE = 0x00, 2919 EBO_NAVIGATEONCE = 0x01, 2920 EBO_SHOWFRAMES = 0x02, 2921 EBO_ALWAYSNAVIGATE = 0x04, 2922 EBO_NOTRAVELLOG = 0x08, 2923 EBO_NOWRAPPERWINDOW = 0x10, 2924 EBO_HTMLSHAREPOINTVIEW = 0x20, 2925 EBO_NOBORDER = 0x40, 2926 EBO_NOPERSISTVIEWSTATE = 0x80, 2927} EXPLORER_BROWSER_OPTIONS; 2928 2929cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser") 2930 2931/***************************************************************************** 2932 * IExplorerBrowser interface 2933 */ 2934[ 2935 object, 2936 uuid(DFD3B6B5-C10C-4BE9-85F6-A66969F402F6), 2937 pointer_default(unique) 2938] 2939interface IExplorerBrowser : IUnknown 2940{ 2941 2942 [local] HRESULT Initialize( 2943 [in] HWND hwndParent, 2944 [in] const RECT *prc, 2945 [in, unique] const FOLDERSETTINGS *pfs); 2946 2947 HRESULT Destroy(); 2948 2949 [local] HRESULT SetRect( 2950 [in,out,unique] HDWP *phdwp, 2951 [in] RECT rcBrowser); 2952 2953 HRESULT SetPropertyBag( 2954 [in, string] LPCWSTR pszPropertyBag); 2955 2956 HRESULT SetEmptyText( 2957 [in, string] LPCWSTR pszEmptyText); 2958 2959 HRESULT SetFolderSettings( 2960 [in] const FOLDERSETTINGS *pfs); 2961 2962 HRESULT Advise( 2963 [in] IExplorerBrowserEvents *psbe, 2964 [out] DWORD *pdwCookie); 2965 2966 HRESULT Unadvise( 2967 [in] DWORD dwCookie); 2968 2969 HRESULT SetOptions( 2970 [in] EXPLORER_BROWSER_OPTIONS dwFlag); 2971 2972 HRESULT GetOptions( 2973 [out] EXPLORER_BROWSER_OPTIONS *pdwFlag); 2974 2975 HRESULT BrowseToIDList( 2976 [in] PCUIDLIST_RELATIVE pidl, 2977 [in] UINT uFlags); 2978 2979 HRESULT BrowseToObject( 2980 [in] IUnknown *punk, 2981 [in] UINT uFlags); 2982 2983 HRESULT FillFromObject( 2984 [in] IUnknown *punk, 2985 [in] EXPLORER_BROWSER_FILL_FLAGS dwFlags); 2986 2987 HRESULT RemoveAll(); 2988 2989 HRESULT GetCurrentView( 2990 [in] REFIID riid, 2991 [out, iid_is(riid)] void **ppv); 2992} 2993 2994/***************************************************************************** 2995 * INameSpaceTreeControl interface 2996 */ 2997[ 2998 object, 2999 uuid(028212A3-B627-47E9-8856-C14265554E4F) 3000] 3001interface INameSpaceTreeControl : IUnknown 3002{ 3003 [v1_enum] enum _NSTCSTYLE { 3004 NSTCS_HASEXPANDOS = 0x00000001, 3005 NSTCS_HASLINES = 0x00000002, 3006 NSTCS_SINGLECLICKEXPAND = 0x00000004, 3007 NSTCS_FULLROWSELECT = 0x00000008, 3008 NSTCS_SPRINGEXPAND = 0x00000010, 3009 NSTCS_HORIZONTALSCROLL = 0x00000020, 3010 NSTCS_ROOTHASEXPANDO = 0x00000040, 3011 NSTCS_SHOWSELECTIONALWAYS = 0x00000080, 3012 NSTCS_NOINFOTIP = 0x00000200, 3013 NSTCS_EVENHEIGHT = 0x00000400, 3014 NSTCS_NOREPLACEOPEN = 0x00000800, 3015 NSTCS_DISABLEDRAGDROP = 0x00001000, 3016 NSTCS_NOORDERSTREAM = 0x00002000, 3017 NSTCS_RICHTOOLTIP = 0x00004000, 3018 NSTCS_BORDER = 0x00008000, 3019 NSTCS_NOEDITLABELS = 0x00010000, 3020 NSTCS_TABSTOP = 0x00020000, 3021 NSTCS_FAVORITESMODE = 0x00080000, 3022 NSTCS_AUTOHSCROLL = 0x00100000, 3023 NSTCS_FADEINOUTEXPANDOS = 0x00200000, 3024 NSTCS_EMPTYTEXT = 0x00400000, 3025 NSTCS_CHECKBOXES = 0x00800000, 3026 NSTCS_PARTIALCHECKBOXES = 0x01000000, 3027 NSTCS_EXCLUSIONCHECKBOXES = 0x02000000, 3028 NSTCS_DIMMEDCHECKBOXES = 0x04000000, 3029 NSTCS_NOINDENTCHECKS = 0x08000000, 3030 NSTCS_ALLOWJUNCTIONS = 0x10000000, 3031 NSTCS_SHOWTABSBUTTON = 0x20000000, 3032 NSTCS_SHOWDELETEBUTTON = 0x40000000, 3033 NSTCS_SHOWREFRESHBUTTON = (int)0x80000000 3034 }; 3035 typedef DWORD NSTCSTYLE; 3036 3037 [v1_enum] enum _NSTCROOTSTYLE { 3038 NSTCRS_VISIBLE = 0x0000, 3039 NSTCRS_HIDDEN = 0x0001, 3040 NSTCRS_EXPANDED = 0x0002 3041 }; 3042 typedef DWORD NSTCROOTSTYLE; 3043 3044 [v1_enum] enum _NSTCITEMSTATE { 3045 NSTCIS_NONE = 0x0000, 3046 NSTCIS_SELECTED = 0x0001, 3047 NSTCIS_EXPANDED = 0x0002, 3048 NSTCIS_BOLD = 0x0004, 3049 NSTCIS_DISABLED = 0x0008, 3050 NSTCIS_SELECTEDNOEXPAND = 0x0010 3051 }; 3052 typedef DWORD NSTCITEMSTATE; 3053 3054 typedef [v1_enum] enum NSTCGNI { 3055 NSTCGNI_NEXT = 0, 3056 NSTCGNI_NEXTVISIBLE = 1, 3057 NSTCGNI_PREV = 2, 3058 NSTCGNI_PREVVISIBLE = 3, 3059 NSTCGNI_PARENT = 4, 3060 NSTCGNI_CHILD = 5, 3061 NSTCGNI_FIRSTVISIBLE = 6, 3062 NSTCGNI_LASTVISIBLE = 7 3063 } NSTCGNI; 3064 3065 HRESULT Initialize( 3066 [in] HWND hwndParent, 3067 [in, unique] RECT *prc, 3068 [in] NSTCSTYLE nstcsFlags); 3069 3070 HRESULT TreeAdvise( 3071 [in] IUnknown *punk, 3072 [out] DWORD *pdwCookie); 3073 3074 HRESULT TreeUnadvise( 3075 [in] DWORD dwCookie); 3076 3077 HRESULT AppendRoot( 3078 [in] IShellItem *psiRoot, 3079 [in] SHCONTF grfEnumFlags, 3080 [in] NSTCROOTSTYLE grfRootStyle, 3081 [in, unique] IShellItemFilter *pif); 3082 3083 HRESULT InsertRoot( 3084 [in] int iIndex, 3085 [in] IShellItem *psiRoot, 3086 [in] SHCONTF grfEnumFlags, 3087 [in] NSTCROOTSTYLE grfRootStyle, 3088 [in, unique] IShellItemFilter *pif); 3089 3090 HRESULT RemoveRoot( 3091 [in] IShellItem *psiRoot); 3092 3093 HRESULT RemoveAllRoots(); 3094 3095 HRESULT GetRootItems( 3096 [out] IShellItemArray **ppsiaRootItems); 3097 3098 HRESULT SetItemState( 3099 [in] IShellItem *psi, 3100 [in] NSTCITEMSTATE nstcisMask, 3101 [in] NSTCITEMSTATE nstcisFlags); 3102 3103 HRESULT GetItemState( 3104 [in] IShellItem *psi, 3105 [in] NSTCITEMSTATE nstcismask, 3106 [out] NSTCITEMSTATE *pnstcisFlags); 3107 3108 HRESULT GetSelectedItems( 3109 [out] IShellItemArray **psiaItems); 3110 3111 HRESULT GetItemCustomState( 3112 [in] IShellItem *psi, 3113 [out] int *piStateNumber); 3114 3115 HRESULT SetItemCustomState( 3116 [in] IShellItem *psi, 3117 [in] int iStateNumber); 3118 3119 HRESULT EnsureItemVisible( 3120 [in] IShellItem *psi); 3121 3122 HRESULT SetTheme( 3123 [in, string] LPCWSTR pszTheme); 3124 3125 HRESULT GetNextItem( 3126 [in, unique] IShellItem *psi, 3127 [in] NSTCGNI nstcgi, 3128 [out] IShellItem **ppsiNext); 3129 3130 HRESULT HitTest( 3131 [in] POINT *ppt, 3132 [out] IShellItem **ppsiOut); 3133 3134 HRESULT GetItemRect( 3135 [in] IShellItem *psi, 3136 [out] RECT *prect); 3137 3138 HRESULT CollapseAll(); 3139} 3140 3141/***************************************************************************** 3142 * INameSpaceTreeControl2 interface 3143 */ 3144[ 3145 object, 3146 uuid(7CC7AED8-290E-49BC-8945-C1401CC9306C) 3147] 3148interface INameSpaceTreeControl2 : INameSpaceTreeControl 3149{ 3150 typedef [v1_enum] enum NSTCSTYLE2 { 3151 NSTCS2_DEFAULT = 0x00, 3152 NSTCS2_INTERRUPTNOTIFICATIONS = 0x01, 3153 NSTCS2_SHOWNULLSPACEMENU = 0x02, 3154 NSTCS2_DISPLAYPADDING = 0x04, 3155 NSTCS2_DISPLAYPINNEDONLY = 0x08, 3156 NTSCS2_NOSINGLETONAUTOEXPAND = 0x10, /* The apparent typo here is */ 3157 NTSCS2_NEVERINSERTNONENUMERATED = 0x20 /* present also in the Win SDK */ 3158 } NSTCSTYLE2; 3159 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)") 3160 3161 HRESULT SetControlStyle( 3162 [in] NSTCSTYLE nstcsMask, 3163 [in] NSTCSTYLE nstcsStyle); 3164 3165 HRESULT GetControlStyle( 3166 [in] NSTCSTYLE nstcsMask, 3167 [out] NSTCSTYLE *pnstcsStyle); 3168 3169 HRESULT SetControlStyle2( 3170 [in] NSTCSTYLE2 nstcsMask, 3171 [in] NSTCSTYLE2 nstcsStyle); 3172 3173 HRESULT GetControlStyle2( 3174 [in] NSTCSTYLE2 nstcsMask, 3175 [out] NSTCSTYLE2 *pnstcsStyle); 3176} 3177 3178/***************************************************************************** 3179 * INameSpaceTreeControlEvents interface 3180 */ 3181 3182[ 3183 object, 3184 uuid(93D77985-B3D8-4484-8318-672CDDA002CE), 3185 local 3186] 3187interface INameSpaceTreeControlEvents : IUnknown 3188{ 3189 [v1_enum] enum _NSTCEHITTEST { 3190 NSTCEHT_NOWHERE = 0x0001, 3191 NSTCEHT_ONITEMICON = 0x0002, 3192 NSTCEHT_ONITEMLABEL = 0x0004, 3193 NSTCEHT_ONITEMIDENT = 0x0008, 3194 NSTCEHT_ONITEMBUTTON = 0x0010, 3195 NSTCEHT_ONITEMRIGHT = 0x0020, 3196 NSTCEHT_ONITEMSTATEICON = 0x0040, 3197 NSTCEHT_ONITEM = 0x0046, 3198 NSTCEHT_ONITEMTABBUTTON = 0x1000 3199 }; 3200 typedef DWORD NSTCEHITTEST; 3201 3202 [v1_enum] enum _NSTCECLICKTYPE { 3203 NSTCECT_LBUTTON = 0x1, 3204 NSTCECT_MBUTTON = 0x2, 3205 NSTCECT_RBUTTON = 0x3, 3206 NSTCECT_BUTTON = 0x3, 3207 NSTCECT_DBLCLICK = 0x4 3208 }; 3209 typedef DWORD NSTCECLICKTYPE; 3210 3211 HRESULT OnItemClick( 3212 [in] IShellItem *psi, 3213 [in] NSTCEHITTEST nstceHitTest, 3214 [in] NSTCECLICKTYPE nstceClickType); 3215 3216 HRESULT OnPropertyItemCommit( 3217 [in] IShellItem *psi); 3218 3219 HRESULT OnItemStateChanging( 3220 [in] IShellItem *psi, 3221 [in] NSTCITEMSTATE nstcisMask, 3222 [in] NSTCITEMSTATE nstcisState); 3223 3224 HRESULT OnItemStateChanged( 3225 [in] IShellItem *psi, 3226 [in] NSTCITEMSTATE nstcisMask, 3227 [in] NSTCITEMSTATE nstcisState); 3228 3229 HRESULT OnSelectionChanged( 3230 [in] IShellItemArray *psiaSelection); 3231 3232 HRESULT OnKeyboardInput( 3233 [in] UINT uMsg, 3234 [in] WPARAM wParam, 3235 [in] LPARAM lParam); 3236 3237 HRESULT OnBeforeExpand( 3238 [in] IShellItem *psi); 3239 3240 HRESULT OnAfterExpand( 3241 [in] IShellItem *psi); 3242 3243 HRESULT OnBeginLabelEdit( 3244 [in] IShellItem *psi); 3245 3246 HRESULT OnEndLabelEdit( 3247 [in] IShellItem *psi); 3248 3249 HRESULT OnGetToolTip( 3250 [in] IShellItem *psi, 3251 [out, string, size_is(cchTip)] LPWSTR pszTip, 3252 [in] int cchTip); 3253 3254 HRESULT OnBeforeItemDelete( 3255 [in] IShellItem *psi); 3256 3257 HRESULT OnItemAdded( 3258 [in] IShellItem *psi, 3259 [in] BOOL fIsRoot); 3260 3261 HRESULT OnItemDeleted( 3262 [in] IShellItem *psi, 3263 [in] BOOL fIsRoot); 3264 3265 HRESULT OnBeforeContextMenu( 3266 [in, unique] IShellItem *psi, 3267 [in] REFIID riid, 3268 [out, iid_is(riid)] void **ppv); 3269 3270 HRESULT OnAfterContextMenu( 3271 [in] IShellItem *psi, 3272 [in] IContextMenu *pcmIn, 3273 [in] REFIID riid, 3274 [out, iid_is(riid)] void **ppv); 3275 3276 HRESULT OnBeforeStateImageChange( 3277 [in] IShellItem *psi); 3278 3279 HRESULT OnGetDefaultIconIndex( 3280 [in] IShellItem *psi, 3281 [out] int *piDefaultIcon, 3282 [out] int *piOpenIcon); 3283} 3284 3285/***************************************************************************** 3286 * INameSpaceTreeControlCustomDraw interface 3287 */ 3288[ 3289 object, 3290 uuid(2D3BA758-33EE-42D5-BB7B-5F3431D86C78), 3291 local 3292] 3293 3294interface INameSpaceTreeControlCustomDraw : IUnknown 3295{ 3296 typedef struct NSTCCUSTOMDRAW 3297 { 3298 IShellItem *psi; 3299 UINT uItemState; 3300 NSTCITEMSTATE nstcis; 3301 LPCWSTR pszText; 3302 int iImage; 3303 HIMAGELIST himl; 3304 int iLevel; 3305 int iIndent; 3306 } NSTCCUSTOMDRAW; 3307 3308 HRESULT PrePaint( 3309 [in] HDC hdc, 3310 [in] RECT *prc, 3311 [out] LRESULT *plres); 3312 3313 HRESULT PostPaint( 3314 [in] HDC hdc, 3315 [in] RECT *prc); 3316 3317 HRESULT ItemPrePaint( 3318 [in] HDC hdc, 3319 [in] RECT *prc, 3320 [in, out] COLORREF *pclrText, 3321 [in, out] COLORREF *pclrTextBk, 3322 [out] LRESULT *plres); 3323 3324 HRESULT ItemPostPaint( 3325 [in] HDC hdc, 3326 [in] RECT *prc, 3327 [in] NSTCCUSTOMDRAW *pnstccdItem); 3328} 3329 3330/***************************************************************************** 3331 * INameSpaceTreeControlDropHandler interface 3332 */ 3333[ 3334 object, 3335 uuid(F9C665D6-C2F2-4C19-BF33-8322D7352F51), 3336 local 3337] 3338interface INameSpaceTreeControlDropHandler : IUnknown 3339{ 3340 HRESULT OnDragEnter( 3341 [in, unique] IShellItem *psiOver, 3342 [in] IShellItemArray *psiaData, 3343 [in] BOOL fOutsideSource, 3344 [in] DWORD grfKeyState, 3345 [in, out] DWORD *pdwEffect); 3346 3347 HRESULT OnDragOver( 3348 [in, unique] IShellItem *psiOver, 3349 [in] IShellItemArray *psiaData, 3350 [in] DWORD grfKeyState, 3351 [in, out] DWORD *pdwEffect); 3352 3353 HRESULT OnDragPosition( 3354 [in, unique] IShellItem *psiOver, 3355 [in] IShellItemArray *psiaData, 3356 [in] int iNewPosition, 3357 [in] int iOldPosition); 3358 3359 HRESULT OnDrop( 3360 [in, unique] IShellItem *psiOver, 3361 [in] IShellItemArray *psiaData, 3362 [in] int iPosition, 3363 [in] DWORD grfKeyState, 3364 [in, out] DWORD *pdwEffect); 3365 3366 HRESULT OnDropPosition( 3367 [in, unique] IShellItem *psiOver, 3368 [in] IShellItemArray *psiaData, 3369 [in] int iNewPosition, 3370 [in] int iOldPosition); 3371 3372 HRESULT OnDragLeave( 3373 [in, unique] IShellItem *psiOver); 3374} 3375cpp_quote("#define NSTCDHPOS_ONTOP -1") 3376 3377interface IFileDialog; 3378 3379typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE 3380{ 3381 FDEOR_DEFAULT = 0, 3382 FDEOR_ACCEPT = 1, 3383 FDEOR_REFUSE = 2 3384} FDE_OVERWRITE_RESPONSE; 3385 3386typedef [v1_enum] enum FDE_SHAREVIOLATION_RESPONSE 3387{ 3388 FDESVR_DEFAULT = 0, 3389 FDESVR_ACCEPT = 1, 3390 FDESVR_REFUSE = 2 3391} FDE_SHAREVIOLATION_RESPONSE; 3392 3393/***************************************************************************** 3394 * IFileDialogEvents interface 3395 */ 3396[ 3397 object, 3398 uuid(973510DB-7D7F-452B-8975-74A85828D354), 3399 pointer_default(unique) 3400] 3401interface IFileDialogEvents : IUnknown 3402{ 3403 HRESULT OnFileOk( 3404 [in] IFileDialog *pfd); 3405 3406 HRESULT OnFolderChanging( 3407 [in] IFileDialog *pfd, 3408 [in] IShellItem *psiFolder); 3409 3410 HRESULT OnFolderChange( 3411 [in] IFileDialog *pfd); 3412 3413 HRESULT OnSelectionChange( 3414 [in] IFileDialog *pfd); 3415 3416 HRESULT OnShareViolation( 3417 [in] IFileDialog *pfd, 3418 [in] IShellItem *psi, 3419 [out] FDE_SHAREVIOLATION_RESPONSE *pResponse); 3420 3421 HRESULT OnTypeChange( 3422 [in] IFileDialog *pfd); 3423 3424 HRESULT OnOverwrite( 3425 [in] IFileDialog *pfd, 3426 [in] IShellItem *psi, 3427 [out] FDE_OVERWRITE_RESPONSE *pResponse); 3428} 3429 3430/***************************************************************************** 3431 * IModalWindow interface 3432 */ 3433[ 3434 object, 3435 uuid(B4DB1657-70D7-485E-8E3E-6FCB5A5C1802), 3436 pointer_default(unique) 3437] 3438interface IModalWindow : IUnknown 3439{ 3440 [local] 3441 HRESULT Show( 3442 [in, unique, annotation("__in_opt")] HWND hwndOwner); 3443 3444 [call_as(Show)] 3445 HRESULT RemoteShow( 3446 [in, unique] HWND hwndOwner); 3447} 3448 3449typedef [v1_enum] enum FDAP 3450{ 3451 FDAP_BOTTOM = 0, 3452 FDAP_TOP = 1 3453} FDAP; 3454 3455/***************************************************************************** 3456 * IFileDialog interface 3457 */ 3458[ 3459 object, 3460 uuid(42F85136-DB7E-439C-85F1-E4075D135FC8), 3461 pointer_default(unique) 3462] 3463interface IFileDialog : IModalWindow 3464{ 3465 [v1_enum] enum _FILEOPENDIALOGOPTIONS 3466 { 3467 FOS_OVERWRITEPROMPT = 0x00000002, 3468 FOS_STRICTFILETYPES = 0x00000004, 3469 FOS_NOCHANGEDIR = 0x00000008, 3470 FOS_PICKFOLDERS = 0x00000020, 3471 FOS_FORCEFILESYSTEM = 0x00000040, 3472 FOS_ALLNONSTORAGEITEMS = 0x00000080, 3473 FOS_NOVALIDATE = 0x00000100, 3474 FOS_ALLOWMULTISELECT = 0x00000200, 3475 FOS_PATHMUSTEXIST = 0x00000800, 3476 FOS_FILEMUSTEXIST = 0x00001000, 3477 FOS_CREATEPROMPT = 0x00002000, 3478 FOS_SHAREAWARE = 0x00004000, 3479 FOS_NOREADONLYRETURN = 0x00008000, 3480 FOS_NOTESTFILECREATE = 0x00010000, 3481 FOS_HIDEMRUPLACES = 0x00020000, 3482 FOS_HIDEPINNEDPLACES = 0x00040000, 3483 FOS_NODEREFERENCELINKS = 0x00100000, 3484 FOS_DONTADDTORECENT = 0x02000000, 3485 FOS_FORCESHOWHIDDEN = 0x10000000, 3486 FOS_DEFAULTNOMINIMODE = 0x20000000, 3487 FOS_FORCEPREVIEWPANEON = 0x40000000 3488 }; 3489 typedef DWORD FILEOPENDIALOGOPTIONS; 3490 3491 HRESULT SetFileTypes( 3492 [in] UINT cFileTypes, 3493 [in, size_is(cFileTypes)] const COMDLG_FILTERSPEC *rgFilterSpec); 3494 3495 HRESULT SetFileTypeIndex( 3496 [in] UINT iFileType); 3497 3498 HRESULT GetFileTypeIndex( 3499 [out] UINT *piFileType); 3500 3501 HRESULT Advise( 3502 [in] IFileDialogEvents *pfde, 3503 [out] DWORD *pdwCookie); 3504 3505 HRESULT Unadvise( 3506 [in] DWORD dwCookie); 3507 3508 HRESULT SetOptions( 3509 [in] FILEOPENDIALOGOPTIONS fos); 3510 3511 HRESULT GetOptions( 3512 [in] FILEOPENDIALOGOPTIONS *pfos); 3513 3514 HRESULT SetDefaultFolder( 3515 [in] IShellItem *psi); 3516 3517 HRESULT SetFolder( 3518 [in] IShellItem *psi); 3519 3520 HRESULT GetFolder( 3521 [out] IShellItem **ppsi); 3522 3523 HRESULT GetCurrentSelection( 3524 [out] IShellItem **ppsi); 3525 3526 HRESULT SetFileName( 3527 [in, string] LPCWSTR pszName); 3528 3529 HRESULT GetFileName( 3530 [out, string] LPWSTR *pszName); 3531 3532 HRESULT SetTitle( 3533 [in, string] LPCWSTR pszTitle); 3534 3535 HRESULT SetOkButtonLabel( 3536 [in, string] LPCWSTR pszText); 3537 3538 HRESULT SetFileNameLabel( 3539 [in, string] LPCWSTR pszLabel); 3540 3541 HRESULT GetResult( 3542 [out] IShellItem **ppsi); 3543 3544 HRESULT AddPlace( 3545 [in] IShellItem *psi, 3546 [in] FDAP fdap); 3547 3548 HRESULT SetDefaultExtension( 3549 [in, string] LPCWSTR pszDefaultExtension); 3550 3551 HRESULT Close( 3552 [in] HRESULT hr); 3553 3554 HRESULT SetClientGuid( 3555 [in] REFGUID guid); 3556 3557 HRESULT ClearClientData(); 3558 3559 HRESULT SetFilter( 3560 [in] IShellItemFilter *pFilter); 3561} 3562 3563/***************************************************************************** 3564 * IFileDialog2 interface 3565 */ 3566[ 3567 object, 3568 uuid(61744FC7-85B5-4791-A9B0-272276309B13), 3569 pointer_default(unique) 3570] 3571interface IFileDialog2 : IFileDialog 3572{ 3573 HRESULT SetCancelButtonLabel( 3574 [in] LPCWSTR pszLabel); 3575 3576 HRESULT SetNavigationRoot( 3577 [in] IShellItem *psi); 3578} 3579 3580/***************************************************************************** 3581 * IFileOperationProgressSink interface 3582 */ 3583[ 3584 object, 3585 uuid(04B0F1A7-9490-44BC-96E1-4296A31252E2), 3586 pointer_default(unique) 3587] 3588interface IFileOperationProgressSink : IUnknown 3589{ 3590 HRESULT StartOperations(); 3591 3592 HRESULT FinishOperations( 3593 [in] HRESULT hrResult); 3594 3595 HRESULT PreRenameItem( 3596 [in] DWORD dwFlags, 3597 [in] IShellItem *psiItem, 3598 [in, unique, string] LPCWSTR pszNewName); 3599 3600 HRESULT PostRenameItem( 3601 [in] DWORD dwFlags, 3602 [in] IShellItem *psiItem, 3603 [in, string] LPCWSTR pszNewName, 3604 [in] HRESULT hrRename, 3605 [in] IShellItem *psiNewlyCreated); 3606 3607 HRESULT PreMoveItem( 3608 [in] DWORD dwFlags, 3609 [in] IShellItem *psiItem, 3610 [in] IShellItem *psiDestinationFolder, 3611 [in, unique, string] LPCWSTR pszNewName); 3612 3613 HRESULT PostMoveItem( 3614 [in] DWORD dwFlags, 3615 [in] IShellItem *psiItem, 3616 [in] IShellItem *psiDestinationFolder, 3617 [in, unique, string] LPCWSTR pszNewName, 3618 [in] HRESULT hrMove, 3619 [in] IShellItem *psiNewlyCreated); 3620 3621 HRESULT PreCopyItem( 3622 [in] DWORD dwFlags, 3623 [in] IShellItem *psiItem, 3624 [in] IShellItem *psiDestinationFolder, 3625 [in, unique, string] LPCWSTR pszNewName); 3626 3627 HRESULT PostCopyItem( 3628 [in] DWORD dwFlags, 3629 [in] IShellItem *psiItem, 3630 [in] IShellItem *psiDestinationFolder, 3631 [in, unique, string] LPCWSTR pszNewName, 3632 [in] HRESULT hrCopy, 3633 [in] IShellItem *psiNewlyCreated); 3634 3635 HRESULT PreDeleteItem( 3636 [in] DWORD dwFlags, 3637 [in] IShellItem *psiItem); 3638 3639 HRESULT PostDeleteItem( 3640 [in] DWORD dwFlags, 3641 [in] IShellItem *psiItem, 3642 [in] HRESULT hrDelete, 3643 [in] IShellItem *psiNewlyCreated); 3644 3645 HRESULT PreNewItem( 3646 [in] DWORD dwFlags, 3647 [in] IShellItem *psiDestinationFolder, 3648 [in, unique, string] LPCWSTR pszNewName); 3649 3650 HRESULT PostNewItem( 3651 [in] DWORD dwFlags, 3652 [in] IShellItem *psiDestinationFolder, 3653 [in, unique, string] LPCWSTR pszNewName, 3654 [in, unique, string] LPCWSTR pszTemplateName, 3655 [in] DWORD dwFileAttributes, 3656 [in] HRESULT hrNew, 3657 [in] IShellItem *psiNewItem); 3658 3659 HRESULT UpdateProgress( 3660 [in] UINT iWorkTotal, 3661 [in] UINT iWorkSoFar); 3662 3663 HRESULT ResetTimer(); 3664 3665 HRESULT PauseTimer(); 3666 3667 HRESULT ResumeTimer(); 3668} 3669 3670/***************************************************************************** 3671 * IFileSaveDialog interface 3672 */ 3673[ 3674 object, 3675 uuid(84BCCD23-5FDE-4CDB-AEA4-AF64B83D78AB), 3676 pointer_default(unique) 3677] 3678interface IFileSaveDialog : IFileDialog 3679{ 3680 HRESULT SetSaveAsItem( 3681 [in] IShellItem *psi); 3682 3683 HRESULT SetProperties( 3684 [in] IPropertyStore *pStore); 3685 3686 HRESULT SetCollectedProperties( 3687 [in] IPropertyDescriptionList *pList, 3688 [in] BOOL fAppendDefault); 3689 3690 HRESULT GetProperties( 3691 [in] IPropertyStore **ppStore); 3692 3693 HRESULT ApplyProperties( 3694 [in] IShellItem *psi, 3695 [in] IPropertyStore *pStore, 3696 [in, unique] HWND hwnd, 3697 [in, unique] IFileOperationProgressSink *pSink); 3698} 3699 3700 3701/***************************************************************************** 3702 * IFileOpenDialog interface 3703 */ 3704[ 3705 object, 3706 uuid(D57C7288-D4AD-4768-BE02-9D969532D960), 3707 pointer_default(unique) 3708] 3709interface IFileOpenDialog : IFileDialog 3710{ 3711 HRESULT GetResults( 3712 [out] IShellItemArray **ppenum); 3713 3714 HRESULT GetSelectedItems( 3715 [out] IShellItemArray **ppsai); 3716} 3717 3718typedef [v1_enum] enum CDCONTROLSTATEF 3719{ 3720 CDCS_INACTIVE = 0x0, 3721 CDCS_ENABLED = 0x1, 3722 CDCS_VISIBLE = 0x2, 3723 CDCS_ENABLEDVISIBLE = 0x3 3724} CDCONTROLSTATEF; 3725cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)") 3726/***************************************************************************** 3727 * IFileDialogCustomize interface 3728 */ 3729[ 3730 object, 3731 uuid(E6FDD21A-163F-4975-9C8C-A69F1BA37034), 3732 pointer_default(unique) 3733] 3734interface IFileDialogCustomize : IUnknown 3735{ 3736 HRESULT EnableOpenDropDown( 3737 [in] DWORD dwIDCtl); 3738 3739 HRESULT AddMenu( 3740 [in] DWORD dwIDCtl, 3741 [in, string] LPCWSTR pszLabel); 3742 3743 HRESULT AddPushButton( 3744 [in] DWORD dwIDCtl, 3745 [in, string] LPCWSTR pszLabel); 3746 3747 HRESULT AddComboBox( 3748 [in] DWORD dwIDCtl); 3749 3750 HRESULT AddRadioButtonList( 3751 [in] DWORD dwIDCtl); 3752 3753 HRESULT AddCheckButton( 3754 [in] DWORD dwIDCtl, 3755 [in, string] LPCWSTR pszLabel, 3756 [in] BOOL bChecked); 3757 3758 HRESULT AddEditBox( 3759 [in] DWORD dwIDCtl, 3760 [in, string] LPCWSTR pszText); 3761 3762 HRESULT AddSeparator( 3763 [in] DWORD dwIDCtl); 3764 3765 HRESULT AddText( 3766 [in] DWORD dwIDCtl, 3767 [in, string] LPCWSTR pszText); 3768 3769 HRESULT SetControlLabel( 3770 [in] DWORD dwIDCtl, 3771 [in, string] LPCWSTR pszLabel); 3772 3773 HRESULT GetControlState( 3774 [in] DWORD dwIDCtl, 3775 [out] CDCONTROLSTATEF *pdwState); 3776 3777 HRESULT SetControlState( 3778 [in] DWORD dwIDCtl, 3779 [in] CDCONTROLSTATEF dwState); 3780 3781 HRESULT GetEditBoxText( 3782 [in] DWORD dwIDCtl, 3783 [out, string] WCHAR **ppszText); 3784 3785 HRESULT SetEditBoxText( 3786 [in] DWORD dwIDCtl, 3787 [in, string] LPCWSTR pszText); 3788 3789 HRESULT GetCheckButtonState( 3790 [in] DWORD dwIDCtl, 3791 [out] BOOL *pbChecked); 3792 3793 HRESULT SetCheckButtonState( 3794 [in] DWORD dwIDCtl, 3795 [in] BOOL bChecked); 3796 3797 HRESULT AddControlItem( 3798 [in] DWORD dwIDCtl, 3799 [in] DWORD dwIDItem, 3800 [in] LPCWSTR pszLabel); 3801 3802 HRESULT RemoveControlItem( 3803 [in] DWORD dwIDCtl, 3804 [in] DWORD dwIDItem); 3805 3806 HRESULT RemoveAllControlItems( 3807 [in] DWORD dwIDCtl); 3808 3809 HRESULT GetControlItemState( 3810 [in] DWORD dwIDCtl, 3811 [in] DWORD dwIDItem, 3812 [out] CDCONTROLSTATEF *pdwState); 3813 3814 HRESULT SetControlItemState( 3815 [in] DWORD dwIDCtl, 3816 [in] DWORD dwIDItem, 3817 [in] CDCONTROLSTATEF dwState); 3818 3819 HRESULT GetSelectedControlItem( 3820 [in] DWORD dwIDCtl, 3821 [out] DWORD *pdwIDItem); 3822 3823 HRESULT SetSelectedControlItem( 3824 [in] DWORD dwIDCtl, 3825 [in] DWORD dwIDItem); 3826 3827 HRESULT StartVisualGroup( 3828 [in] DWORD dwIDCtl, 3829 [in, string] LPCWSTR pszLabel); 3830 3831 HRESULT EndVisualGroup(); 3832 3833 HRESULT MakeProminent( 3834 [in] DWORD dwIDCtl); 3835 3836 HRESULT SetControlItemText( 3837 [in] DWORD dwIDCtl, 3838 [in] DWORD dwIDItem, 3839 [in, string] LPCWSTR pszLabel); 3840} 3841 3842/***************************************************************************** 3843 * IFileDialogControlEvents interface 3844 */ 3845[ 3846 object, 3847 uuid(36116642-D713-4B97-9B83-7484A9D00433), 3848 pointer_default(unique) 3849] 3850interface IFileDialogControlEvents : IUnknown 3851{ 3852 HRESULT OnItemSelected( 3853 [in] IFileDialogCustomize *pfdc, 3854 [in] DWORD dwIDCtl, 3855 [in] DWORD dwIDItem); 3856 3857 HRESULT OnButtonClicked( 3858 [in] IFileDialogCustomize *pfdc, 3859 [in] DWORD dwIDCtl); 3860 3861 HRESULT OnCheckButtonToggled( 3862 [in] IFileDialogCustomize *pfdc, 3863 [in] BOOL dwIDCtl, 3864 [in] BOOL bChecked); 3865 3866 HRESULT OnControlActivating( 3867 [in] IFileDialogCustomize *pfdc, 3868 [in] DWORD dwIDCtl); 3869} 3870 3871typedef [v1_enum] enum tagKF_CATEGORY 3872{ 3873 KF_CATEGORY_VIRTUAL = 0x00000001, 3874 KF_CATEGORY_FIXED = 0x00000002, 3875 KF_CATEGORY_COMMON = 0x00000003, 3876 KF_CATEGORY_PERUSER = 0x00000004 3877} KF_CATEGORY; 3878 3879typedef [v1_enum] enum tagKF_REDIRECTION_CAPABILITIES 3880{ 3881 KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0x000000ff, 3882 KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x00000001, 3883 KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0x000fff00, 3884 KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x00000100, 3885 KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x00000200, 3886 KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x00000400 3887} KF_REDIRECTION_CAPABILITIES; 3888 3889typedef [v1_enum] enum tagKF_DEFINITION_FLAGS 3890{ 3891 KFDF_LOCAL_REDIRECT_ONLY = 0x00000002, 3892 KFDF_ROAMABLE = 0x00000004, 3893 KFDF_PRECREATE = 0x00000008, 3894 KFDF_STREAM = 0x00000010, 3895 KFDF_PUBLISHEXPANDEDPATH = 0x00000020 3896} KF_DEFINITION_FLAGS; 3897 3898typedef struct tagKNOWNFOLDER_DEFINITION 3899{ 3900 KF_CATEGORY category; 3901 LPWSTR pszName; 3902 LPWSTR pszDescription; 3903 KNOWNFOLDERID fidParent; 3904 LPWSTR pszRelativePath; 3905 LPWSTR pszParsingName; 3906 LPWSTR pszTooltip; 3907 LPWSTR pszLocalizedName; 3908 LPWSTR pszIcon; 3909 LPWSTR pszSecurity; 3910 DWORD dwAttributes; 3911 KF_DEFINITION_FLAGS kfdFlags; 3912 FOLDERTYPEID ftidType; 3913} KNOWNFOLDER_DEFINITION; 3914 3915[ 3916 object, 3917 uuid(3aa7af7e-9b36-420C-a8e3-f77d4674a488), 3918 pointer_default(ref) 3919] 3920interface IKnownFolder : IUnknown 3921{ 3922 HRESULT GetId( 3923 [out] KNOWNFOLDERID *pkfid); 3924 3925 HRESULT GetCategory( 3926 [out] KF_CATEGORY *pCategory); 3927 3928 HRESULT GetShellItem( 3929 [in] DWORD dwFlags, 3930 [in] REFIID riid, 3931 [out, iid_is(riid)] void **ppv); 3932 3933 HRESULT GetPath( 3934 [in] DWORD dwFlags, 3935 [out, string] LPWSTR *ppszPath); 3936 3937 HRESULT SetPath( 3938 [in] DWORD dwFlags, 3939 [in, string] LPCWSTR pszPath); 3940 3941 HRESULT GetIDList( 3942 [in] DWORD dwFlags, 3943 [out] PIDLIST_ABSOLUTE *ppidl); 3944 3945 HRESULT GetFolderType( 3946 [out] FOLDERTYPEID *pftid); 3947 3948 HRESULT GetRedirectionCapabilities( 3949 [out] KF_REDIRECTION_CAPABILITIES *pCapabilities); 3950 3951 HRESULT GetFolderDefinition( 3952 [out] KNOWNFOLDER_DEFINITION *pKFD); 3953} 3954 3955typedef [v1_enum] enum tagKF_REDIRECT_FLAGS 3956{ 3957 KF_REDIRECT_USER_EXCLUSIVE = 0x00000001, 3958 KF_REDIRECT_COPY_SOURCE_DACL = 0x00000002, 3959 KF_REDIRECT_OWNER_USER = 0x00000004, 3960 KF_REDIRECT_SET_OWNER_EXPLICIT = 0x00000008, 3961 KF_REDIRECT_CHECK_ONLY = 0x00000010, 3962 KF_REDIRECT_WITH_UI = 0x00000020, 3963 KF_REDIRECT_UNPIN = 0x00000040, 3964 KF_REDIRECT_PIN = 0x00000080, 3965 KF_REDIRECT_COPY_CONTENTS = 0x00000200, 3966 KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x00000400, 3967 KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x00000800 3968} KF_REDIRECT_FLAGS; 3969 3970[ 3971 object, 3972 uuid(8BE2D872-86AA-4d47-B776-32CCA40C7018), 3973 pointer_default(ref) 3974] 3975interface IKnownFolderManager : IUnknown 3976{ 3977 typedef [v1_enum] enum tagFFFP_MODE 3978 { 3979 FFFP_EXACTMATCH, 3980 FFFP_NEARESTPARENTMATCH 3981 } FFFP_MODE; 3982 3983 HRESULT FolderIdFromCsidl( 3984 [in] int nCsidl, 3985 [out] KNOWNFOLDERID *pfid); 3986 3987 HRESULT FolderIdToCsidl( 3988 [in] REFKNOWNFOLDERID rfid, 3989 [out] int *pnCsidl); 3990 3991 HRESULT GetFolderIds( 3992 [out, size_is(, *pCount)] KNOWNFOLDERID **ppKFId, 3993 [in, out] UINT *pCount); 3994 3995 HRESULT GetFolder( 3996 [in] REFKNOWNFOLDERID rfid, 3997 [out] IKnownFolder **ppkf); 3998 3999 HRESULT GetFolderByName( 4000 [in, string] LPCWSTR pszCanonicalName, 4001 [out] IKnownFolder **ppkf); 4002 4003 HRESULT RegisterFolder( 4004 [in] REFKNOWNFOLDERID rfid, 4005 [in] KNOWNFOLDER_DEFINITION const *pKFD); 4006 4007 HRESULT UnregisterFolder( 4008 [in] REFKNOWNFOLDERID rfid); 4009 4010 HRESULT FindFolderFromPath( 4011 [in, string] LPCWSTR pszPath, 4012 [in] FFFP_MODE mode, 4013 [out] IKnownFolder **ppkf); 4014 4015 HRESULT FindFolderFromIDList( 4016 [in] PCIDLIST_ABSOLUTE pidl, 4017 [out] IKnownFolder **ppkf); 4018 4019 HRESULT Redirect( 4020 [in] REFKNOWNFOLDERID rfid, 4021 [in, unique] HWND hwnd, 4022 [in] KF_REDIRECT_FLAGS flags, 4023 [in, unique, string] LPCWSTR pszTargetPath, 4024 [in] UINT cFolders, 4025 [in, size_is(cFolders), unique] KNOWNFOLDERID const *pExclusion, 4026 [out, string] LPWSTR *ppszError); 4027} 4028 4029/* function for releasing structure returned from IKnownFolder::GetFolderDefinition */ 4030cpp_quote("static inline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD)") 4031cpp_quote("{") 4032cpp_quote(" CoTaskMemFree(pKFD->pszName);") 4033cpp_quote(" CoTaskMemFree(pKFD->pszDescription);") 4034cpp_quote(" CoTaskMemFree(pKFD->pszRelativePath);") 4035cpp_quote(" CoTaskMemFree(pKFD->pszParsingName);") 4036cpp_quote(" CoTaskMemFree(pKFD->pszTooltip);") 4037cpp_quote(" CoTaskMemFree(pKFD->pszLocalizedName);") 4038cpp_quote(" CoTaskMemFree(pKFD->pszIcon);") 4039cpp_quote(" CoTaskMemFree(pKFD->pszSecurity);") 4040cpp_quote("}") 4041 4042typedef [v1_enum] enum ASSOCIATIONLEVEL { 4043 AL_MACHINE, 4044 AL_EFFECTIVE, 4045 AL_USER 4046} ASSOCIATIONLEVEL; 4047 4048typedef [v1_enum] enum ASSOCIATIONTYPE { 4049 AT_FILEEXTENSION, 4050 AT_URLPROTOCOL, 4051 AT_STARTMENUCLIENT, 4052 AT_MIMETYPE 4053} ASSOCIATIONTYPE; 4054 4055[ 4056 object, 4057 uuid(4e530b0a-e611-4c77-a3ac-9031d022281b), 4058 pointer_default(unique) 4059] 4060interface IApplicationAssociationRegistration : IUnknown 4061{ 4062 HRESULT QueryCurrentDefault( 4063 [in, string] LPCWSTR pszQuery, 4064 [in] ASSOCIATIONTYPE atQueryType, 4065 [in] ASSOCIATIONLEVEL alQueryLevel, 4066 [out, string] LPWSTR *ppszAssociation); 4067 4068 HRESULT QueryAppIsDefault( 4069 [in, string] LPCWSTR pszQuery, 4070 [in] ASSOCIATIONTYPE atQueryType, 4071 [in] ASSOCIATIONLEVEL alQueryLevel, 4072 [in, string] LPCWSTR pszAppRegistryName, 4073 [out] BOOL *pfDefault); 4074 4075 HRESULT QueryAppIsDefaultAll( 4076 [in] ASSOCIATIONLEVEL alQueryLevel, 4077 [in, string] LPCWSTR pszAppRegistryName, 4078 [out] BOOL* pfDefault); 4079 4080 HRESULT SetAppAsDefault( 4081 [in, string] LPCWSTR pszAppRegistryName, 4082 [in, string] LPCWSTR pszSet, 4083 [in] ASSOCIATIONTYPE atSetType); 4084 4085 HRESULT SetAppAsDefaultAll( 4086 [in, string] LPCWSTR pszAppRegistryName); 4087 4088 HRESULT ClearUserAssociations(); 4089} 4090 4091[ 4092 uuid(6332debf-87b5-4670-90c0-5e57b408a49e), 4093 object, 4094 pointer_default(unique) 4095] 4096interface ICustomDestinationList : IUnknown 4097{ 4098 typedef [v1_enum] enum KNOWNDESTCATEGORY { 4099 KDC_FREQUENT = 1, 4100 KDC_RECENT 4101 } KNOWNDESTCATEGORY; 4102 4103 HRESULT SetAppID([in, string] LPCWSTR pszAppID); 4104 4105 HRESULT BeginList( 4106 [out] UINT *pcMinSlots, 4107 [in] REFIID riid, 4108 [out, iid_is(riid)] void **ppv); 4109 4110 HRESULT AppendCategory( 4111 [in, string] LPCWSTR pszCategory, 4112 [in] IObjectArray *poa); 4113 4114 HRESULT AppendKnownCategory([in] KNOWNDESTCATEGORY category); 4115 HRESULT AddUserTasks([in] IObjectArray *poa); 4116 HRESULT CommitList(); 4117 4118 HRESULT GetRemovedDestinations( 4119 [in] REFIID riid, 4120 [out, iid_is(riid)] void **ppv); 4121 4122 HRESULT DeleteList([in, unique, string] LPCWSTR pszAppID); 4123 HRESULT AbortList(); 4124} 4125 4126[ 4127 uuid(ddefe873-6997-4e68-be26-39b633adbe12), 4128 object, 4129 pointer_default(unique) 4130] 4131interface IQueryCancelAutoPlay : IUnknown 4132{ 4133 HRESULT AllowAutoPlay([in, string] LPCWSTR path, 4134 [in] DWORD content_type, 4135 [in, string] LPCWSTR label, 4136 [in] DWORD serial_number); 4137} 4138 4139[ 4140 uuid(d594d0d8-8da7-457b-b3b4-ce5dbaac0b88), 4141 pointer_default(unique) 4142] 4143interface ITransferAdviseSink : IUnknown 4144{ 4145 [v1_enum] enum _TRANSFER_ADVISE_STATE 4146 { 4147 TS_NONE = 0, 4148 TS_PERFORMING = 1, 4149 TS_PREPARING = 2, 4150 TS_INDETERMINATE = 4 4151 }; 4152 typedef DWORD TRANSFER_ADVISE_STATE; 4153 4154 HRESULT UpdateProgress([in] ULONGLONG size_current, 4155 [in] ULONGLONG size_total, 4156 [in] INT files_current, 4157 [in] INT files_total, 4158 [in] INT folders_current, 4159 [in] INT folders_total); 4160 HRESULT UpdateTransferState([in] TRANSFER_ADVISE_STATE state); 4161 HRESULT ConfirmOverwrite([in] IShellItem *source, 4162 [in] IShellItem *dest_parent, 4163 [in, string] LPCWSTR name); 4164 HRESULT ConfirmEncryptLoss([in] IShellItem *source); 4165 HRESULT FileFailure([in] IShellItem *item, 4166 [in, unique, string] LPCWSTR itemname, 4167 [in] HRESULT hr, 4168 [in, out, unique, size_is(crename)] LPWSTR rename, 4169 [in] ULONG crename); 4170 HRESULT SubStreamFailure([in] IShellItem *item, 4171 [in, string] LPCWSTR stream, 4172 [in] HRESULT hr); 4173 HRESULT PropertyFailure([in] IShellItem *item, 4174 [in, unique] const PROPERTYKEY *key, 4175 [in] HRESULT hr); 4176} 4177 4178[v1_enum] enum _TRANSFER_SOURCE_FLAGS 4179{ 4180 TSF_NORMAL = 0, 4181 TSF_FAIL_EXIST = 0, 4182 TSF_RENAME_EXIST = 0x1, 4183 TSF_OVERWRITE_EXIST = 0x2, 4184 TSF_ALLOW_DECRYPTION = 0x4, 4185 TSF_NO_SECURITY = 0x8, 4186 TSF_COPY_CREATION_TIME = 0x10, 4187 TSF_COPY_WRITE_TIME = 0x20, 4188 TSF_USE_FULL_ACCESS = 0x40, 4189 TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80, 4190 TSF_COPY_HARD_LINK = 0x100, 4191 TSF_COPY_LOCALIZED_NAME = 0x200, 4192 TSF_MOVE_AS_COPY_DELETE = 0x400, 4193 TSF_SUSPEND_SHELLEVENTS = 0x800 4194}; 4195typedef DWORD TRANSFER_SOURCE_FLAGS; 4196 4197[ 4198 uuid(00adb003-bde9-45c6-8e29-d09f9353e108), 4199 object, 4200 pointer_default(unique) 4201] 4202interface ITransferSource : IUnknown 4203{ 4204 HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie); 4205 HRESULT Unadvise([in] DWORD cookie); 4206 HRESULT SetProperties([in] IPropertyChangeArray *array); 4207 HRESULT OpenItem([in] IShellItem *item, 4208 [in] TRANSFER_SOURCE_FLAGS flags, 4209 [in] REFIID riid, 4210 [out, iid_is(riid)] void **ppv); 4211 HRESULT MoveItem([in] IShellItem *item, 4212 [in] IShellItem *parent_dest, 4213 [in, string] LPCWSTR name_dest, 4214 [in] TRANSFER_SOURCE_FLAGS flags, 4215 [out] IShellItem **newitem); 4216 HRESULT RecycleItem([in] IShellItem *source, 4217 [in] IShellItem *parent_dest, 4218 [in] TRANSFER_SOURCE_FLAGS flags, 4219 [out] IShellItem **new_dest); 4220 HRESULT RemoveItem([in] IShellItem *source, [in] TRANSFER_SOURCE_FLAGS flags); 4221 HRESULT RenameItem([in] IShellItem *source, 4222 [in, string] LPCWSTR newname, 4223 [in] TRANSFER_SOURCE_FLAGS flags, 4224 [out] IShellItem **new_dest); 4225 HRESULT LinkItem([in] IShellItem *source, 4226 [in] IShellItem *parent_dest, 4227 [in, unique, string] LPCWSTR new_name, 4228 [in] TRANSFER_SOURCE_FLAGS flags, 4229 [out] IShellItem **new_dest); 4230 HRESULT ApplyPropertiesToItem([in] IShellItem *source, [out] IShellItem **newitem); 4231 HRESULT GetDefaultDestinationName([in] IShellItem *source, 4232 [in] IShellItem *parent_dest, 4233 [out, string] LPWSTR *dest_name); 4234 HRESULT EnterFolder([in] IShellItem *child_folder); 4235 HRESULT LeaveFolder([in] IShellItem *child_folder); 4236} 4237 4238[ 4239 uuid(48addd32-3ca5-4124-abe3-b5a72531b207), 4240 object, 4241 pointer_default(unique) 4242] 4243interface ITransferDestination : IUnknown 4244{ 4245 HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie); 4246 HRESULT Unadvise([in] DWORD cookie); 4247 HRESULT CreateItem([in, string] LPCWSTR name, 4248 [in] DWORD attr, 4249 [in] ULONGLONG size, 4250 [in] TRANSFER_SOURCE_FLAGS flags, 4251 [in] REFIID riid, 4252 [out, iid_is(riid)] void **ppv, 4253 [in] REFIID resources, 4254 [out, iid_is(riid)] void **presources); 4255} 4256 4257[ 4258 uuid(92218cab-ecaa-4335-8133-807fd234c2ee), 4259 object, 4260 pointer_default(unique) 4261] 4262interface IAssocHandlerInvoker : IUnknown 4263{ 4264 HRESULT SupportsSelection(); 4265 HRESULT Invoke(); 4266} 4267 4268[ 4269 uuid(f04061ac-1659-4a3f-a954-775aa57fc083), 4270 object, 4271 pointer_default(unique) 4272] 4273interface IAssocHandler : IUnknown 4274{ 4275 HRESULT GetName([out, string] LPWSTR *name); 4276 HRESULT GetUIName([out, string] LPWSTR *uiname); 4277 HRESULT GetIconLocation([out, string] LPWSTR *path, 4278 [out] int *index); 4279 HRESULT IsRecommended(); 4280 HRESULT MakeDefault([in, string] LPCWSTR description); 4281 HRESULT Invoke([in] IDataObject *object); 4282 HRESULT CreateInvoker([in] IDataObject *object, 4283 [out] IAssocHandlerInvoker **invoker); 4284} 4285 4286[ 4287 uuid(973810ae-9599-4b88-9e4d-6ee98c9552da), 4288 object, 4289 pointer_default(unique) 4290] 4291interface IEnumAssocHandlers : IUnknown 4292{ 4293 HRESULT Next([in] ULONG count, 4294 [out, size_is(count), length_is(*fetched)] IAssocHandler **handlers, 4295 [out] ULONG *fetched); 4296} 4297 4298typedef enum ASSOC_FILTER 4299{ 4300 ASSOC_FILTER_NONE = 0, 4301 ASSOC_FILTER_RECOMMENDED 4302} ASSOC_FILTER; 4303cpp_quote("HRESULT WINAPI SHAssocEnumHandlers(PCWSTR extra, ASSOC_FILTER filter, IEnumAssocHandlers **handlersenum);") 4304 4305typedef [v1_enum] enum ACTIVATEOPTIONS 4306{ 4307 AO_NONE = 0x00000000, 4308 AO_DESIGNMODE = 0x00000001, 4309 AO_NOERRORUI = 0x00000002, 4310 AO_NOSPLASHSCREEN = 0x00000004 4311} ACTIVATEOPTIONS; 4312 4313[ 4314 uuid(2e941141-7f97-4756-ba1d-9decde894a3d), 4315 object, 4316 pointer_default(unique) 4317] 4318interface IApplicationActivationManager : IUnknown 4319{ 4320 HRESULT ActivateApplication([in] LPCWSTR appusermodelid, 4321 [in, unique] LPCWSTR arguments, 4322 [in] ACTIVATEOPTIONS options, 4323 [out] DWORD *processid); 4324 HRESULT ActivateForFile([in] LPCWSTR appusermodelid, 4325 [in] IShellItemArray *itemarray, 4326 [in, unique] LPCWSTR verb, 4327 [out] DWORD *processid); 4328 HRESULT ActivateForProtocol([in] LPCWSTR appusermodelid, 4329 [in] IShellItemArray *itemarray, 4330 [out] DWORD *processid); 4331} 4332 4333/***************************************************************************** 4334 * ShellObjects typelibrary 4335 */ 4336[ 4337 uuid(50A7E9B1-70EF-11D1-B75A-00A0C90564FE), 4338 lcid(0x0000), 4339 version(1.0) 4340] 4341library ShellObjects 4342{ 4343 [ 4344 uuid(71F96385-DDD6-48D3-A0C1-AE06E8B055FB) 4345 ] 4346 coclass ExplorerBrowser 4347 { 4348 interface IExplorerBrowser; 4349 } 4350 4351 [ 4352 uuid(DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7) 4353 ] 4354 coclass FileOpenDialog 4355 { 4356 interface IFileOpenDialog; 4357 } 4358 4359 [ 4360 uuid(C0B4E2F3-BA21-4773-8DBA-335EC946EB8B) 4361 ] 4362 coclass FileSaveDialog 4363 { 4364 interface IFileSaveDialog; 4365 } 4366 4367 [ 4368 uuid(AE054212-3535-4430-83ED-D501AA6680E6) 4369 ] 4370 coclass NamespaceTreeControl 4371 { 4372 interface INameSpaceTreeControl2; 4373 } 4374 4375 [ 4376 uuid(4df0c730-df9d-4ae3-9153-aa6b82e9795a) 4377 ] 4378 coclass KnownFolderManager 4379 { 4380 interface IKnownFolderManager; 4381 } 4382 4383 [ 4384 uuid(591209c7-767b-42b2-9fba-44ee4615f2c7) 4385 ] 4386 coclass ApplicationAssociationRegistration 4387 { 4388 interface IApplicationAssociationRegistration; 4389 } 4390 4391 [ 4392 uuid(00021401-0000-0000-c000-000000000046) 4393 ] 4394 coclass ShellLink 4395 { 4396 interface IShellLinkW; 4397 } 4398 4399 [ 4400 uuid(56fdf344-fd6d-11d0-958a-006097c9a090) 4401 ] 4402 coclass TaskbarList 4403 { 4404 interface ITaskbarList4; 4405 } 4406 4407 [ 4408 uuid(77f10cf0-3db5-4966-b520-b7c54fd35ed6) 4409 ] 4410 coclass DestinationList { 4411 interface ICustomDestinationList; 4412 } 4413 4414 [ 4415 uuid(2d3468c1-36a7-43b6-ac24-d3f02fd9607a) 4416 ] 4417 coclass EnumerableObjectCollection 4418 { 4419 interface IEnumObjects; 4420 } 4421 4422 [ 4423 uuid(331f1768-05a9-4ddd-b86e-dae34ddc998a) 4424 ] 4425 coclass QueryCancelAutoPlay 4426 { 4427 interface IQueryCancelAutoPlay; 4428 } 4429 4430 [ 4431 uuid(9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917) 4432 ] 4433 coclass ShellItem { 4434 interface IShellItem2; 4435 } 4436 4437 [ 4438 uuid(45ba127d-10a8-46ea-8ab7-56ea9078943c) 4439 ] 4440 coclass ApplicationActivationManager 4441 { 4442 interface IApplicationActivationManager; 4443 } 4444 4445#ifdef __REACTOS__ 4446 [ 4447 uuid(0010890e-8789-413c-adbc-48f5b511b3af) 4448 ] 4449 coclass UserNotification 4450 { 4451 interface IUserNotification; 4452 } 4453#endif // __REACTOS__ 4454 4455} 4456 4457enum _OPPROGDLGF 4458{ 4459 OPPROGDLG_DEFAULT = 0, 4460 OPPROGDLG_ENABLEPAUSE = 0x80, 4461 OPPROGDLG_ALLOWUNDO = 0x100, 4462 OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200, 4463 OPPROGDLG_DONTDISPLAYDESTPATH = 0x400, 4464 OPPROGDLG_NOMULTIDAYESTIMATES = 0x800, 4465 OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000 4466}; 4467typedef DWORD OPPROGDLGF; 4468 4469enum _PDMODE 4470{ 4471 PDM_DEFAULT = 0, 4472 PDM_RUN = 0x1, 4473 PDM_PREFLIGHT = 0x2, 4474 PDM_UNDOING = 0x4, 4475 PDM_ERRORSBLOCKING = 0x8, 4476 PDM_INDETERMINATE = 0x10 4477}; 4478typedef DWORD PDMODE; 4479 4480typedef enum PDOPSTATUS 4481{ 4482 PDOPS_RUNNING = 1, 4483 PDOPS_PAUSED = 2, 4484 PDOPS_CANCELLED = 3, 4485 PDOPS_STOPPED = 4, 4486 PDOPS_ERRORS = 5 4487} PDOPSTATUS; 4488 4489typedef enum _SPACTION 4490{ 4491 SPACTION_NONE = 0, 4492 SPACTION_MOVING = 1, 4493 SPACTION_COPYING = 2, 4494 SPACTION_RECYCLING = 3, 4495 SPACTION_APPLYINGATTRIBS = 4, 4496 SPACTION_DOWNLOADING = 5, 4497 SPACTION_SEARCHING_INTERNET = 6, 4498 SPACTION_CALCULATING = 7, 4499 SPACTION_UPLOADING = 8, 4500 SPACTION_SEARCHING_FILES = 9, 4501 SPACTION_DELETING = 10, 4502 SPACTION_RENAMING = 11, 4503 SPACTION_FORMATTING = 12, 4504 SPACTION_COPY_MOVING = 13 4505} SPACTION; 4506 4507[ 4508 uuid(0C9FB851-E5C9-43EB-A370-F0677B13874C), 4509 object, 4510 pointer_default(unique) 4511] 4512interface IOperationsProgressDialog : IUnknown 4513{ 4514 HRESULT StartProgressDialog( 4515 [in] HWND hwndOwner, 4516 [in] OPPROGDLGF flags); 4517 HRESULT StopProgressDialog(); 4518 HRESULT SetOperation( 4519 [in] SPACTION action); 4520 HRESULT SetMode( 4521 [in] PDMODE mode); 4522 HRESULT UpdateProgress( 4523 [in] ULONGLONG ullPointsCurrent, 4524 [in] ULONGLONG ullPointsTotal, 4525 [in] ULONGLONG ullSizeCurrent, 4526 [in] ULONGLONG ullSizeTotal, 4527 [in] ULONGLONG ullItemsCurrent, 4528 [in] ULONGLONG ullItemsTotal); 4529 HRESULT UpdateLocations( 4530 [in, optional] IShellItem *psiSource, 4531 [in, optional] IShellItem *psiTarget, 4532 [in, optional] IShellItem *psiItem); 4533 HRESULT ResetTimer(); 4534 HRESULT PauseTimer(); 4535 HRESULT ResumeTimer(); 4536 HRESULT GetMilliseconds( 4537 [out] ULONGLONG *pullElapsed, 4538 [out] ULONGLONG *pullRemaining); 4539 HRESULT GetOperationStatus( 4540 [out] PDOPSTATUS *popstatus); 4541}; 4542 4543[ 4544 uuid(947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8), 4545 object, 4546 pointer_default(unique) 4547] 4548interface IFileOperation : IUnknown 4549{ 4550 HRESULT Advise( 4551 [in] IFileOperationProgressSink *pfops, 4552 [out] DWORD *pdwCookie); 4553 HRESULT Unadvise( 4554 [in] DWORD dwCookie); 4555 HRESULT SetOperationFlags( 4556 [in] DWORD dwOperationFlags); 4557 HRESULT SetProgressMessage( 4558 [in] LPCWSTR pszMessage); 4559 HRESULT SetProgressDialog( 4560 [in] IOperationsProgressDialog *popd); 4561 HRESULT SetProperties( 4562 [in] IPropertyChangeArray *pproparray); 4563 HRESULT SetOwnerWindow( 4564 [in] HWND hwndOwner); 4565 HRESULT ApplyPropertiesToItem( 4566 [in] IShellItem *psiItem); 4567 HRESULT ApplyPropertiesToItems( 4568 [in] IUnknown *punkItems); 4569 HRESULT RenameItem( 4570 [in] IShellItem *psiItem, 4571 [in] LPCWSTR pszNewName, 4572 [in] IFileOperationProgressSink *pfopsItem); 4573 HRESULT RenameItems( 4574 [in] IUnknown *pUnkItems, 4575 [in] LPCWSTR pszNewName); 4576 HRESULT MoveItem( 4577 [in] IShellItem *psiItem, 4578 [in] IShellItem *psiDestinationFolder, 4579 [in] LPCWSTR pszNewName, 4580 [in] IFileOperationProgressSink *pfopsItem); 4581 HRESULT MoveItems( 4582 [in] IUnknown *punkItems, 4583 [in] IShellItem *psiDestinationFolder); 4584 HRESULT CopyItem( 4585 [in] IShellItem *psiItem, 4586 [in] IShellItem *psiDestinationFolder, 4587 [in] LPCWSTR pszCopyName, 4588 [in] IFileOperationProgressSink *pfopsItem); 4589 HRESULT CopyItems( 4590 [in] IUnknown *punkItems, 4591 [in] IShellItem *psiDestinationFolder); 4592 HRESULT DeleteItem( 4593 [in] IShellItem *psiItem, 4594 [in] IFileOperationProgressSink *pfopsItem); 4595 HRESULT DeleteItems( 4596 [in] IUnknown *punkItems); 4597 HRESULT NewItem( 4598 [in] IShellItem *psiDestinationFolder, 4599 [in] DWORD dwFileAttributes, 4600 [in] LPCWSTR pszName, 4601 [in] LPCWSTR pszTemplateName, 4602 [in] IFileOperationProgressSink *pfopsItem); 4603 HRESULT PerformOperations(); 4604 HRESULT GetAnyOperationsAborted( 4605 [out] BOOL *pfAnyOperationsAborted); 4606}; 4607 4608[ 4609 uuid(6CCB7BE0-6807-11d0-B810-00C04FD706EC), 4610 object, 4611 local, 4612 pointer_default(unique) 4613] 4614interface IShellTaskScheduler : IUnknown 4615{ 4616 HRESULT AddTask( 4617 [in] IRunnableTask *pTask, 4618 [in] REFGUID rtoid, 4619 [in] DWORD_PTR lParam, 4620 [in] DWORD dwPriority); 4621 HRESULT RemoveTasks( 4622 [in] REFGUID rtoid, 4623 [in] DWORD_PTR lParam, 4624 [in] BOOL fWaitIfRunning); 4625 UINT CountTasks( 4626 [in] REFGUID rtoid); 4627 HRESULT Status( 4628 [in] DWORD dwReleaseStatus, 4629 [in] DWORD dwThreadTimeout); 4630} 4631 4632 4633[ 4634 uuid(47c01f95-e185-412c-b5c5-4f27df965aea), 4635 object, 4636 pointer_default(unique) 4637] 4638interface IFolderBandPriv : IUnknown 4639{ 4640 HRESULT SetCascade([in] BOOL fCascade); 4641 4642 HRESULT SetAccelerators([in] BOOL fAccelerators); 4643 4644 HRESULT SetNoIcons([in] BOOL fNoIcons); 4645 4646 HRESULT SetNoText([in] BOOL fNoText); 4647} 4648 4649 4650#ifdef __REACTOS__ 4651/***************************************************************************** 4652 * IQueryContinue interface 4653 */ 4654 4655[ 4656 uuid(7307055c-b24a-486b-9f25-163e597a28a9), 4657 object, 4658 pointer_default(unique) 4659] 4660interface IQueryContinue : IUnknown 4661{ 4662 // Returns S_OK if the operation should continue, and S_FALSE if not. 4663 HRESULT QueryContinue(); 4664} 4665 4666 4667/***************************************************************************** 4668 * IUserNotification interface 4669 */ 4670 4671[ 4672 uuid(ba9711ba-5893-4787-a7e1-41277151550b), 4673 object, 4674 pointer_default(unique) 4675] 4676interface IUserNotification : IUnknown 4677{ 4678 HRESULT SetBalloonInfo( 4679 [in, unique, string] LPCWSTR pszTitle, 4680 [in, unique, string] LPCWSTR pszText, 4681 [in] DWORD dwInfoFlags); 4682 4683 HRESULT SetBalloonRetry( 4684 [in] DWORD dwShowTime, // Time intervals in milliseconds 4685 [in] DWORD dwInterval, 4686 [in] UINT cRetryCount); 4687 4688 HRESULT SetIconInfo( 4689 [in, unique] HICON hIcon, 4690 [in, unique, string] LPCWSTR pszToolTip); 4691 4692 // Blocks until the notification times out. 4693 HRESULT Show( 4694 [in, unique] IQueryContinue *pqc, 4695 [in] DWORD dwContinuePollInterval); 4696 4697 HRESULT PlaySound( 4698 [in, string] LPCWSTR pszSoundName); 4699}; 4700 4701 4702/***************************************************************************** 4703 * IUserNotificationCallback interface (Vista+) 4704 */ 4705 4706[ 4707 uuid(19108294-0441-4aff-8013-fa0a730b0bea), 4708 object 4709] 4710interface IUserNotificationCallback : IUnknown 4711{ 4712 HRESULT OnBalloonUserClick([in] POINT * pt); 4713 HRESULT OnLeftClick([in] POINT * pt); 4714 HRESULT OnContextMenu([in] POINT * pt); 4715}; 4716 4717 4718/***************************************************************************** 4719 * IUserNotification2 interface (Vista+) 4720 */ 4721 4722[ 4723 uuid(215913cc-57eb-4fab-ab5a-e5fa7bea2a6c), 4724 object, 4725 pointer_default(unique) 4726] 4727interface IUserNotification2 : IUnknown 4728{ 4729 HRESULT SetBalloonInfo( 4730 [in, unique, string] LPCWSTR pszTitle, 4731 [in, unique, string] LPCWSTR pszText, 4732 [in] DWORD dwInfoFlags); 4733 4734 HRESULT SetBalloonRetry( 4735 [in] DWORD dwShowTime, // Time intervals in milliseconds 4736 [in] DWORD dwInterval, 4737 [in] UINT cRetryCount); 4738 4739 HRESULT SetIconInfo( 4740 [in, unique] HICON hIcon, 4741 [in, unique, string] LPCWSTR pszToolTip); 4742 4743 // Blocks until the notification times out. 4744 HRESULT Show( 4745 [in, unique] IQueryContinue *pqc, 4746 [in] DWORD dwContinuePollInterval, 4747 [in, unique] IUserNotificationCallback *pSink); 4748 4749 HRESULT PlaySound( 4750 [in, string] LPCWSTR pszSoundName); 4751}; 4752 4753/***************************************************************************** 4754 * IItemNameLimits interface 4755 */ 4756 4757[ 4758 uuid(1df0d7f1-b267-4d28-8b10-12e23202a5c4) 4759] 4760interface IItemNameLimits : IUnknown 4761{ 4762 HRESULT GetValidCharacters( 4763 [out, string] LPWSTR *ppwszValidChars, 4764 [out, string] LPWSTR *ppwszInvalidChars); 4765 4766 HRESULT GetMaxLength( 4767 [in, string] LPCWSTR pszName, 4768 [out] int *piMaxNameLen); 4769}; 4770 4771#endif // __REACTOS__ 4772