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