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