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