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{ 1445 1446 HRESULT Notify( 1447 [in] IShellView *ppshv, 1448 [in] DWORD dwNotifyType); 1449 1450 HRESULT GetDefaultMenuText( 1451 [in] IShellView *ppshv, 1452 [out, string, size_is(cchMax)] LPWSTR pszText, 1453 [in] int cchMax); 1454 1455 HRESULT GetViewFlags( 1456 [out] DWORD *pdwFlags); 1457} 1458 1459 1460/***************************************************************************** 1461 * ICommDlgBrowser3 interface 1462 */ 1463[ 1464 object, 1465 uuid(C8AD25A1-3294-41EE-8165-71174BD01C57), 1466 pointer_default(unique) 1467] 1468interface ICommDlgBrowser3 : ICommDlgBrowser2 1469{ 1470 1471 HRESULT OnColumnClicked( 1472 [in] IShellView *ppshv, 1473 [in] int iColumn); 1474 1475 HRESULT GetCurrentFilter( 1476 [out, string, size_is(cchFileSpec)] LPWSTR pszFileSpec, 1477 [in] int cchFileSpec); 1478 1479 HRESULT OnPreviewCreated( 1480 [in] IShellView *ppshv); 1481} 1482 1483/***************************************************************************** 1484 * IDockingWindow interface 1485 */ 1486[ 1487 object, 1488 uuid(012dd920-7b26-11d0-8ca9-00a0c92dbfe8) 1489] 1490interface IDockingWindow : IOleWindow 1491{ 1492 HRESULT ShowDW( 1493 [in] BOOL fShow); 1494 1495 HRESULT CloseDW( 1496 [in] DWORD dwReserved); 1497 1498 HRESULT ResizeBorderDW( 1499 [in] LPCRECT prcBorder, 1500 [in] IUnknown *punkToolbarSite, 1501 [in] BOOL fReserved); 1502}; 1503 1504 1505/***************************************************************************** 1506 * IDockingWindowFrame interface 1507 */ 1508[ 1509 object, 1510 uuid(47d2657a-7b27-11d0-8ca9-00a0c92dbfe8), 1511 pointer_default(unique), 1512 local 1513] 1514interface IDockingWindowFrame : IOleWindow 1515{ 1516cpp_quote("#define DWFRF_NORMAL 0x0000") 1517cpp_quote("#define DWFRF_DELETECONFIGDATA 0x0001") 1518cpp_quote("#define DWFAF_HIDDEN 0x0001") 1519 1520 HRESULT AddToolbar( 1521 [in] IUnknown *punkSrc, 1522 [in] LPCWSTR pwszItem, 1523 [in] DWORD dwAddFlags); 1524 1525 HRESULT RemoveToolbar( 1526 [in] IUnknown *punkSrc, 1527 [in] DWORD dwRemoveFlags); 1528 1529 HRESULT FindToolbar( 1530 [in] LPCWSTR pwszItem, 1531 [in] REFIID riid, 1532 [out] LPVOID *ppvObj); 1533} 1534 1535 1536/***************************************************************************** 1537 * IDragSourceHelper interface 1538 */ 1539[ 1540 object, 1541 uuid(de5bf786-477a-11d2-839d-00c04fd918d0), 1542 pointer_default(unique), 1543 local 1544] 1545interface IDragSourceHelper : IUnknown 1546{ 1547 typedef struct 1548 { 1549 SIZE sizeDragImage; 1550 POINT ptOffset; 1551 HBITMAP hbmpDragImage; 1552 COLORREF crColorKey; 1553 } SHDRAGIMAGE, *LPSHDRAGIMAGE; 1554 1555 HRESULT InitializeFromBitmap( 1556 [in] LPSHDRAGIMAGE pshdi, 1557 [in] IDataObject *pDataObject); 1558 1559 HRESULT InitializeFromWindow( 1560 [in] HWND hwnd, 1561 [in] POINT *ppt, 1562 [in] IDataObject *pDataObject); 1563} 1564 1565 1566/***************************************************************************** 1567 * IDropTargetHelper interface 1568 */ 1569[ 1570 object, 1571 uuid(4657278b-411b-11d2-839a-00c04fd918d0), 1572 pointer_default(unique), 1573 local 1574] 1575interface IDropTargetHelper : IUnknown 1576{ 1577 HRESULT DragEnter( 1578 [in] HWND hwndTarget, 1579 [in] IDataObject *pDataObject, 1580 [in] POINT *ppt, 1581 [in] DWORD dwEffect); 1582 1583 HRESULT DragLeave(); 1584 1585 HRESULT DragOver( 1586 [in] POINT *ppt, 1587 [in] DWORD dwEffect); 1588 1589 HRESULT Drop( 1590 [in] IDataObject *pDataObject, 1591 [in] POINT *ppt, 1592 [in] DWORD dwEffect); 1593 1594 HRESULT Show( [in] BOOL fShow ); 1595} 1596 1597 1598/***************************************************************************** 1599 * IContextMenu interface 1600 */ 1601[ 1602 object, 1603 uuid(000214e4-0000-0000-c000-000000000046), 1604 pointer_default(unique), 1605 local 1606] 1607interface IContextMenu : IUnknown 1608{ 1609cpp_quote("#define CMF_NORMAL 0x00000000") 1610cpp_quote("#define CMF_DEFAULTONLY 0x00000001") 1611cpp_quote("#define CMF_VERBSONLY 0x00000002") 1612cpp_quote("#define CMF_EXPLORE 0x00000004") 1613cpp_quote("#define CMF_NOVERBS 0x00000008") 1614cpp_quote("#define CMF_CANRENAME 0x00000010") 1615cpp_quote("#define CMF_NODEFAULT 0x00000020") 1616cpp_quote("#define CMF_INCLUDESTATIC 0x00000040") 1617cpp_quote("#define CMF_EXTENDEDVERBS 0x00000100") 1618cpp_quote("#define CMF_DISABLEDVERBS 0x00000200") 1619cpp_quote("#define CMF_ASYNCVERBSTATE 0x00000400") 1620cpp_quote("#define CMF_OPTIMIZEFORINVOKE 0x00000800") 1621cpp_quote("#define CMF_SYNCCASCADEMENU 0x00001000") 1622cpp_quote("#define CMF_DONOTPICKDEFAULT 0x00002000") 1623cpp_quote("#define CMF_RESERVED 0xffff0000") 1624 1625cpp_quote("#define GCS_VERBA 0x00000000") 1626cpp_quote("#define GCS_HELPTEXTA 0x00000001") 1627cpp_quote("#define GCS_VALIDATEA 0x00000002") 1628cpp_quote("#define GCS_VERBW 0x00000004") 1629cpp_quote("#define GCS_HELPTEXTW 0x00000005") 1630cpp_quote("#define GCS_VALIDATEW 0x00000006") 1631cpp_quote("#define GCS_UNICODE 0x00000004") 1632cpp_quote("#define GCS_VERB WINELIB_NAME_AW(GCS_VERB)") 1633cpp_quote("#define GCS_HELPTEXT WINELIB_NAME_AW(GCS_HELPTEXT)") 1634cpp_quote("#define GCS_VALIDATE WINELIB_NAME_AW(GCS_VALIDATE)") 1635 1636cpp_quote("#define CMDSTR_NEWFOLDERA \"NewFolder\"") 1637cpp_quote("#define CMDSTR_VIEWLISTA \"ViewList\"") 1638cpp_quote("#define CMDSTR_VIEWDETAILSA \"ViewDetails\"") 1639cpp_quote("#if defined(__GNUC__)") 1640cpp_quote("# define CMDSTR_NEWFOLDERW (const WCHAR []){ 'N','e','w','F','o','l','d','e','r',0 }") 1641cpp_quote("# define CMDSTR_VIEWLISTW (const WCHAR []){ 'V','i','e','w','L','i','s','t',0 }") 1642cpp_quote("# define CMDSTR_VIEWDETAILSW (const WCHAR []){ 'V','i','e','w','D','e','t','a','i','l','s',0 }") 1643cpp_quote("#elif defined(_MSC_VER)") 1644cpp_quote("# define CMDSTR_NEWFOLDERW L\"NewFolder\"") 1645cpp_quote("# define CMDSTR_VIEWLISTW L\"ViewList\"") 1646cpp_quote("# define CMDSTR_VIEWDETAILSW L\"ViewDetails\"") 1647cpp_quote("#else") 1648cpp_quote("static const WCHAR CMDSTR_NEWFOLDERW[] = {'N','e','w','F','o','l','d','e','r',0};") 1649cpp_quote("static const WCHAR CMDSTR_VIEWLISTW [] = {'V','i','e','w','L','i','s','t',0};") 1650cpp_quote("static const WCHAR CMDSTR_VIEWDETAILSW[] = {'V','i','e','w','D','e','t','a','i','l','s',0};") 1651cpp_quote("#endif") 1652cpp_quote("#define CMDSTR_NEWFOLDER WINELIB_NAME_AW(CMDSTR_NEWFOLDER)") 1653cpp_quote("#define CMDSTR_VIEWLIST WINELIB_NAME_AW(CMDSTR_VIEWLIST)") 1654cpp_quote("#define CMDSTR_VIEWDETAILS WINELIB_NAME_AW(CMDSTR_VIEWDETAILS)") 1655 1656cpp_quote("#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY") 1657cpp_quote("#define CMIC_MASK_ICON SEE_MASK_ICON") 1658cpp_quote("#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI") 1659cpp_quote("#define CMIC_MASK_UNICODE SEE_MASK_UNICODE") 1660cpp_quote("#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE") 1661cpp_quote("#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME") 1662cpp_quote("#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM") 1663cpp_quote("#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE") 1664cpp_quote("#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK") 1665cpp_quote("#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC") 1666cpp_quote("#define CMIC_MASK_SHIFT_DOWN 0x10000000") 1667cpp_quote("#define CMIC_MASK_PTINVOKE 0x20000000") 1668cpp_quote("#define CMIC_MASK_CONTROL_DOWN 0x40000000") 1669cpp_quote("#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE") 1670cpp_quote("#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS") 1671 1672 typedef IContextMenu *LPCONTEXTMENU; 1673 1674 typedef struct tagCMINVOKECOMMANDINFO 1675 { 1676 DWORD cbSize; 1677 DWORD fMask; 1678 HWND hwnd; 1679 LPCSTR lpVerb; 1680 LPCSTR lpParameters; 1681 LPCSTR lpDirectory; 1682 INT nShow; 1683 DWORD dwHotKey; 1684 HANDLE hIcon; 1685 } CMINVOKECOMMANDINFO, *LPCMINVOKECOMMANDINFO; 1686 1687 typedef struct tagCMInvokeCommandInfoEx 1688 { 1689 DWORD cbSize; 1690 DWORD fMask; 1691 HWND hwnd; 1692 LPCSTR lpVerb; 1693 LPCSTR lpParameters; 1694 LPCSTR lpDirectory; 1695 INT nShow; 1696 DWORD dwHotKey; 1697 HANDLE hIcon; 1698 LPCSTR lpTitle; 1699 LPCWSTR lpVerbW; 1700 LPCWSTR lpParametersW; 1701 LPCWSTR lpDirectoryW; 1702 LPCWSTR lpTitleW; 1703 POINT ptInvoke; 1704 } CMINVOKECOMMANDINFOEX, *LPCMINVOKECOMMANDINFOEX; 1705 1706 HRESULT QueryContextMenu( 1707 [in] HMENU hmenu, 1708 [in] UINT indexMenu, 1709 [in] UINT idCmdFirst, 1710 [in] UINT idCmdLast, 1711 [in] UINT uFlags); 1712 1713 HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO lpici ); 1714 1715 HRESULT GetCommandString( 1716 [in] UINT_PTR idCmd, 1717 [in] UINT uType, 1718 [out] UINT *pwReserved, 1719 [out, size_is(cchMax)] LPSTR pszName, 1720 [in] UINT cchMax); 1721} 1722 1723 1724/***************************************************************************** 1725 * IContextMenu2 interface 1726 */ 1727[ 1728 object, 1729 uuid(000214f4-0000-0000-c000-000000000046), 1730 pointer_default(unique), 1731 local 1732] 1733interface IContextMenu2 : IContextMenu 1734{ 1735 typedef IContextMenu2 *LPCONTEXTMENU2; 1736 1737 HRESULT HandleMenuMsg( 1738 [in] UINT uMsg, 1739 [in] WPARAM wParam, 1740 [in] LPARAM lParam); 1741} 1742 1743 1744/***************************************************************************** 1745 * IContextMenu3 interface 1746 */ 1747[ 1748 object, 1749 uuid(bcfce0a0-ec17-11d0-8d10-00a0c90f2719), 1750 pointer_default(unique), 1751 local 1752] 1753interface IContextMenu3 : IContextMenu2 1754{ 1755 typedef IContextMenu3 *LPCONTEXTMENU3; 1756 1757 HRESULT HandleMenuMsg2( 1758 [in] UINT uMsg, 1759 [in] WPARAM wParam, 1760 [in] LPARAM lParam, 1761 [out] LRESULT *plResult); 1762} 1763 1764/***************************************************************************** 1765 * IContextMenuCB interface 1766 */ 1767 1768[ 1769 object, 1770 uuid(3409e930-5a39-11d1-83fa-00a0c90dc849), 1771 pointer_default(unique), 1772 local 1773] 1774interface IContextMenuCB : IUnknown 1775{ 1776 HRESULT CallBack( 1777 [in] IShellFolder *psf, 1778 [in] HWND hwndOwner, 1779 [in] IDataObject *pdtobj, 1780 [in] UINT uMsg, 1781 [in] WPARAM wParam, 1782 [in] LPARAM lParam); 1783} 1784 1785/***************************************************************************** 1786 * IShellExecuteHookA interface 1787 */ 1788[ 1789 object, 1790 uuid(000214f5-0000-0000-c000-000000000046), 1791 pointer_default(unique), 1792 local 1793] 1794interface IShellExecuteHookA : IUnknown 1795{ 1796 cpp_quote("struct _SHELLEXECUTEINFOA;") 1797 HRESULT Execute( 1798 [in, out] struct _SHELLEXECUTEINFOA* pei); 1799} 1800 1801 1802/***************************************************************************** 1803 * IShellExecuteHookW interface 1804 */ 1805[ 1806 object, 1807 uuid(000214fb-0000-0000-c000-000000000046), 1808 pointer_default(unique), 1809 local 1810] 1811interface IShellExecuteHookW : IUnknown 1812{ 1813 cpp_quote("struct _SHELLEXECUTEINFOW;") 1814 HRESULT Execute( 1815 [in, out] struct _SHELLEXECUTEINFOW* pei); 1816} 1817 1818/***************************************************************************** 1819 * IShellLinkDataList interface 1820 */ 1821[ 1822 object, 1823 uuid(45e2b4ae-b1c3-11d0-b92f-00a0c90312e1), 1824 pointer_default(unique) 1825] 1826interface IShellLinkDataList : IUnknown 1827{ 1828 [local] HRESULT AddDataBlock( 1829 [in] void *pDataBlock); 1830 [local] HRESULT CopyDataBlock( 1831 [in] DWORD dwSig, 1832 [out] void **ppDataBlock); 1833 HRESULT RemoveDataBlock( 1834 [in] DWORD dwSig); 1835 HRESULT GetFlags( 1836 [out] DWORD *pdwFlags); 1837 HRESULT SetFlags( 1838 [in] DWORD dwFlags); 1839} 1840 1841 1842/***************************************************************************** 1843 * IResolveShellLink interface 1844 */ 1845[ 1846 object, 1847 uuid(5cd52983-9449-11d2-963a-00c04f79adf0), 1848 pointer_default(unique) 1849] 1850interface IResolveShellLink : IUnknown 1851{ 1852 HRESULT ResolveShellLink( 1853 [in] IUnknown *punk, 1854 [in] HWND hwnd, 1855 [in] DWORD fFlags); 1856} 1857 1858 1859/***************************************************************************** 1860 * IURLSearchHook interface 1861 */ 1862[ 1863 object, 1864 uuid(ac60f6a0-0fd9-11d0-99cb-00c04fd64497), 1865 pointer_default(unique), 1866 local 1867] 1868interface IURLSearchHook : IUnknown 1869{ 1870 HRESULT Translate( 1871 [in, out] LPWSTR lpwszSearchURL, 1872 [in] DWORD cchBufferSize); 1873} 1874 1875 1876/***************************************************************************** 1877 * ISearchContext interface 1878 */ 1879[ 1880 object, 1881 uuid(09f656a2-41af-480c-88f7-16cc0d164615), 1882 pointer_default(unique), 1883 local 1884] 1885interface ISearchContext : IUnknown 1886{ 1887 HRESULT GetSearchUrl( 1888 [in] BSTR *pbstrSearchUrl); 1889 HRESULT GetSearchText( 1890 [in] BSTR *pbstrSearchText); 1891 HRESULT GetSearchStyle( 1892 [in] BSTR *pdwSearchStyle); 1893} 1894 1895 1896/***************************************************************************** 1897 * IURLSearchHook2 interface 1898 */ 1899[ 1900 object, 1901 uuid(5ee44da4-6d32-46e3-86bc-07540dedd0e0), 1902 pointer_default(unique), 1903 local 1904] 1905interface IURLSearchHook2 : IURLSearchHook 1906{ 1907 HRESULT TranslateWithSearchContext( 1908 [in, out] LPWSTR lpwszSearchURL, 1909 [in] DWORD cchBufferSize, 1910 [in] ISearchContext *pSearchContext); 1911} 1912 1913 1914cpp_quote("#define INewShortcutHook WINELIB_NAME_AW(INewShortcutHook)") 1915 1916/***************************************************************************** 1917 * INewShortcutHookA interface 1918 */ 1919[ 1920 object, 1921 uuid(000214e1-0000-0000-c000-000000000046), 1922 pointer_default(unique), 1923 local 1924] 1925interface INewShortcutHookA : IUnknown 1926{ 1927 HRESULT SetReferent( 1928 [in] LPCSTR pcszReferent, 1929 [in] HWND hwnd); 1930 HRESULT GetReferent( 1931 [out] LPSTR pcszReferent, 1932 [in] int cchReferent); 1933 HRESULT SetFolder( 1934 [in] LPCSTR pcszReferent); 1935 HRESULT GetFolder( 1936 [out] LPSTR pcszReferent, 1937 [in] int cchFolder); 1938 HRESULT GetName( 1939 [out] LPSTR pszName, 1940 [in] int cchName); 1941 HRESULT GetExtension( 1942 [out] LPSTR pszExtension, 1943 [in] int cchExtension); 1944} 1945 1946 1947/***************************************************************************** 1948 * INewShortcutHookW interface 1949 */ 1950[ 1951 object, 1952 uuid(000214f7-0000-0000-c000-000000000046), 1953 pointer_default(unique), 1954 local 1955] 1956interface INewShortcutHookW : IUnknown 1957{ 1958 HRESULT SetReferent( 1959 [in] LPCWSTR pcszReferent, 1960 [in] HWND hwnd); 1961 HRESULT GetReferent( 1962 [out] LPWSTR pcszReferent, 1963 [in] int cchReferent); 1964 HRESULT SetFolder( 1965 [in] LPCWSTR pcszReferent); 1966 HRESULT GetFolder( 1967 [out] LPWSTR pcszReferent, 1968 [in] int cchFolder); 1969 HRESULT GetName( 1970 [out] LPWSTR pszName, 1971 [in] int cchName); 1972 HRESULT GetExtension( 1973 [out] LPWSTR pszExtension, 1974 [in] int cchExtension); 1975} 1976 1977/***************************************************************************** 1978 * IRunnableTask interface 1979 */ 1980[ 1981 object, 1982 uuid(85788d00-6807-11d0-b810-00c04fd706ec), 1983 pointer_default(unique), 1984 local 1985] 1986interface IRunnableTask : IUnknown 1987{ 1988 HRESULT Run(); 1989 HRESULT Kill([in] BOOL fWait); 1990 HRESULT Suspend(); 1991 HRESULT Resume(); 1992 ULONG IsRunning(); 1993} 1994 1995/***************************************************************************** 1996 * IShellChangeNotify interface 1997 */ 1998[ 1999 object, 2000 uuid(d82be2b1-5764-11d0-a96e-00c04fd705a2), 2001 pointer_default(unique), 2002 local 2003] 2004interface IShellChangeNotify : IUnknown 2005{ 2006 HRESULT OnChange( 2007 [in] LONG lEvent, 2008 [in] PCIDLIST_ABSOLUTE pidl1, 2009 [in] PCIDLIST_ABSOLUTE pidl2); 2010} 2011 2012cpp_quote("#define STR_FILE_SYS_BIND_DATA L\"File System Bind Data\"") 2013 2014/***************************************************************************** 2015 * IFileSystemBindData interface 2016 */ 2017[ 2018 object, 2019 uuid(01e18d10-4d8b-11d2-855d-006008059367), 2020 pointer_default(unique), 2021 local 2022] 2023interface IFileSystemBindData : IUnknown 2024{ 2025 HRESULT SetFindData( 2026 [in] const WIN32_FIND_DATAW *pfd); 2027 HRESULT GetFindData( 2028 [out] WIN32_FIND_DATAW *pfd); 2029} 2030 2031/***************************************************************************** 2032 * ITaskbarList interface 2033 */ 2034[ 2035 object, 2036 uuid(56FDF342-FD6D-11d0-958A-006097C9A090), 2037 pointer_default(unique) 2038] 2039interface ITaskbarList : IUnknown 2040{ 2041 HRESULT HrInit(); 2042 2043 HRESULT AddTab( 2044 [in] HWND hwnd); 2045 2046 HRESULT DeleteTab( 2047 [in] HWND hwnd); 2048 2049 HRESULT ActivateTab( 2050 [in] HWND hwnd); 2051 2052 HRESULT SetActiveAlt( 2053 [in] HWND hwnd); 2054} 2055 2056/***************************************************************************** 2057 * ITaskbarList2 interface 2058 */ 2059[ 2060 object, 2061 uuid(602D4995-B13A-429B-A66E-1935E44F4317), 2062 pointer_default(unique) 2063] 2064interface ITaskbarList2 : ITaskbarList 2065{ 2066 HRESULT MarkFullscreenWindow( 2067 [in] HWND hwnd, 2068 [in] BOOL fullscreen); 2069} 2070 2071cpp_quote("#ifdef MIDL_PASS") 2072typedef IUnknown* HIMAGELIST; 2073cpp_quote("#endif") 2074 2075typedef [v1_enum] enum THUMBBUTTONFLAGS { 2076 THBF_ENABLED = 0x0000, 2077 THBF_DISABLED = 0x0001, 2078 THBF_DISMISSONCLICK = 0x0002, 2079 THBF_NOBACKGROUND = 0x0004, 2080 THBF_HIDDEN = 0x0008, 2081 THBF_NONINTERACTIVE = 0x0010 2082} THUMBBUTTONFLAGS; 2083 2084cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)") 2085 2086typedef [v1_enum] enum THUMBBUTTONMASK { 2087 THB_BITMAP = 0x0001, 2088 THB_ICON = 0x0002, 2089 THB_TOOLTIP = 0x0004, 2090 THB_FLAGS = 0x0008 2091} THUMBBUTTONMASK; 2092 2093cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)") 2094 2095cpp_quote("#include <pshpack8.h>") 2096typedef struct THUMBBUTTON { 2097 THUMBBUTTONMASK dwMask; 2098 UINT iId; 2099 UINT iBitmap; 2100 HICON hIcon; 2101 WCHAR szTip[260]; 2102 THUMBBUTTONFLAGS dwFlags; 2103} THUMBBUTTON, *LPTHUMBBUTTON; 2104cpp_quote("#include <poppack.h>") 2105 2106[ 2107 uuid(ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf), 2108 object 2109] 2110interface ITaskbarList3 : ITaskbarList2 2111{ 2112 typedef [v1_enum] enum TBPFLAG { 2113 TBPF_NOPROGRESS = 0x0000, 2114 TBPF_INDETERMINATE = 0x0001, 2115 TBPF_NORMAL = 0x0002, 2116 TBPF_ERROR = 0x0004, 2117 TBPF_PAUSED = 0x0008 2118 } TBPFLAG; 2119 2120 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)") 2121 2122 HRESULT SetProgressValue( 2123 [in] HWND hwnd, 2124 [in] ULONGLONG ullCompleted, 2125 [in] ULONGLONG ullTotal); 2126 2127 HRESULT SetProgressState( 2128 [in] HWND hwnd, 2129 [in] TBPFLAG tbpFlags); 2130 2131 HRESULT RegisterTab( 2132 [in] HWND hwndTab, 2133 [in] HWND hwndMDI); 2134 2135 HRESULT UnregisterTab([in] HWND hwndTab); 2136 2137 HRESULT SetTabOrder( 2138 [in] HWND hwndTab, 2139 [in] HWND hwndInsertBefore); 2140 2141 HRESULT SetTabActive( 2142 [in] HWND hwndTab, 2143 [in] HWND hwndMDI, 2144 [in] DWORD dwReserved); 2145 2146 HRESULT ThumbBarAddButtons( 2147 [in] HWND hwnd, 2148 [in] UINT cButtons, 2149 [in, size_is(cButtons)] LPTHUMBBUTTON pButton); 2150 2151 HRESULT ThumbBarUpdateButtons( 2152 [in] HWND hwnd, 2153 [in] UINT cButtons, 2154 [in, size_is(cButtons)] LPTHUMBBUTTON pButton); 2155 2156 HRESULT ThumbBarSetImageList( 2157 [in] HWND hwnd, 2158 [in] HIMAGELIST himl); 2159 2160 HRESULT SetOverlayIcon( 2161 [in] HWND hwnd, 2162 [in] HICON hIcon, 2163 [in, unique, string] LPCWSTR pszDescription); 2164 2165 HRESULT SetThumbnailTooltip( 2166 [in] HWND hwnd, 2167 [in, unique, string] LPCWSTR pszTip); 2168 2169 HRESULT SetThumbnailClip( 2170 [in] HWND hwnd, 2171 [in] RECT *prcClip); 2172} 2173 2174[ 2175 uuid(c43dc798-95d1-4bea-9030-bb99e2983a1a), 2176 object 2177] 2178interface ITaskbarList4 : ITaskbarList3 2179{ 2180 typedef [v1_enum] enum STPFLAG { 2181 STPF_NONE = 0x0000, 2182 STPF_USEAPPTHUMBNAILALWAYS = 0x0001, 2183 STPF_USEAPPTHUMBNAILWHENACTIVE = 0x0002, 2184 STPF_USEAPPPEEKALWAYS = 0x0004, 2185 STPF_USEAPPPEEKWHENACTIVE = 0x0008 2186 } STPFLAG; 2187 2188 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)") 2189 2190 HRESULT SetTabProperties( 2191 [in] HWND hwndTab, 2192 [in] STPFLAG stpFlags); 2193} 2194 2195/***************************************************************************** 2196 * IDefaultExtractIconInit interface 2197 */ 2198 2199[ 2200 object, 2201 uuid(800AB0B8-F5FA-4e72-8FF3-B1A243B87BD9), /* FIXME: wrong value! */ 2202 pointer_default(unique), 2203 local 2204] 2205interface IDefaultExtractIconInit : IUnknown 2206{ 2207 HRESULT SetDefaultIcon( 2208 [in] LPCWSTR pszFile, 2209 [in] int iIcon); 2210 HRESULT SetFlags( 2211 [in] UINT uFlags); 2212 HRESULT SetKey( 2213 [in] HKEY hkey); 2214 HRESULT SetNormalIcon( 2215 [in] LPCWSTR pszFile, 2216 [in] int iIcon); 2217 HRESULT SetOpenIcon( 2218 [in] LPCWSTR pszFile, 2219 [in] int iIcon); 2220 HRESULT SetShortcutIcon( 2221 [in] LPCWSTR pszFile, 2222 [in] int iIcon); 2223} 2224 2225 2226#ifdef __REACTOS__ 2227/***************************************************************************** 2228 * IExplorerCommand interface (Vista+) 2229 */ 2230 2231interface IEnumExplorerCommand; 2232 2233[ 2234 uuid(A08CE4D0-FA25-44AB-B57C-C7B1C323E0B9), 2235 pointer_default(unique) 2236] 2237interface IExplorerCommand : IUnknown 2238{ 2239 cpp_quote("// GetIcon(ppszIcon) Receives resource string that identifies icon source") 2240 typedef [v1_enum] enum _EXPCMDSTATE 2241 { 2242 ECS_ENABLED = 0x000, 2243 ECS_DISABLED = 0x001, 2244 ECS_HIDDEN = 0x002, 2245 ECS_CHECKBOX = 0x004, 2246 ECS_CHECKED = 0x008, 2247 ECS_RADIOCHECK = 0x010, // Windows 7 2248 } EXPCMDSTATE; 2249 2250 typedef [v1_enum] enum _EXPCMDFLAGS 2251 { 2252 ECF_DEFAULT = 0x000, 2253 ECF_HASSUBCOMMANDS = 0x001, 2254 ECF_HASSPLITBUTTON = 0x002, 2255 ECF_HIDELABEL = 0x004, 2256 ECF_ISSEPARATOR = 0x008, 2257 ECF_HASLUASHIELD = 0x010, 2258 ECF_SEPARATORBEFORE = 0x020, // Windows 7 2259 ECF_SEPARATORAFTER = 0x040, // Windows 7 2260 ECF_ISDROPDOWN = 0x080, // Windows 7 2261 ECF_TOGGLEABLE = 0x100, // Windows 8 2262 ECF_AUTOMENUICONS = 0x200, // Windows 8 2263 } EXPCMDFLAGS; 2264 2265 HRESULT GetTitle( 2266 [in, unique] IShellItemArray *psiItemArray, 2267 [out, string] LPWSTR *ppszName); 2268 HRESULT GetIcon( 2269 [in, unique] IShellItemArray *psiItemArray, 2270 [out, string] LPWSTR *ppszIcon); 2271 HRESULT GetToolTip( 2272 [in, unique] IShellItemArray *psiItemArray, 2273 [out, string] LPWSTR *ppszInfotip); 2274 HRESULT GetCanonicalName( 2275 [out] GUID* pguidCommandName); 2276 HRESULT GetState( 2277 [in] IShellItemArray *psiItemArray, 2278 [in] BOOL fOkToBeSlow, 2279 [out] EXPCMDSTATE *pCmdState); 2280 HRESULT Invoke( 2281 [in] IShellItemArray *psiItemArray, 2282 [in, unique] IBindCtx *pbc); 2283 HRESULT GetFlags( 2284 [out] EXPCMDFLAGS *pFlags); 2285 HRESULT EnumSubCommands( 2286 [out] IEnumExplorerCommand **ppEnum); 2287}; 2288 2289 2290/***************************************************************************** 2291 * IExplorerCommandState interface (Vista+) 2292 */ 2293[ 2294 object, 2295 uuid(BDDACB60-7657-47AE-8445-D23E1ACF82AE), 2296 pointer_default(unique) 2297] 2298interface IExplorerCommandState : IUnknown 2299{ 2300 HRESULT GetState( 2301 [in] IShellItemArray *psiItemArray, 2302 [in] BOOL fOkToBeSlow, 2303 [out] EXPCMDSTATE *pCmdState); 2304} 2305 2306 2307/***************************************************************************** 2308 * IInitializeCommand interface (Vista+) 2309 */ 2310[ 2311 object, 2312 uuid(85075ACF-231F-40EA-9610-D26B7B58F638), 2313 pointer_default(unique) 2314] 2315interface IInitializeCommand : IUnknown 2316{ 2317 HRESULT Initialize( 2318 [in, string] LPCWSTR pszCommandName, 2319 [in] IPropertyBag *ppb); 2320} 2321 2322 2323/***************************************************************************** 2324 * IEnumExplorerCommand interface (Vista+) 2325 */ 2326[ 2327 object, 2328 uuid(A88826F8-186F-4987-AADE-EA0CEF8FBFE8), 2329 pointer_default(unique) 2330] 2331interface IEnumExplorerCommand : IUnknown 2332{ 2333 [local] 2334 HRESULT Next( 2335 [in] ULONG celt, 2336 [out] IExplorerCommand** pUICommand, 2337 [out, optional] ULONG *pceltFetched); 2338 [call_as(Next)] 2339 HRESULT RemoteNext( 2340 [in] ULONG celt, 2341 [out] IExplorerCommand** pUICommand, 2342 [out, optional] ULONG *pceltFetched); 2343 HRESULT Skip( 2344 [in] ULONG celt); 2345 HRESULT Reset(); 2346 HRESULT Clone( 2347 [out] IEnumExplorerCommand **ppenum); 2348}; 2349 2350 2351/***************************************************************************** 2352 * IExplorerCommandProvider interface (Vista+) 2353 */ 2354[ 2355 uuid(64961751-0835-43C0-8FFE-D57686530E64), 2356 pointer_default(unique) 2357] 2358interface IExplorerCommandProvider : IUnknown 2359{ 2360 cpp_quote("// GetCommands usually creates an IEnumExplorerCommand") 2361 cpp_quote("// GetCommand usually creates an IExplorerCommand") 2362 2363 HRESULT GetCommands( 2364 [in] IUnknown *punkSite, 2365 [in] REFIID riid, 2366 [out, iid_is(riid)] void **ppv); 2367 HRESULT GetCommand( 2368 [in] REFGUID rguidCommandId, 2369 [in] REFIID riid, 2370 [out, iid_is(riid)] void **ppv); 2371}; 2372 2373 2374/***************************************************************************** 2375 * IOpenControlPanel interface (Vista+) 2376 */ 2377[ 2378 object, 2379 uuid(D11AD862-66DE-4DF4-BF6C-1F5621996AF1), 2380 pointer_default(unique) 2381] 2382interface IOpenControlPanel : IUnknown 2383{ 2384 typedef [v1_enum] enum CPVIEW 2385 { 2386 CPVIEW_CLASSIC = 0, 2387 CPVIEW_CATEGORY = 1, 2388 CPVIEW_ALLITEMS = CPVIEW_CLASSIC, 2389 CPVIEW_HOME = CPVIEW_CATEGORY 2390 } CPVIEW; 2391 2392 HRESULT Open( 2393 [in, optional] LPCWSTR pszName, 2394 [in, optional] LPCWSTR pszPage, 2395 [in, optional] IUnknown *punkSite); 2396 HRESULT GetPath( 2397 [in, optional] LPCWSTR pszName, 2398 [out, string, size_is(cchPath)] LPWSTR pszPath, 2399 [in] UINT cchPath); 2400 HRESULT GetCurrentView( 2401 [out] CPVIEW *pView); 2402} 2403 2404#endif // __REACTOS__ 2405 2406/***************************************************************************** 2407 * IDeskBand interface 2408 */ 2409cpp_quote("#define DBIM_MINSIZE 0x0001") 2410cpp_quote("#define DBIM_MAXSIZE 0x0002") 2411cpp_quote("#define DBIM_INTEGRAL 0x0004") 2412cpp_quote("#define DBIM_ACTUAL 0x0008") 2413cpp_quote("#define DBIM_TITLE 0x0010") 2414cpp_quote("#define DBIM_MODEFLAGS 0x0020") 2415cpp_quote("#define DBIM_BKCOLOR 0x0040") 2416 2417cpp_quote("#include <pshpack8.h>") 2418 2419typedef struct tagDESKBANDINFO 2420{ 2421 DWORD dwMask; 2422 POINTL ptMinSize; 2423 POINTL ptMaxSize; 2424 POINTL ptIntegral; 2425 POINTL ptActual; 2426 WCHAR wszTitle[256]; 2427 DWORD dwModeFlags; 2428 COLORREF crBkgnd; 2429} DESKBANDINFO; 2430 2431cpp_quote("#include <poppack.h>") 2432 2433cpp_quote("#define DBIMF_NORMAL 0x0000") 2434cpp_quote("#define DBIMF_FIXED 0x0001") 2435cpp_quote("#define DBIMF_FIXEDBMP 0x0004 // a fixed background bitmap (if supported)") 2436cpp_quote("#define DBIMF_VARIABLEHEIGHT 0x0008") 2437cpp_quote("#define DBIMF_UNDELETEABLE 0x0010") 2438cpp_quote("#define DBIMF_DEBOSSED 0x0020") 2439cpp_quote("#define DBIMF_BKCOLOR 0x0040") 2440cpp_quote("#define DBIMF_USECHEVRON 0x0080") 2441cpp_quote("#define DBIMF_BREAK 0x0100") 2442cpp_quote("#define DBIMF_ADDTOFRONT 0x0200") 2443cpp_quote("#define DBIMF_TOPALIGN 0x0400") 2444cpp_quote("#if (NTDDI_VERSION >= NTDDI_LONGHORN)") 2445cpp_quote("#define DBIMF_NOGRIPPER 0x0800") 2446cpp_quote("#define DBIMF_ALWAYSGRIPPER 0x1000") 2447cpp_quote("#define DBIMF_NOMARGINS 0x2000") 2448cpp_quote("#endif // NTDDI_LONGHORN") 2449 2450cpp_quote("#define DBIF_VIEWMODE_NORMAL 0x0000") 2451cpp_quote("#define DBIF_VIEWMODE_VERTICAL 0x0001") 2452cpp_quote("#define DBIF_VIEWMODE_FLOATING 0x0002") 2453cpp_quote("#define DBIF_VIEWMODE_TRANSPARENT 0x0004") 2454 2455enum tagDESKBANDCID { 2456 DBID_BANDINFOCHANGED = 0, 2457 DBID_SHOWONLY = 1, 2458 DBID_MAXIMIZEBAND = 2, 2459 DBID_PUSHCHEVRON = 3, 2460 DBID_DELAYINIT = 4, 2461 DBID_FINISHINIT = 5, 2462 DBID_SETWINDOWTHEME = 6, 2463 DBID_PERMITAUTOHIDE = 7, 2464}; 2465 2466cpp_quote("#define DBPC_SELECTFIRST (DWORD)-1") 2467cpp_quote("#define DBPC_SELECTLAST (DWORD)-2") 2468 2469cpp_quote("#define CGID_DeskBand IID_IDeskBand") 2470 2471[ 2472 uuid(EB0FE172-1A3A-11D0-89B3-00A0C90A90AC), 2473 object, 2474] 2475interface IDeskBand : IDockingWindow 2476{ 2477 HRESULT GetBandInfo( 2478 [in] DWORD dwBandID, 2479 [in] DWORD dwViewMode, 2480 [in, out] DESKBANDINFO* pdbi); 2481} 2482 2483cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)") 2484 2485[ 2486 uuid(EB0FE173-1A3A-11D0-89B3-00A0C90A90AC), 2487 object, 2488 pointer_default(unique), 2489 local 2490] 2491interface IDeskBar : IOleWindow 2492{ 2493 HRESULT SetClient([in] IUnknown* punkClient); 2494 2495 HRESULT GetClient([out] IUnknown** ppunkClient); 2496 2497 HRESULT OnPosRectChangeDB([in] RECT *prc); 2498} 2499 2500 2501/***************************************************************************** 2502 * IMenuPopup interface 2503 */ 2504[ 2505 uuid(D1E7AFEB-6A2E-11d0-8C78-00C04FD918B4), 2506 object, 2507 pointer_default(unique), 2508 local 2509] 2510interface IMenuPopup : IDeskBar 2511{ 2512 enum tagMENUPOPUPSELECT 2513 { 2514 MPOS_EXECUTE = 0, 2515 MPOS_FULLCANCEL, 2516 MPOS_CANCELLEVEL, 2517 MPOS_SELECTLEFT, 2518 MPOS_SELECTRIGHT, 2519 MPOS_CHILDTRACKING 2520 }; 2521 2522 enum tagMENUPOPUPPOPUPFLAGS 2523 { 2524 MPPF_SETFOCUS = 0x00000001, 2525 MPPF_INITIALSELECT = 0x00000002, 2526 MPPF_NOANIMATE = 0x00000004, 2527 MPPF_KEYBOARD = 0x00000010, 2528 MPPF_REPOSITION = 0x00000020, 2529 MPPF_FORCEZORDER = 0x00000040, 2530 MPPF_FINALSELECT = 0x00000080, 2531 MPPF_TOP = 0x20000000, 2532 MPPF_LEFT = 0x40000000, 2533 MPPF_RIGHT = 0x60000000, 2534 MPPF_BOTTOM = 0x80000000, 2535 MPPF_POS_MASK = 0xE0000000, 2536 MPPF_ALIGN_LEFT = 0x02000000, 2537 MPPF_ALIGN_RIGHT = 0x04000000 2538 }; 2539 typedef int MP_POPUPFLAGS; 2540 2541 HRESULT Popup( 2542 [in] POINTL *ppt, 2543 [in] RECTL *prcExclude, 2544 [in] MP_POPUPFLAGS dwFlags); 2545 2546 HRESULT OnSelect([in] DWORD dwSelectType); 2547 2548 HRESULT SetSubMenu( 2549 [in] IMenuPopup* pmp, 2550 [in] BOOL fSet); 2551} 2552 2553cpp_quote("#endif /* _WIN32_IE_IE60 */") 2554 2555cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE40)") 2556 2557/***************************************************************************** 2558 * IBandSite interface 2559 */ 2560cpp_quote("#include <pshpack8.h>") 2561 2562typedef struct tagBANDSITEINFO 2563{ 2564 DWORD dwMask; 2565 DWORD dwState; 2566 DWORD dwStyle; 2567} BANDSITEINFO; 2568 2569cpp_quote("#include <poppack.h>") 2570 2571 2572enum tagBANDSITECID { 2573 BSID_BANDADDED, 2574 BSID_BANDREMOVED, 2575}; 2576 2577cpp_quote("#define BSIM_STATE 0x00000001") 2578cpp_quote("#define BSIM_STYLE 0x00000002") 2579 2580cpp_quote("#define BSSF_VISIBLE 0x00000001") 2581cpp_quote("#define BSSF_NOTITLE 0x00000002") 2582cpp_quote("#define BSSF_UNDELETEABLE 0x00001000") 2583 2584cpp_quote("#define BSIS_AUTOGRIPPER 0x00000000") 2585cpp_quote("#define BSIS_NOGRIPPER 0x00000001") 2586cpp_quote("#define BSIS_ALWAYSGRIPPER 0x00000002") 2587cpp_quote("#define BSIS_LEFTALIGN 0x00000004") 2588cpp_quote("#define BSIS_SINGLECLICK 0x00000008") 2589cpp_quote("#define BSIS_NOCONTEXTMENU 0x00000010") 2590cpp_quote("#define BSIS_NODROPTARGET 0x00000020") 2591cpp_quote("#define BSIS_NOCAPTION 0x00000040") 2592cpp_quote("#define BSIS_PREFERNOLINEBREAK 0x00000080") 2593cpp_quote("#define BSIS_LOCKED 0x00000100") 2594cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE70)") 2595cpp_quote("#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200") 2596cpp_quote("#endif /* _WIN32_IE_IE70 */") 2597 2598cpp_quote("#define SID_SBandSite IID_IBandSite") 2599cpp_quote("#define CGID_BandSite IID_IBandSite") 2600 2601[ 2602 object, 2603 uuid(4CF504B0-DE96-11D0-8B3F-00A0C911E8E5) 2604] 2605interface IBandSite : IUnknown 2606{ 2607 HRESULT AddBand([in] IUnknown* punk); 2608 2609 HRESULT EnumBands( 2610 [in] UINT uBand, 2611 [out] DWORD* pdwBandID); 2612 2613 HRESULT QueryBand( 2614 [in] DWORD dwBandID, 2615 [out] IDeskBand** ppstb, 2616 [out] DWORD* pdwState, 2617 [out, string, size_is(cchName)] LPWSTR pszName, 2618 [in] int cchName); 2619 2620 HRESULT SetBandState( 2621 [in] DWORD dwBandID, 2622 [in] DWORD dwMask, 2623 [in] DWORD dwState); 2624 2625 HRESULT RemoveBand([in] DWORD dwBandID); 2626 2627 HRESULT GetBandObject( 2628 [in] DWORD dwBandID, 2629 [in] REFIID riid, 2630 [out, iid_is(riid)] void **ppv); 2631 2632 HRESULT SetBandSiteInfo([in] const BANDSITEINFO *pbsinfo); 2633 2634 HRESULT GetBandSiteInfo([in, out] BANDSITEINFO *pbsinfo); 2635} 2636 2637cpp_quote("#endif /* _WIN32_IE_IE40 */") 2638 2639/***************************************************************************** 2640 * IMenuBand interface 2641 */ 2642[ 2643 uuid(568804CD-CBD7-11d0-9816-00C04FD91972), 2644 object, 2645 pointer_default(unique), 2646 local 2647] 2648interface IMenuBand : IUnknown 2649{ 2650 enum tagMENUBANDHANDLERCID { 2651 MBHANDCID_PIDLSELECT = 0, 2652 }; 2653 2654 HRESULT IsMenuMessage([in] MSG* pmsg); 2655 2656 HRESULT TranslateMenuMessage( 2657 [in, out] MSG* pmsg, 2658 [out] LRESULT* plRet); 2659} 2660 2661/***************************************************************************** 2662 * IShellMenuCallback interface 2663 */ 2664cpp_quote("#include <pshpack8.h>") 2665 2666typedef struct tagSMDATA 2667{ 2668 DWORD dwMask; 2669 DWORD dwFlags; 2670 HMENU hmenu; 2671 HWND hwnd; 2672 UINT uId; 2673 UINT uIdParent; 2674 UINT uIdAncestor; 2675 IUnknown *punk; 2676 PIDLIST_ABSOLUTE pidlFolder; 2677 PUITEMID_CHILD pidlItem; 2678 IShellFolder *psf; 2679 void *pvUserData; 2680} SMDATA, *LPSMDATA; 2681 2682cpp_quote("#define SMDM_SHELLFOLDER 0x00000001") 2683cpp_quote("#define SMDM_HMENU 0x00000002") 2684cpp_quote("#define SMDM_TOOLBAR 0x00000004") 2685 2686typedef struct tagSMINFO 2687{ 2688 DWORD dwMask; 2689 DWORD dwType; 2690 DWORD dwFlags; 2691 int iIcon; 2692} SMINFO, *PSMINFO; 2693 2694typedef struct tagSHCSCHANGENOTIFYSTRUCT 2695{ 2696 LONG lEvent; 2697 PCIDLIST_ABSOLUTE pidl1; 2698 PCIDLIST_ABSOLUTE pidl2; 2699} SMCSHCHANGENOTIFYSTRUCT, *PSMCSHCHANGENOTIFYSTRUCT; 2700 2701cpp_quote("#include <poppack.h>") 2702 2703enum 2704{ 2705 SMIM_TYPE = 0x00000001, 2706 SMIM_FLAGS = 0x00000002, 2707 SMIM_ICON = 0x00000004 2708}; 2709 2710enum 2711{ 2712 SMIT_SEPARATOR = 0x00000001, 2713 SMIT_STRING = 0x00000002 2714}; 2715 2716enum 2717{ 2718 SMIF_ICON = 0x00000001, 2719 SMIF_ACCELERATOR = 0x00000002, 2720 SMIF_DROPTARGET = 0x00000004, 2721 SMIF_SUBMENU = 0x00000008, 2722 SMIF_CHECKED = 0x00000020, 2723 SMIF_DROPCASCADE = 0x00000040, 2724 SMIF_HIDDEN = 0x00000080, 2725 SMIF_DISABLED = 0x00000100, 2726 SMIF_TRACKPOPUP = 0x00000200, 2727 SMIF_DEMOTED = 0x00000400, 2728 SMIF_ALTSTATE = 0x00000800, 2729 SMIF_DRAGNDROP = 0x00001000, 2730 SMIF_NEW = 0x00002000, 2731}; 2732 2733 2734cpp_quote("#define SMC_INITMENU 0x00000001") 2735cpp_quote("#define SMC_CREATE 0x00000002") 2736cpp_quote("#define SMC_EXITMENU 0x00000003") 2737cpp_quote("#define SMC_GETINFO 0x00000005") 2738cpp_quote("#define SMC_GETSFINFO 0x00000006") 2739cpp_quote("#define SMC_GETOBJECT 0x00000007") 2740cpp_quote("#define SMC_GETSFOBJECT 0x00000008") 2741cpp_quote("#define SMC_SFEXEC 0x00000009") 2742cpp_quote("#define SMC_SFSELECTITEM 0x0000000A") 2743cpp_quote("#define SMC_REFRESH 0x00000010") 2744cpp_quote("#define SMC_DEMOTE 0x00000011") 2745cpp_quote("#define SMC_PROMOTE 0x00000012") 2746cpp_quote("#define SMC_DEFAULTICON 0x00000016") 2747cpp_quote("#define SMC_NEWITEM 0x00000017") 2748cpp_quote("#define SMC_CHEVRONEXPAND 0x00000019") 2749cpp_quote("#define SMC_DISPLAYCHEVRONTIP 0x0000002A") 2750cpp_quote("#define SMC_SETSFOBJECT 0x0000002D") 2751cpp_quote("#define SMC_SHCHANGENOTIFY 0x0000002E") 2752cpp_quote("#define SMC_CHEVRONGETTIP 0x0000002F") 2753cpp_quote("#define SMC_SFDDRESTRICTED 0x00000030") 2754 2755[ 2756 uuid(4CA300A1-9B8D-11d1-8B22-00C04FD918D0), 2757 object, 2758 pointer_default(unique), 2759 local 2760] 2761interface IShellMenuCallback : IUnknown 2762{ 2763 HRESULT CallbackSM( 2764 [in, out] LPSMDATA psmd, 2765 [in] UINT uMsg, 2766 [in] WPARAM wParam, 2767 [in] LPARAM lParam); 2768} 2769 2770 2771/***************************************************************************** 2772 * IShellMenu interface 2773 */ 2774 2775cpp_quote("#define SMINIT_DEFAULT 0x00000000") 2776cpp_quote("#define SMINIT_RESTRICT_DRAGDROP 0x00000002") 2777cpp_quote("#define SMINIT_TOPLEVEL 0x00000004") 2778cpp_quote("#define SMINIT_CACHED 0x00000010") 2779cpp_quote("#define SMINIT_VERTICAL 0x10000000") 2780cpp_quote("#define SMINIT_HORIZONTAL 0x20000000") 2781cpp_quote("") 2782cpp_quote("#define ANCESTORDEFAULT (UINT)-1") 2783cpp_quote("") 2784cpp_quote("#define SMSET_TOP 0x10000000") 2785cpp_quote("#define SMSET_BOTTOM 0x20000000") 2786cpp_quote("#define SMSET_DONTOWN 0x00000001") 2787cpp_quote("") 2788cpp_quote("#define SMINV_REFRESH 0x00000001") 2789cpp_quote("#define SMINV_ID 0x00000008") 2790 2791[ 2792 uuid(EE1F7637-E138-11d1-8379-00C04FD918D0), 2793 object, 2794 pointer_default(unique), 2795 local 2796] 2797interface IShellMenu : IUnknown 2798{ 2799 HRESULT Initialize( 2800 [in] IShellMenuCallback *psmc, 2801 [in] UINT uId, 2802 [in] UINT uIdAncestor, 2803 [in] DWORD dwFlags); 2804 2805 HRESULT GetMenuInfo( 2806 [out] IShellMenuCallback **ppsmc, 2807 [out] UINT *puId, 2808 [out] UINT *puIdAncestor, 2809 [out] DWORD *pdwFlags); 2810 2811 HRESULT SetShellFolder( 2812 [in] IShellFolder *psf, 2813 [in] PCIDLIST_ABSOLUTE pidlFolder, 2814 [in] HKEY hKey, 2815 [in] DWORD dwFlags); 2816 2817 HRESULT GetShellFolder( 2818 [out] DWORD *pdwFlags, 2819 [out] PIDLIST_ABSOLUTE *ppidl, 2820 [in] REFIID riid, 2821 [out] void **ppv); 2822 2823 HRESULT SetMenu( 2824 [in] HMENU hmenu, 2825 [in] HWND hwnd, 2826 [in] DWORD dwFlags); 2827 2828 HRESULT GetMenu( 2829 [out] HMENU *phmenu, 2830 [out] HWND *phwnd, 2831 [out] DWORD *pdwFlags); 2832 2833 HRESULT InvalidateItem( 2834 [in] LPSMDATA psmd, 2835 [in] DWORD dwFlags); 2836 2837 HRESULT GetState( 2838 [out] LPSMDATA psmd); 2839 2840 HRESULT SetMenuToolbar( 2841 [in] IUnknown *punk, 2842 [in] DWORD dwFlags); 2843} 2844 2845cpp_quote("#if (_WIN32_IE >= _WIN32_IE_IE60)") 2846 2847/***************************************************************************** 2848 * ITrackShellMenu interface 2849 */ 2850[ 2851 uuid(8278F932-2A3E-11d2-838F-00C04FD918D0), 2852 object, 2853 pointer_default(unique), 2854 local 2855] 2856interface ITrackShellMenu : IShellMenu 2857{ 2858 HRESULT SetObscured( 2859 [in] HWND hwndTB, 2860 [in] IUnknown *punkBand, 2861 DWORD dwSMSetFlags); 2862 2863 HRESULT Popup( 2864 [in] HWND hwnd, 2865 [in] POINTL *ppt, 2866 [in] RECTL *prcExclude, 2867 MP_POPUPFLAGS dwFlags); 2868}; 2869 2870cpp_quote("#endif /* _WIN32_IE_IE60 */") 2871 2872/***************************************************************************** 2873 * IAutoCompleteDropDown interface 2874 */ 2875[ 2876 object, 2877 uuid(3CD141F4-3C6A-11d2-BCAA-00C04FD929DB), 2878 pointer_default(unique) 2879] 2880interface IAutoCompleteDropDown : IUnknown 2881{ 2882cpp_quote("#define ACDD_VISIBLE 0x0001") 2883 2884 HRESULT GetDropDownStatus( 2885 [out] DWORD *pdwFlags, 2886 [out, string] LPWSTR *ppwszString); 2887 2888 HRESULT ResetEnumerator(); 2889} 2890 2891/***************************************************************************** 2892 * IProfferService interface 2893 */ 2894[ 2895 object, 2896 uuid(cb728b20-f786-11ce-92ad-00aa00a74cd0), 2897 pointer_default(unique) 2898] 2899interface IProfferService : IUnknown 2900{ 2901 HRESULT ProfferService( 2902 [in] REFGUID service, 2903 [in] IServiceProvider *pService, 2904 [out] DWORD *pCookie); 2905 2906 HRESULT RevokeService([in] DWORD cookie); 2907} 2908 2909/***************************************************************************** 2910 * IExplorerBrowserEvents interface 2911 */ 2912[ 2913 object, 2914 uuid(361BBDC7-E6EE-4E13-BE58-58E2240C810F) 2915] 2916interface IExplorerBrowserEvents : IUnknown 2917{ 2918 HRESULT OnNavigationPending( 2919 [in] PCIDLIST_ABSOLUTE pidlFolder); 2920 2921 HRESULT OnViewCreated( 2922 [in] IShellView *psv); 2923 2924 HRESULT OnNavigationComplete( 2925 [in] PCIDLIST_ABSOLUTE pidlFolder); 2926 2927 HRESULT OnNavigationFailed( 2928 [in] PCIDLIST_ABSOLUTE pidlFolder); 2929} 2930 2931typedef GUID EXPLORERPANE; 2932typedef EXPLORERPANE *REFEXPLORERPANE; 2933 2934cpp_quote("#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility") 2935 2936/***************************************************************************** 2937 * IExplorerPaneVisibility interface 2938 */ 2939[ 2940 object, 2941 uuid(E07010EC-BC17-44C0-97B0-46C7C95B9EDC) 2942] 2943interface IExplorerPaneVisibility : IUnknown 2944{ 2945 typedef enum tagEXPLORERPANESTATE { 2946 EPS_DONTCARE = 0x0, 2947 EPS_DEFAULT_ON = 0x1, 2948 EPS_DEFAULT_OFF = 0x2, 2949 EPS_STATE_MASK = 0xffff, 2950 EPS_INITIALSTATE = 0x10000, 2951 EPS_FORCE = 0x20000 2952 } EXPLORERPANESTATE; 2953 2954 HRESULT GetPaneState( 2955 [in] REFEXPLORERPANE ep, 2956 [out] EXPLORERPANESTATE *peps); 2957} 2958 2959typedef [v1_enum] enum tagEXPLORER_BROWSER_FILL_FLAGS { 2960 EBF_NONE = 0, 2961 EBF_SELECTFROMDATAOBJECT = 0x100, 2962 EBF_NODROPTARGET = 0x200 2963} EXPLORER_BROWSER_FILL_FLAGS; 2964 2965typedef [v1_enum] enum tagEXPLORER_BROWSER_OPTIONS { 2966 EBO_NONE = 0x00, 2967 EBO_NAVIGATEONCE = 0x01, 2968 EBO_SHOWFRAMES = 0x02, 2969 EBO_ALWAYSNAVIGATE = 0x04, 2970 EBO_NOTRAVELLOG = 0x08, 2971 EBO_NOWRAPPERWINDOW = 0x10, 2972 EBO_HTMLSHAREPOINTVIEW = 0x20, 2973 EBO_NOBORDER = 0x40, 2974 EBO_NOPERSISTVIEWSTATE = 0x80, 2975} EXPLORER_BROWSER_OPTIONS; 2976 2977cpp_quote("#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser") 2978 2979/***************************************************************************** 2980 * IExplorerBrowser interface 2981 */ 2982[ 2983 object, 2984 uuid(DFD3B6B5-C10C-4BE9-85F6-A66969F402F6), 2985 pointer_default(unique) 2986] 2987interface IExplorerBrowser : IUnknown 2988{ 2989 2990 [local] HRESULT Initialize( 2991 [in] HWND hwndParent, 2992 [in] const RECT *prc, 2993 [in, unique] const FOLDERSETTINGS *pfs); 2994 2995 HRESULT Destroy(); 2996 2997 [local] HRESULT SetRect( 2998 [in,out,unique] HDWP *phdwp, 2999 [in] RECT rcBrowser); 3000 3001 HRESULT SetPropertyBag( 3002 [in, string] LPCWSTR pszPropertyBag); 3003 3004 HRESULT SetEmptyText( 3005 [in, string] LPCWSTR pszEmptyText); 3006 3007 HRESULT SetFolderSettings( 3008 [in] const FOLDERSETTINGS *pfs); 3009 3010 HRESULT Advise( 3011 [in] IExplorerBrowserEvents *psbe, 3012 [out] DWORD *pdwCookie); 3013 3014 HRESULT Unadvise( 3015 [in] DWORD dwCookie); 3016 3017 HRESULT SetOptions( 3018 [in] EXPLORER_BROWSER_OPTIONS dwFlag); 3019 3020 HRESULT GetOptions( 3021 [out] EXPLORER_BROWSER_OPTIONS *pdwFlag); 3022 3023 HRESULT BrowseToIDList( 3024 [in] PCUIDLIST_RELATIVE pidl, 3025 [in] UINT uFlags); 3026 3027 HRESULT BrowseToObject( 3028 [in] IUnknown *punk, 3029 [in] UINT uFlags); 3030 3031 HRESULT FillFromObject( 3032 [in] IUnknown *punk, 3033 [in] EXPLORER_BROWSER_FILL_FLAGS dwFlags); 3034 3035 HRESULT RemoveAll(); 3036 3037 HRESULT GetCurrentView( 3038 [in] REFIID riid, 3039 [out, iid_is(riid)] void **ppv); 3040} 3041 3042/***************************************************************************** 3043 * INameSpaceTreeControl interface 3044 */ 3045[ 3046 object, 3047 uuid(028212A3-B627-47E9-8856-C14265554E4F) 3048] 3049interface INameSpaceTreeControl : IUnknown 3050{ 3051 [v1_enum] enum _NSTCSTYLE { 3052 NSTCS_HASEXPANDOS = 0x00000001, 3053 NSTCS_HASLINES = 0x00000002, 3054 NSTCS_SINGLECLICKEXPAND = 0x00000004, 3055 NSTCS_FULLROWSELECT = 0x00000008, 3056 NSTCS_SPRINGEXPAND = 0x00000010, 3057 NSTCS_HORIZONTALSCROLL = 0x00000020, 3058 NSTCS_ROOTHASEXPANDO = 0x00000040, 3059 NSTCS_SHOWSELECTIONALWAYS = 0x00000080, 3060 NSTCS_NOINFOTIP = 0x00000200, 3061 NSTCS_EVENHEIGHT = 0x00000400, 3062 NSTCS_NOREPLACEOPEN = 0x00000800, 3063 NSTCS_DISABLEDRAGDROP = 0x00001000, 3064 NSTCS_NOORDERSTREAM = 0x00002000, 3065 NSTCS_RICHTOOLTIP = 0x00004000, 3066 NSTCS_BORDER = 0x00008000, 3067 NSTCS_NOEDITLABELS = 0x00010000, 3068 NSTCS_TABSTOP = 0x00020000, 3069 NSTCS_FAVORITESMODE = 0x00080000, 3070 NSTCS_AUTOHSCROLL = 0x00100000, 3071 NSTCS_FADEINOUTEXPANDOS = 0x00200000, 3072 NSTCS_EMPTYTEXT = 0x00400000, 3073 NSTCS_CHECKBOXES = 0x00800000, 3074 NSTCS_PARTIALCHECKBOXES = 0x01000000, 3075 NSTCS_EXCLUSIONCHECKBOXES = 0x02000000, 3076 NSTCS_DIMMEDCHECKBOXES = 0x04000000, 3077 NSTCS_NOINDENTCHECKS = 0x08000000, 3078 NSTCS_ALLOWJUNCTIONS = 0x10000000, 3079 NSTCS_SHOWTABSBUTTON = 0x20000000, 3080 NSTCS_SHOWDELETEBUTTON = 0x40000000, 3081 NSTCS_SHOWREFRESHBUTTON = (int)0x80000000 3082 }; 3083 typedef DWORD NSTCSTYLE; 3084 3085 [v1_enum] enum _NSTCROOTSTYLE { 3086 NSTCRS_VISIBLE = 0x0000, 3087 NSTCRS_HIDDEN = 0x0001, 3088 NSTCRS_EXPANDED = 0x0002 3089 }; 3090 typedef DWORD NSTCROOTSTYLE; 3091 3092 [v1_enum] enum _NSTCITEMSTATE { 3093 NSTCIS_NONE = 0x0000, 3094 NSTCIS_SELECTED = 0x0001, 3095 NSTCIS_EXPANDED = 0x0002, 3096 NSTCIS_BOLD = 0x0004, 3097 NSTCIS_DISABLED = 0x0008, 3098 NSTCIS_SELECTEDNOEXPAND = 0x0010 3099 }; 3100 typedef DWORD NSTCITEMSTATE; 3101 3102 typedef [v1_enum] enum NSTCGNI { 3103 NSTCGNI_NEXT = 0, 3104 NSTCGNI_NEXTVISIBLE = 1, 3105 NSTCGNI_PREV = 2, 3106 NSTCGNI_PREVVISIBLE = 3, 3107 NSTCGNI_PARENT = 4, 3108 NSTCGNI_CHILD = 5, 3109 NSTCGNI_FIRSTVISIBLE = 6, 3110 NSTCGNI_LASTVISIBLE = 7 3111 } NSTCGNI; 3112 3113 HRESULT Initialize( 3114 [in] HWND hwndParent, 3115 [in, unique] RECT *prc, 3116 [in] NSTCSTYLE nstcsFlags); 3117 3118 HRESULT TreeAdvise( 3119 [in] IUnknown *punk, 3120 [out] DWORD *pdwCookie); 3121 3122 HRESULT TreeUnadvise( 3123 [in] DWORD dwCookie); 3124 3125 HRESULT AppendRoot( 3126 [in] IShellItem *psiRoot, 3127 [in] SHCONTF grfEnumFlags, 3128 [in] NSTCROOTSTYLE grfRootStyle, 3129 [in, unique] IShellItemFilter *pif); 3130 3131 HRESULT InsertRoot( 3132 [in] int iIndex, 3133 [in] IShellItem *psiRoot, 3134 [in] SHCONTF grfEnumFlags, 3135 [in] NSTCROOTSTYLE grfRootStyle, 3136 [in, unique] IShellItemFilter *pif); 3137 3138 HRESULT RemoveRoot( 3139 [in] IShellItem *psiRoot); 3140 3141 HRESULT RemoveAllRoots(); 3142 3143 HRESULT GetRootItems( 3144 [out] IShellItemArray **ppsiaRootItems); 3145 3146 HRESULT SetItemState( 3147 [in] IShellItem *psi, 3148 [in] NSTCITEMSTATE nstcisMask, 3149 [in] NSTCITEMSTATE nstcisFlags); 3150 3151 HRESULT GetItemState( 3152 [in] IShellItem *psi, 3153 [in] NSTCITEMSTATE nstcismask, 3154 [out] NSTCITEMSTATE *pnstcisFlags); 3155 3156 HRESULT GetSelectedItems( 3157 [out] IShellItemArray **psiaItems); 3158 3159 HRESULT GetItemCustomState( 3160 [in] IShellItem *psi, 3161 [out] int *piStateNumber); 3162 3163 HRESULT SetItemCustomState( 3164 [in] IShellItem *psi, 3165 [in] int iStateNumber); 3166 3167 HRESULT EnsureItemVisible( 3168 [in] IShellItem *psi); 3169 3170 HRESULT SetTheme( 3171 [in, string] LPCWSTR pszTheme); 3172 3173 HRESULT GetNextItem( 3174 [in, unique] IShellItem *psi, 3175 [in] NSTCGNI nstcgi, 3176 [out] IShellItem **ppsiNext); 3177 3178 HRESULT HitTest( 3179 [in] POINT *ppt, 3180 [out] IShellItem **ppsiOut); 3181 3182 HRESULT GetItemRect( 3183 [in] IShellItem *psi, 3184 [out] RECT *prect); 3185 3186 HRESULT CollapseAll(); 3187} 3188 3189/***************************************************************************** 3190 * INameSpaceTreeControl2 interface 3191 */ 3192[ 3193 object, 3194 uuid(7CC7AED8-290E-49BC-8945-C1401CC9306C) 3195] 3196interface INameSpaceTreeControl2 : INameSpaceTreeControl 3197{ 3198 typedef [v1_enum] enum NSTCSTYLE2 { 3199 NSTCS2_DEFAULT = 0x00, 3200 NSTCS2_INTERRUPTNOTIFICATIONS = 0x01, 3201 NSTCS2_SHOWNULLSPACEMENU = 0x02, 3202 NSTCS2_DISPLAYPADDING = 0x04, 3203 NSTCS2_DISPLAYPINNEDONLY = 0x08, 3204 NTSCS2_NOSINGLETONAUTOEXPAND = 0x10, /* The apparent typo here is */ 3205 NTSCS2_NEVERINSERTNONENUMERATED = 0x20 /* present also in the Win SDK */ 3206 } NSTCSTYLE2; 3207 cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)") 3208 3209 HRESULT SetControlStyle( 3210 [in] NSTCSTYLE nstcsMask, 3211 [in] NSTCSTYLE nstcsStyle); 3212 3213 HRESULT GetControlStyle( 3214 [in] NSTCSTYLE nstcsMask, 3215 [out] NSTCSTYLE *pnstcsStyle); 3216 3217 HRESULT SetControlStyle2( 3218 [in] NSTCSTYLE2 nstcsMask, 3219 [in] NSTCSTYLE2 nstcsStyle); 3220 3221 HRESULT GetControlStyle2( 3222 [in] NSTCSTYLE2 nstcsMask, 3223 [out] NSTCSTYLE2 *pnstcsStyle); 3224} 3225 3226/***************************************************************************** 3227 * INameSpaceTreeControlEvents interface 3228 */ 3229 3230[ 3231 object, 3232 uuid(93D77985-B3D8-4484-8318-672CDDA002CE), 3233 local 3234] 3235interface INameSpaceTreeControlEvents : IUnknown 3236{ 3237 [v1_enum] enum _NSTCEHITTEST { 3238 NSTCEHT_NOWHERE = 0x0001, 3239 NSTCEHT_ONITEMICON = 0x0002, 3240 NSTCEHT_ONITEMLABEL = 0x0004, 3241 NSTCEHT_ONITEMIDENT = 0x0008, 3242 NSTCEHT_ONITEMBUTTON = 0x0010, 3243 NSTCEHT_ONITEMRIGHT = 0x0020, 3244 NSTCEHT_ONITEMSTATEICON = 0x0040, 3245 NSTCEHT_ONITEM = 0x0046, 3246 NSTCEHT_ONITEMTABBUTTON = 0x1000 3247 }; 3248 typedef DWORD NSTCEHITTEST; 3249 3250 [v1_enum] enum _NSTCECLICKTYPE { 3251 NSTCECT_LBUTTON = 0x1, 3252 NSTCECT_MBUTTON = 0x2, 3253 NSTCECT_RBUTTON = 0x3, 3254 NSTCECT_BUTTON = 0x3, 3255 NSTCECT_DBLCLICK = 0x4 3256 }; 3257 typedef DWORD NSTCECLICKTYPE; 3258 3259 HRESULT OnItemClick( 3260 [in] IShellItem *psi, 3261 [in] NSTCEHITTEST nstceHitTest, 3262 [in] NSTCECLICKTYPE nstceClickType); 3263 3264 HRESULT OnPropertyItemCommit( 3265 [in] IShellItem *psi); 3266 3267 HRESULT OnItemStateChanging( 3268 [in] IShellItem *psi, 3269 [in] NSTCITEMSTATE nstcisMask, 3270 [in] NSTCITEMSTATE nstcisState); 3271 3272 HRESULT OnItemStateChanged( 3273 [in] IShellItem *psi, 3274 [in] NSTCITEMSTATE nstcisMask, 3275 [in] NSTCITEMSTATE nstcisState); 3276 3277 HRESULT OnSelectionChanged( 3278 [in] IShellItemArray *psiaSelection); 3279 3280 HRESULT OnKeyboardInput( 3281 [in] UINT uMsg, 3282 [in] WPARAM wParam, 3283 [in] LPARAM lParam); 3284 3285 HRESULT OnBeforeExpand( 3286 [in] IShellItem *psi); 3287 3288 HRESULT OnAfterExpand( 3289 [in] IShellItem *psi); 3290 3291 HRESULT OnBeginLabelEdit( 3292 [in] IShellItem *psi); 3293 3294 HRESULT OnEndLabelEdit( 3295 [in] IShellItem *psi); 3296 3297 HRESULT OnGetToolTip( 3298 [in] IShellItem *psi, 3299 [out, string, size_is(cchTip)] LPWSTR pszTip, 3300 [in] int cchTip); 3301 3302 HRESULT OnBeforeItemDelete( 3303 [in] IShellItem *psi); 3304 3305 HRESULT OnItemAdded( 3306 [in] IShellItem *psi, 3307 [in] BOOL fIsRoot); 3308 3309 HRESULT OnItemDeleted( 3310 [in] IShellItem *psi, 3311 [in] BOOL fIsRoot); 3312 3313 HRESULT OnBeforeContextMenu( 3314 [in, unique] IShellItem *psi, 3315 [in] REFIID riid, 3316 [out, iid_is(riid)] void **ppv); 3317 3318 HRESULT OnAfterContextMenu( 3319 [in] IShellItem *psi, 3320 [in] IContextMenu *pcmIn, 3321 [in] REFIID riid, 3322 [out, iid_is(riid)] void **ppv); 3323 3324 HRESULT OnBeforeStateImageChange( 3325 [in] IShellItem *psi); 3326 3327 HRESULT OnGetDefaultIconIndex( 3328 [in] IShellItem *psi, 3329 [out] int *piDefaultIcon, 3330 [out] int *piOpenIcon); 3331} 3332 3333/***************************************************************************** 3334 * INameSpaceTreeControlCustomDraw interface 3335 */ 3336[ 3337 object, 3338 uuid(2D3BA758-33EE-42D5-BB7B-5F3431D86C78), 3339 local 3340] 3341 3342interface INameSpaceTreeControlCustomDraw : IUnknown 3343{ 3344 typedef struct NSTCCUSTOMDRAW 3345 { 3346 IShellItem *psi; 3347 UINT uItemState; 3348 NSTCITEMSTATE nstcis; 3349 LPCWSTR pszText; 3350 int iImage; 3351 HIMAGELIST himl; 3352 int iLevel; 3353 int iIndent; 3354 } NSTCCUSTOMDRAW; 3355 3356 HRESULT PrePaint( 3357 [in] HDC hdc, 3358 [in] RECT *prc, 3359 [out] LRESULT *plres); 3360 3361 HRESULT PostPaint( 3362 [in] HDC hdc, 3363 [in] RECT *prc); 3364 3365 HRESULT ItemPrePaint( 3366 [in] HDC hdc, 3367 [in] RECT *prc, 3368 [in, out] COLORREF *pclrText, 3369 [in, out] COLORREF *pclrTextBk, 3370 [out] LRESULT *plres); 3371 3372 HRESULT ItemPostPaint( 3373 [in] HDC hdc, 3374 [in] RECT *prc, 3375 [in] NSTCCUSTOMDRAW *pnstccdItem); 3376} 3377 3378/***************************************************************************** 3379 * INameSpaceTreeControlDropHandler interface 3380 */ 3381[ 3382 object, 3383 uuid(F9C665D6-C2F2-4C19-BF33-8322D7352F51), 3384 local 3385] 3386interface INameSpaceTreeControlDropHandler : IUnknown 3387{ 3388 HRESULT OnDragEnter( 3389 [in, unique] IShellItem *psiOver, 3390 [in] IShellItemArray *psiaData, 3391 [in] BOOL fOutsideSource, 3392 [in] DWORD grfKeyState, 3393 [in, out] DWORD *pdwEffect); 3394 3395 HRESULT OnDragOver( 3396 [in, unique] IShellItem *psiOver, 3397 [in] IShellItemArray *psiaData, 3398 [in] DWORD grfKeyState, 3399 [in, out] DWORD *pdwEffect); 3400 3401 HRESULT OnDragPosition( 3402 [in, unique] IShellItem *psiOver, 3403 [in] IShellItemArray *psiaData, 3404 [in] int iNewPosition, 3405 [in] int iOldPosition); 3406 3407 HRESULT OnDrop( 3408 [in, unique] IShellItem *psiOver, 3409 [in] IShellItemArray *psiaData, 3410 [in] int iPosition, 3411 [in] DWORD grfKeyState, 3412 [in, out] DWORD *pdwEffect); 3413 3414 HRESULT OnDropPosition( 3415 [in, unique] IShellItem *psiOver, 3416 [in] IShellItemArray *psiaData, 3417 [in] int iNewPosition, 3418 [in] int iOldPosition); 3419 3420 HRESULT OnDragLeave( 3421 [in, unique] IShellItem *psiOver); 3422} 3423cpp_quote("#define NSTCDHPOS_ONTOP -1") 3424 3425interface IFileDialog; 3426 3427typedef [v1_enum] enum FDE_OVERWRITE_RESPONSE 3428{ 3429 FDEOR_DEFAULT = 0, 3430 FDEOR_ACCEPT = 1, 3431 FDEOR_REFUSE = 2 3432} FDE_OVERWRITE_RESPONSE; 3433 3434typedef [v1_enum] enum FDE_SHAREVIOLATION_RESPONSE 3435{ 3436 FDESVR_DEFAULT = 0, 3437 FDESVR_ACCEPT = 1, 3438 FDESVR_REFUSE = 2 3439} FDE_SHAREVIOLATION_RESPONSE; 3440 3441/***************************************************************************** 3442 * IFileDialogEvents interface 3443 */ 3444[ 3445 object, 3446 uuid(973510DB-7D7F-452B-8975-74A85828D354), 3447 pointer_default(unique) 3448] 3449interface IFileDialogEvents : IUnknown 3450{ 3451 HRESULT OnFileOk( 3452 [in] IFileDialog *pfd); 3453 3454 HRESULT OnFolderChanging( 3455 [in] IFileDialog *pfd, 3456 [in] IShellItem *psiFolder); 3457 3458 HRESULT OnFolderChange( 3459 [in] IFileDialog *pfd); 3460 3461 HRESULT OnSelectionChange( 3462 [in] IFileDialog *pfd); 3463 3464 HRESULT OnShareViolation( 3465 [in] IFileDialog *pfd, 3466 [in] IShellItem *psi, 3467 [out] FDE_SHAREVIOLATION_RESPONSE *pResponse); 3468 3469 HRESULT OnTypeChange( 3470 [in] IFileDialog *pfd); 3471 3472 HRESULT OnOverwrite( 3473 [in] IFileDialog *pfd, 3474 [in] IShellItem *psi, 3475 [out] FDE_OVERWRITE_RESPONSE *pResponse); 3476} 3477 3478/***************************************************************************** 3479 * IModalWindow interface 3480 */ 3481[ 3482 object, 3483 uuid(B4DB1657-70D7-485E-8E3E-6FCB5A5C1802), 3484 pointer_default(unique) 3485] 3486interface IModalWindow : IUnknown 3487{ 3488 [local] 3489 HRESULT Show( 3490 [in, unique, annotation("__in_opt")] HWND hwndOwner); 3491 3492 [call_as(Show)] 3493 HRESULT RemoteShow( 3494 [in, unique] HWND hwndOwner); 3495} 3496 3497typedef [v1_enum] enum FDAP 3498{ 3499 FDAP_BOTTOM = 0, 3500 FDAP_TOP = 1 3501} FDAP; 3502 3503/***************************************************************************** 3504 * IFileDialog interface 3505 */ 3506[ 3507 object, 3508 uuid(42F85136-DB7E-439C-85F1-E4075D135FC8), 3509 pointer_default(unique) 3510] 3511interface IFileDialog : IModalWindow 3512{ 3513 [v1_enum] enum _FILEOPENDIALOGOPTIONS 3514 { 3515 FOS_OVERWRITEPROMPT = 0x00000002, 3516 FOS_STRICTFILETYPES = 0x00000004, 3517 FOS_NOCHANGEDIR = 0x00000008, 3518 FOS_PICKFOLDERS = 0x00000020, 3519 FOS_FORCEFILESYSTEM = 0x00000040, 3520 FOS_ALLNONSTORAGEITEMS = 0x00000080, 3521 FOS_NOVALIDATE = 0x00000100, 3522 FOS_ALLOWMULTISELECT = 0x00000200, 3523 FOS_PATHMUSTEXIST = 0x00000800, 3524 FOS_FILEMUSTEXIST = 0x00001000, 3525 FOS_CREATEPROMPT = 0x00002000, 3526 FOS_SHAREAWARE = 0x00004000, 3527 FOS_NOREADONLYRETURN = 0x00008000, 3528 FOS_NOTESTFILECREATE = 0x00010000, 3529 FOS_HIDEMRUPLACES = 0x00020000, 3530 FOS_HIDEPINNEDPLACES = 0x00040000, 3531 FOS_NODEREFERENCELINKS = 0x00100000, 3532 FOS_DONTADDTORECENT = 0x02000000, 3533 FOS_FORCESHOWHIDDEN = 0x10000000, 3534 FOS_DEFAULTNOMINIMODE = 0x20000000, 3535 FOS_FORCEPREVIEWPANEON = 0x40000000 3536 }; 3537 typedef DWORD FILEOPENDIALOGOPTIONS; 3538 3539 HRESULT SetFileTypes( 3540 [in] UINT cFileTypes, 3541 [in, size_is(cFileTypes)] const COMDLG_FILTERSPEC *rgFilterSpec); 3542 3543 HRESULT SetFileTypeIndex( 3544 [in] UINT iFileType); 3545 3546 HRESULT GetFileTypeIndex( 3547 [out] UINT *piFileType); 3548 3549 HRESULT Advise( 3550 [in] IFileDialogEvents *pfde, 3551 [out] DWORD *pdwCookie); 3552 3553 HRESULT Unadvise( 3554 [in] DWORD dwCookie); 3555 3556 HRESULT SetOptions( 3557 [in] FILEOPENDIALOGOPTIONS fos); 3558 3559 HRESULT GetOptions( 3560 [in] FILEOPENDIALOGOPTIONS *pfos); 3561 3562 HRESULT SetDefaultFolder( 3563 [in] IShellItem *psi); 3564 3565 HRESULT SetFolder( 3566 [in] IShellItem *psi); 3567 3568 HRESULT GetFolder( 3569 [out] IShellItem **ppsi); 3570 3571 HRESULT GetCurrentSelection( 3572 [out] IShellItem **ppsi); 3573 3574 HRESULT SetFileName( 3575 [in, string] LPCWSTR pszName); 3576 3577 HRESULT GetFileName( 3578 [out, string] LPWSTR *pszName); 3579 3580 HRESULT SetTitle( 3581 [in, string] LPCWSTR pszTitle); 3582 3583 HRESULT SetOkButtonLabel( 3584 [in, string] LPCWSTR pszText); 3585 3586 HRESULT SetFileNameLabel( 3587 [in, string] LPCWSTR pszLabel); 3588 3589 HRESULT GetResult( 3590 [out] IShellItem **ppsi); 3591 3592 HRESULT AddPlace( 3593 [in] IShellItem *psi, 3594 [in] FDAP fdap); 3595 3596 HRESULT SetDefaultExtension( 3597 [in, string] LPCWSTR pszDefaultExtension); 3598 3599 HRESULT Close( 3600 [in] HRESULT hr); 3601 3602 HRESULT SetClientGuid( 3603 [in] REFGUID guid); 3604 3605 HRESULT ClearClientData(); 3606 3607 HRESULT SetFilter( 3608 [in] IShellItemFilter *pFilter); 3609} 3610 3611/***************************************************************************** 3612 * IFileDialog2 interface 3613 */ 3614[ 3615 object, 3616 uuid(61744FC7-85B5-4791-A9B0-272276309B13), 3617 pointer_default(unique) 3618] 3619interface IFileDialog2 : IFileDialog 3620{ 3621 HRESULT SetCancelButtonLabel( 3622 [in] LPCWSTR pszLabel); 3623 3624 HRESULT SetNavigationRoot( 3625 [in] IShellItem *psi); 3626} 3627 3628/***************************************************************************** 3629 * IFileOperationProgressSink interface 3630 */ 3631[ 3632 object, 3633 uuid(04B0F1A7-9490-44BC-96E1-4296A31252E2), 3634 pointer_default(unique) 3635] 3636interface IFileOperationProgressSink : IUnknown 3637{ 3638 HRESULT StartOperations(); 3639 3640 HRESULT FinishOperations( 3641 [in] HRESULT hrResult); 3642 3643 HRESULT PreRenameItem( 3644 [in] DWORD dwFlags, 3645 [in] IShellItem *psiItem, 3646 [in, unique, string] LPCWSTR pszNewName); 3647 3648 HRESULT PostRenameItem( 3649 [in] DWORD dwFlags, 3650 [in] IShellItem *psiItem, 3651 [in, string] LPCWSTR pszNewName, 3652 [in] HRESULT hrRename, 3653 [in] IShellItem *psiNewlyCreated); 3654 3655 HRESULT PreMoveItem( 3656 [in] DWORD dwFlags, 3657 [in] IShellItem *psiItem, 3658 [in] IShellItem *psiDestinationFolder, 3659 [in, unique, string] LPCWSTR pszNewName); 3660 3661 HRESULT PostMoveItem( 3662 [in] DWORD dwFlags, 3663 [in] IShellItem *psiItem, 3664 [in] IShellItem *psiDestinationFolder, 3665 [in, unique, string] LPCWSTR pszNewName, 3666 [in] HRESULT hrMove, 3667 [in] IShellItem *psiNewlyCreated); 3668 3669 HRESULT PreCopyItem( 3670 [in] DWORD dwFlags, 3671 [in] IShellItem *psiItem, 3672 [in] IShellItem *psiDestinationFolder, 3673 [in, unique, string] LPCWSTR pszNewName); 3674 3675 HRESULT PostCopyItem( 3676 [in] DWORD dwFlags, 3677 [in] IShellItem *psiItem, 3678 [in] IShellItem *psiDestinationFolder, 3679 [in, unique, string] LPCWSTR pszNewName, 3680 [in] HRESULT hrCopy, 3681 [in] IShellItem *psiNewlyCreated); 3682 3683 HRESULT PreDeleteItem( 3684 [in] DWORD dwFlags, 3685 [in] IShellItem *psiItem); 3686 3687 HRESULT PostDeleteItem( 3688 [in] DWORD dwFlags, 3689 [in] IShellItem *psiItem, 3690 [in] HRESULT hrDelete, 3691 [in] IShellItem *psiNewlyCreated); 3692 3693 HRESULT PreNewItem( 3694 [in] DWORD dwFlags, 3695 [in] IShellItem *psiDestinationFolder, 3696 [in, unique, string] LPCWSTR pszNewName); 3697 3698 HRESULT PostNewItem( 3699 [in] DWORD dwFlags, 3700 [in] IShellItem *psiDestinationFolder, 3701 [in, unique, string] LPCWSTR pszNewName, 3702 [in, unique, string] LPCWSTR pszTemplateName, 3703 [in] DWORD dwFileAttributes, 3704 [in] HRESULT hrNew, 3705 [in] IShellItem *psiNewItem); 3706 3707 HRESULT UpdateProgress( 3708 [in] UINT iWorkTotal, 3709 [in] UINT iWorkSoFar); 3710 3711 HRESULT ResetTimer(); 3712 3713 HRESULT PauseTimer(); 3714 3715 HRESULT ResumeTimer(); 3716} 3717 3718/***************************************************************************** 3719 * IFileSaveDialog interface 3720 */ 3721[ 3722 object, 3723 uuid(84BCCD23-5FDE-4CDB-AEA4-AF64B83D78AB), 3724 pointer_default(unique) 3725] 3726interface IFileSaveDialog : IFileDialog 3727{ 3728 HRESULT SetSaveAsItem( 3729 [in] IShellItem *psi); 3730 3731 HRESULT SetProperties( 3732 [in] IPropertyStore *pStore); 3733 3734 HRESULT SetCollectedProperties( 3735 [in] IPropertyDescriptionList *pList, 3736 [in] BOOL fAppendDefault); 3737 3738 HRESULT GetProperties( 3739 [in] IPropertyStore **ppStore); 3740 3741 HRESULT ApplyProperties( 3742 [in] IShellItem *psi, 3743 [in] IPropertyStore *pStore, 3744 [in, unique] HWND hwnd, 3745 [in, unique] IFileOperationProgressSink *pSink); 3746} 3747 3748 3749/***************************************************************************** 3750 * IFileOpenDialog interface 3751 */ 3752[ 3753 object, 3754 uuid(D57C7288-D4AD-4768-BE02-9D969532D960), 3755 pointer_default(unique) 3756] 3757interface IFileOpenDialog : IFileDialog 3758{ 3759 HRESULT GetResults( 3760 [out] IShellItemArray **ppenum); 3761 3762 HRESULT GetSelectedItems( 3763 [out] IShellItemArray **ppsai); 3764} 3765 3766typedef [v1_enum] enum CDCONTROLSTATEF 3767{ 3768 CDCS_INACTIVE = 0x0, 3769 CDCS_ENABLED = 0x1, 3770 CDCS_VISIBLE = 0x2, 3771 CDCS_ENABLEDVISIBLE = 0x3 3772} CDCONTROLSTATEF; 3773cpp_quote("DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)") 3774/***************************************************************************** 3775 * IFileDialogCustomize interface 3776 */ 3777[ 3778 object, 3779 uuid(E6FDD21A-163F-4975-9C8C-A69F1BA37034), 3780 pointer_default(unique) 3781] 3782interface IFileDialogCustomize : IUnknown 3783{ 3784 HRESULT EnableOpenDropDown( 3785 [in] DWORD dwIDCtl); 3786 3787 HRESULT AddMenu( 3788 [in] DWORD dwIDCtl, 3789 [in, string] LPCWSTR pszLabel); 3790 3791 HRESULT AddPushButton( 3792 [in] DWORD dwIDCtl, 3793 [in, string] LPCWSTR pszLabel); 3794 3795 HRESULT AddComboBox( 3796 [in] DWORD dwIDCtl); 3797 3798 HRESULT AddRadioButtonList( 3799 [in] DWORD dwIDCtl); 3800 3801 HRESULT AddCheckButton( 3802 [in] DWORD dwIDCtl, 3803 [in, string] LPCWSTR pszLabel, 3804 [in] BOOL bChecked); 3805 3806 HRESULT AddEditBox( 3807 [in] DWORD dwIDCtl, 3808 [in, string] LPCWSTR pszText); 3809 3810 HRESULT AddSeparator( 3811 [in] DWORD dwIDCtl); 3812 3813 HRESULT AddText( 3814 [in] DWORD dwIDCtl, 3815 [in, string] LPCWSTR pszText); 3816 3817 HRESULT SetControlLabel( 3818 [in] DWORD dwIDCtl, 3819 [in, string] LPCWSTR pszLabel); 3820 3821 HRESULT GetControlState( 3822 [in] DWORD dwIDCtl, 3823 [out] CDCONTROLSTATEF *pdwState); 3824 3825 HRESULT SetControlState( 3826 [in] DWORD dwIDCtl, 3827 [in] CDCONTROLSTATEF dwState); 3828 3829 HRESULT GetEditBoxText( 3830 [in] DWORD dwIDCtl, 3831 [out, string] WCHAR **ppszText); 3832 3833 HRESULT SetEditBoxText( 3834 [in] DWORD dwIDCtl, 3835 [in, string] LPCWSTR pszText); 3836 3837 HRESULT GetCheckButtonState( 3838 [in] DWORD dwIDCtl, 3839 [out] BOOL *pbChecked); 3840 3841 HRESULT SetCheckButtonState( 3842 [in] DWORD dwIDCtl, 3843 [in] BOOL bChecked); 3844 3845 HRESULT AddControlItem( 3846 [in] DWORD dwIDCtl, 3847 [in] DWORD dwIDItem, 3848 [in] LPCWSTR pszLabel); 3849 3850 HRESULT RemoveControlItem( 3851 [in] DWORD dwIDCtl, 3852 [in] DWORD dwIDItem); 3853 3854 HRESULT RemoveAllControlItems( 3855 [in] DWORD dwIDCtl); 3856 3857 HRESULT GetControlItemState( 3858 [in] DWORD dwIDCtl, 3859 [in] DWORD dwIDItem, 3860 [out] CDCONTROLSTATEF *pdwState); 3861 3862 HRESULT SetControlItemState( 3863 [in] DWORD dwIDCtl, 3864 [in] DWORD dwIDItem, 3865 [in] CDCONTROLSTATEF dwState); 3866 3867 HRESULT GetSelectedControlItem( 3868 [in] DWORD dwIDCtl, 3869 [out] DWORD *pdwIDItem); 3870 3871 HRESULT SetSelectedControlItem( 3872 [in] DWORD dwIDCtl, 3873 [in] DWORD dwIDItem); 3874 3875 HRESULT StartVisualGroup( 3876 [in] DWORD dwIDCtl, 3877 [in, string] LPCWSTR pszLabel); 3878 3879 HRESULT EndVisualGroup(); 3880 3881 HRESULT MakeProminent( 3882 [in] DWORD dwIDCtl); 3883 3884 HRESULT SetControlItemText( 3885 [in] DWORD dwIDCtl, 3886 [in] DWORD dwIDItem, 3887 [in, string] LPCWSTR pszLabel); 3888} 3889 3890/***************************************************************************** 3891 * IFileDialogControlEvents interface 3892 */ 3893[ 3894 object, 3895 uuid(36116642-D713-4B97-9B83-7484A9D00433), 3896 pointer_default(unique) 3897] 3898interface IFileDialogControlEvents : IUnknown 3899{ 3900 HRESULT OnItemSelected( 3901 [in] IFileDialogCustomize *pfdc, 3902 [in] DWORD dwIDCtl, 3903 [in] DWORD dwIDItem); 3904 3905 HRESULT OnButtonClicked( 3906 [in] IFileDialogCustomize *pfdc, 3907 [in] DWORD dwIDCtl); 3908 3909 HRESULT OnCheckButtonToggled( 3910 [in] IFileDialogCustomize *pfdc, 3911 [in] BOOL dwIDCtl, 3912 [in] BOOL bChecked); 3913 3914 HRESULT OnControlActivating( 3915 [in] IFileDialogCustomize *pfdc, 3916 [in] DWORD dwIDCtl); 3917} 3918 3919typedef [v1_enum] enum tagKF_CATEGORY 3920{ 3921 KF_CATEGORY_VIRTUAL = 0x00000001, 3922 KF_CATEGORY_FIXED = 0x00000002, 3923 KF_CATEGORY_COMMON = 0x00000003, 3924 KF_CATEGORY_PERUSER = 0x00000004 3925} KF_CATEGORY; 3926 3927typedef [v1_enum] enum tagKF_REDIRECTION_CAPABILITIES 3928{ 3929 KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0x000000ff, 3930 KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x00000001, 3931 KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0x000fff00, 3932 KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x00000100, 3933 KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x00000200, 3934 KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x00000400 3935} KF_REDIRECTION_CAPABILITIES; 3936 3937typedef [v1_enum] enum tagKF_DEFINITION_FLAGS 3938{ 3939 KFDF_LOCAL_REDIRECT_ONLY = 0x00000002, 3940 KFDF_ROAMABLE = 0x00000004, 3941 KFDF_PRECREATE = 0x00000008, 3942 KFDF_STREAM = 0x00000010, 3943 KFDF_PUBLISHEXPANDEDPATH = 0x00000020 3944} KF_DEFINITION_FLAGS; 3945 3946typedef struct tagKNOWNFOLDER_DEFINITION 3947{ 3948 KF_CATEGORY category; 3949 LPWSTR pszName; 3950 LPWSTR pszDescription; 3951 KNOWNFOLDERID fidParent; 3952 LPWSTR pszRelativePath; 3953 LPWSTR pszParsingName; 3954 LPWSTR pszTooltip; 3955 LPWSTR pszLocalizedName; 3956 LPWSTR pszIcon; 3957 LPWSTR pszSecurity; 3958 DWORD dwAttributes; 3959 KF_DEFINITION_FLAGS kfdFlags; 3960 FOLDERTYPEID ftidType; 3961} KNOWNFOLDER_DEFINITION; 3962 3963[ 3964 object, 3965 uuid(3aa7af7e-9b36-420C-a8e3-f77d4674a488), 3966 pointer_default(ref) 3967] 3968interface IKnownFolder : IUnknown 3969{ 3970 HRESULT GetId( 3971 [out] KNOWNFOLDERID *pkfid); 3972 3973 HRESULT GetCategory( 3974 [out] KF_CATEGORY *pCategory); 3975 3976 HRESULT GetShellItem( 3977 [in] DWORD dwFlags, 3978 [in] REFIID riid, 3979 [out, iid_is(riid)] void **ppv); 3980 3981 HRESULT GetPath( 3982 [in] DWORD dwFlags, 3983 [out, string] LPWSTR *ppszPath); 3984 3985 HRESULT SetPath( 3986 [in] DWORD dwFlags, 3987 [in, string] LPCWSTR pszPath); 3988 3989 HRESULT GetIDList( 3990 [in] DWORD dwFlags, 3991 [out] PIDLIST_ABSOLUTE *ppidl); 3992 3993 HRESULT GetFolderType( 3994 [out] FOLDERTYPEID *pftid); 3995 3996 HRESULT GetRedirectionCapabilities( 3997 [out] KF_REDIRECTION_CAPABILITIES *pCapabilities); 3998 3999 HRESULT GetFolderDefinition( 4000 [out] KNOWNFOLDER_DEFINITION *pKFD); 4001} 4002 4003typedef [v1_enum] enum tagKF_REDIRECT_FLAGS 4004{ 4005 KF_REDIRECT_USER_EXCLUSIVE = 0x00000001, 4006 KF_REDIRECT_COPY_SOURCE_DACL = 0x00000002, 4007 KF_REDIRECT_OWNER_USER = 0x00000004, 4008 KF_REDIRECT_SET_OWNER_EXPLICIT = 0x00000008, 4009 KF_REDIRECT_CHECK_ONLY = 0x00000010, 4010 KF_REDIRECT_WITH_UI = 0x00000020, 4011 KF_REDIRECT_UNPIN = 0x00000040, 4012 KF_REDIRECT_PIN = 0x00000080, 4013 KF_REDIRECT_COPY_CONTENTS = 0x00000200, 4014 KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x00000400, 4015 KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x00000800 4016} KF_REDIRECT_FLAGS; 4017 4018[ 4019 object, 4020 uuid(8BE2D872-86AA-4d47-B776-32CCA40C7018), 4021 pointer_default(ref) 4022] 4023interface IKnownFolderManager : IUnknown 4024{ 4025 typedef [v1_enum] enum tagFFFP_MODE 4026 { 4027 FFFP_EXACTMATCH, 4028 FFFP_NEARESTPARENTMATCH 4029 } FFFP_MODE; 4030 4031 HRESULT FolderIdFromCsidl( 4032 [in] int nCsidl, 4033 [out] KNOWNFOLDERID *pfid); 4034 4035 HRESULT FolderIdToCsidl( 4036 [in] REFKNOWNFOLDERID rfid, 4037 [out] int *pnCsidl); 4038 4039 HRESULT GetFolderIds( 4040 [out, size_is(, *pCount)] KNOWNFOLDERID **ppKFId, 4041 [in, out] UINT *pCount); 4042 4043 HRESULT GetFolder( 4044 [in] REFKNOWNFOLDERID rfid, 4045 [out] IKnownFolder **ppkf); 4046 4047 HRESULT GetFolderByName( 4048 [in, string] LPCWSTR pszCanonicalName, 4049 [out] IKnownFolder **ppkf); 4050 4051 HRESULT RegisterFolder( 4052 [in] REFKNOWNFOLDERID rfid, 4053 [in] KNOWNFOLDER_DEFINITION const *pKFD); 4054 4055 HRESULT UnregisterFolder( 4056 [in] REFKNOWNFOLDERID rfid); 4057 4058 HRESULT FindFolderFromPath( 4059 [in, string] LPCWSTR pszPath, 4060 [in] FFFP_MODE mode, 4061 [out] IKnownFolder **ppkf); 4062 4063 HRESULT FindFolderFromIDList( 4064 [in] PCIDLIST_ABSOLUTE pidl, 4065 [out] IKnownFolder **ppkf); 4066 4067 HRESULT Redirect( 4068 [in] REFKNOWNFOLDERID rfid, 4069 [in, unique] HWND hwnd, 4070 [in] KF_REDIRECT_FLAGS flags, 4071 [in, unique, string] LPCWSTR pszTargetPath, 4072 [in] UINT cFolders, 4073 [in, size_is(cFolders), unique] KNOWNFOLDERID const *pExclusion, 4074 [out, string] LPWSTR *ppszError); 4075} 4076 4077/* function for releasing structure returned from IKnownFolder::GetFolderDefinition */ 4078cpp_quote("static inline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD)") 4079cpp_quote("{") 4080cpp_quote(" CoTaskMemFree(pKFD->pszName);") 4081cpp_quote(" CoTaskMemFree(pKFD->pszDescription);") 4082cpp_quote(" CoTaskMemFree(pKFD->pszRelativePath);") 4083cpp_quote(" CoTaskMemFree(pKFD->pszParsingName);") 4084cpp_quote(" CoTaskMemFree(pKFD->pszTooltip);") 4085cpp_quote(" CoTaskMemFree(pKFD->pszLocalizedName);") 4086cpp_quote(" CoTaskMemFree(pKFD->pszIcon);") 4087cpp_quote(" CoTaskMemFree(pKFD->pszSecurity);") 4088cpp_quote("}") 4089 4090typedef [v1_enum] enum ASSOCIATIONLEVEL { 4091 AL_MACHINE, 4092 AL_EFFECTIVE, 4093 AL_USER 4094} ASSOCIATIONLEVEL; 4095 4096typedef [v1_enum] enum ASSOCIATIONTYPE { 4097 AT_FILEEXTENSION, 4098 AT_URLPROTOCOL, 4099 AT_STARTMENUCLIENT, 4100 AT_MIMETYPE 4101} ASSOCIATIONTYPE; 4102 4103[ 4104 object, 4105 uuid(4e530b0a-e611-4c77-a3ac-9031d022281b), 4106 pointer_default(unique) 4107] 4108interface IApplicationAssociationRegistration : IUnknown 4109{ 4110 HRESULT QueryCurrentDefault( 4111 [in, string] LPCWSTR pszQuery, 4112 [in] ASSOCIATIONTYPE atQueryType, 4113 [in] ASSOCIATIONLEVEL alQueryLevel, 4114 [out, string] LPWSTR *ppszAssociation); 4115 4116 HRESULT QueryAppIsDefault( 4117 [in, string] LPCWSTR pszQuery, 4118 [in] ASSOCIATIONTYPE atQueryType, 4119 [in] ASSOCIATIONLEVEL alQueryLevel, 4120 [in, string] LPCWSTR pszAppRegistryName, 4121 [out] BOOL *pfDefault); 4122 4123 HRESULT QueryAppIsDefaultAll( 4124 [in] ASSOCIATIONLEVEL alQueryLevel, 4125 [in, string] LPCWSTR pszAppRegistryName, 4126 [out] BOOL* pfDefault); 4127 4128 HRESULT SetAppAsDefault( 4129 [in, string] LPCWSTR pszAppRegistryName, 4130 [in, string] LPCWSTR pszSet, 4131 [in] ASSOCIATIONTYPE atSetType); 4132 4133 HRESULT SetAppAsDefaultAll( 4134 [in, string] LPCWSTR pszAppRegistryName); 4135 4136 HRESULT ClearUserAssociations(); 4137} 4138 4139[ 4140 uuid(6332debf-87b5-4670-90c0-5e57b408a49e), 4141 object, 4142 pointer_default(unique) 4143] 4144interface ICustomDestinationList : IUnknown 4145{ 4146 typedef [v1_enum] enum KNOWNDESTCATEGORY { 4147 KDC_FREQUENT = 1, 4148 KDC_RECENT 4149 } KNOWNDESTCATEGORY; 4150 4151 HRESULT SetAppID([in, string] LPCWSTR pszAppID); 4152 4153 HRESULT BeginList( 4154 [out] UINT *pcMinSlots, 4155 [in] REFIID riid, 4156 [out, iid_is(riid)] void **ppv); 4157 4158 HRESULT AppendCategory( 4159 [in, string] LPCWSTR pszCategory, 4160 [in] IObjectArray *poa); 4161 4162 HRESULT AppendKnownCategory([in] KNOWNDESTCATEGORY category); 4163 HRESULT AddUserTasks([in] IObjectArray *poa); 4164 HRESULT CommitList(); 4165 4166 HRESULT GetRemovedDestinations( 4167 [in] REFIID riid, 4168 [out, iid_is(riid)] void **ppv); 4169 4170 HRESULT DeleteList([in, unique, string] LPCWSTR pszAppID); 4171 HRESULT AbortList(); 4172} 4173 4174[ 4175 uuid(ddefe873-6997-4e68-be26-39b633adbe12), 4176 object, 4177 pointer_default(unique) 4178] 4179interface IQueryCancelAutoPlay : IUnknown 4180{ 4181 HRESULT AllowAutoPlay([in, string] LPCWSTR path, 4182 [in] DWORD content_type, 4183 [in, string] LPCWSTR label, 4184 [in] DWORD serial_number); 4185} 4186 4187[ 4188 uuid(d594d0d8-8da7-457b-b3b4-ce5dbaac0b88), 4189 pointer_default(unique) 4190] 4191interface ITransferAdviseSink : IUnknown 4192{ 4193 [v1_enum] enum _TRANSFER_ADVISE_STATE 4194 { 4195 TS_NONE = 0, 4196 TS_PERFORMING = 1, 4197 TS_PREPARING = 2, 4198 TS_INDETERMINATE = 4 4199 }; 4200 typedef DWORD TRANSFER_ADVISE_STATE; 4201 4202 HRESULT UpdateProgress([in] ULONGLONG size_current, 4203 [in] ULONGLONG size_total, 4204 [in] INT files_current, 4205 [in] INT files_total, 4206 [in] INT folders_current, 4207 [in] INT folders_total); 4208 HRESULT UpdateTransferState([in] TRANSFER_ADVISE_STATE state); 4209 HRESULT ConfirmOverwrite([in] IShellItem *source, 4210 [in] IShellItem *dest_parent, 4211 [in, string] LPCWSTR name); 4212 HRESULT ConfirmEncryptLoss([in] IShellItem *source); 4213 HRESULT FileFailure([in] IShellItem *item, 4214 [in, unique, string] LPCWSTR itemname, 4215 [in] HRESULT hr, 4216 [in, out, unique, size_is(crename)] LPWSTR rename, 4217 [in] ULONG crename); 4218 HRESULT SubStreamFailure([in] IShellItem *item, 4219 [in, string] LPCWSTR stream, 4220 [in] HRESULT hr); 4221 HRESULT PropertyFailure([in] IShellItem *item, 4222 [in, unique] const PROPERTYKEY *key, 4223 [in] HRESULT hr); 4224} 4225 4226[v1_enum] enum _TRANSFER_SOURCE_FLAGS 4227{ 4228 TSF_NORMAL = 0, 4229 TSF_FAIL_EXIST = 0, 4230 TSF_RENAME_EXIST = 0x1, 4231 TSF_OVERWRITE_EXIST = 0x2, 4232 TSF_ALLOW_DECRYPTION = 0x4, 4233 TSF_NO_SECURITY = 0x8, 4234 TSF_COPY_CREATION_TIME = 0x10, 4235 TSF_COPY_WRITE_TIME = 0x20, 4236 TSF_USE_FULL_ACCESS = 0x40, 4237 TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80, 4238 TSF_COPY_HARD_LINK = 0x100, 4239 TSF_COPY_LOCALIZED_NAME = 0x200, 4240 TSF_MOVE_AS_COPY_DELETE = 0x400, 4241 TSF_SUSPEND_SHELLEVENTS = 0x800 4242}; 4243typedef DWORD TRANSFER_SOURCE_FLAGS; 4244 4245[ 4246 uuid(00adb003-bde9-45c6-8e29-d09f9353e108), 4247 object, 4248 pointer_default(unique) 4249] 4250interface ITransferSource : IUnknown 4251{ 4252 HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie); 4253 HRESULT Unadvise([in] DWORD cookie); 4254 HRESULT SetProperties([in] IPropertyChangeArray *array); 4255 HRESULT OpenItem([in] IShellItem *item, 4256 [in] TRANSFER_SOURCE_FLAGS flags, 4257 [in] REFIID riid, 4258 [out, iid_is(riid)] void **ppv); 4259 HRESULT MoveItem([in] IShellItem *item, 4260 [in] IShellItem *parent_dest, 4261 [in, string] LPCWSTR name_dest, 4262 [in] TRANSFER_SOURCE_FLAGS flags, 4263 [out] IShellItem **newitem); 4264 HRESULT RecycleItem([in] IShellItem *source, 4265 [in] IShellItem *parent_dest, 4266 [in] TRANSFER_SOURCE_FLAGS flags, 4267 [out] IShellItem **new_dest); 4268 HRESULT RemoveItem([in] IShellItem *source, [in] TRANSFER_SOURCE_FLAGS flags); 4269 HRESULT RenameItem([in] IShellItem *source, 4270 [in, string] LPCWSTR newname, 4271 [in] TRANSFER_SOURCE_FLAGS flags, 4272 [out] IShellItem **new_dest); 4273 HRESULT LinkItem([in] IShellItem *source, 4274 [in] IShellItem *parent_dest, 4275 [in, unique, string] LPCWSTR new_name, 4276 [in] TRANSFER_SOURCE_FLAGS flags, 4277 [out] IShellItem **new_dest); 4278 HRESULT ApplyPropertiesToItem([in] IShellItem *source, [out] IShellItem **newitem); 4279 HRESULT GetDefaultDestinationName([in] IShellItem *source, 4280 [in] IShellItem *parent_dest, 4281 [out, string] LPWSTR *dest_name); 4282 HRESULT EnterFolder([in] IShellItem *child_folder); 4283 HRESULT LeaveFolder([in] IShellItem *child_folder); 4284} 4285 4286[ 4287 uuid(48addd32-3ca5-4124-abe3-b5a72531b207), 4288 object, 4289 pointer_default(unique) 4290] 4291interface ITransferDestination : IUnknown 4292{ 4293 HRESULT Advise([in] ITransferAdviseSink *sink, [out] DWORD *cookie); 4294 HRESULT Unadvise([in] DWORD cookie); 4295 HRESULT CreateItem([in, string] LPCWSTR name, 4296 [in] DWORD attr, 4297 [in] ULONGLONG size, 4298 [in] TRANSFER_SOURCE_FLAGS flags, 4299 [in] REFIID riid, 4300 [out, iid_is(riid)] void **ppv, 4301 [in] REFIID resources, 4302 [out, iid_is(riid)] void **presources); 4303} 4304 4305[ 4306 uuid(92218cab-ecaa-4335-8133-807fd234c2ee), 4307 object, 4308 pointer_default(unique) 4309] 4310interface IAssocHandlerInvoker : IUnknown 4311{ 4312 HRESULT SupportsSelection(); 4313 HRESULT Invoke(); 4314} 4315 4316[ 4317 uuid(f04061ac-1659-4a3f-a954-775aa57fc083), 4318 object, 4319 pointer_default(unique) 4320] 4321interface IAssocHandler : IUnknown 4322{ 4323 HRESULT GetName([out, string] LPWSTR *name); 4324 HRESULT GetUIName([out, string] LPWSTR *uiname); 4325 HRESULT GetIconLocation([out, string] LPWSTR *path, 4326 [out] int *index); 4327 HRESULT IsRecommended(); 4328 HRESULT MakeDefault([in, string] LPCWSTR description); 4329 HRESULT Invoke([in] IDataObject *object); 4330 HRESULT CreateInvoker([in] IDataObject *object, 4331 [out] IAssocHandlerInvoker **invoker); 4332} 4333 4334[ 4335 uuid(973810ae-9599-4b88-9e4d-6ee98c9552da), 4336 object, 4337 pointer_default(unique) 4338] 4339interface IEnumAssocHandlers : IUnknown 4340{ 4341 HRESULT Next([in] ULONG count, 4342 [out, size_is(count), length_is(*fetched)] IAssocHandler **handlers, 4343 [out] ULONG *fetched); 4344} 4345 4346typedef enum ASSOC_FILTER 4347{ 4348 ASSOC_FILTER_NONE = 0, 4349 ASSOC_FILTER_RECOMMENDED 4350} ASSOC_FILTER; 4351cpp_quote("HRESULT WINAPI SHAssocEnumHandlers(PCWSTR extra, ASSOC_FILTER filter, IEnumAssocHandlers **handlersenum);") 4352 4353typedef [v1_enum] enum ACTIVATEOPTIONS 4354{ 4355 AO_NONE = 0x00000000, 4356 AO_DESIGNMODE = 0x00000001, 4357 AO_NOERRORUI = 0x00000002, 4358 AO_NOSPLASHSCREEN = 0x00000004 4359} ACTIVATEOPTIONS; 4360 4361[ 4362 uuid(2e941141-7f97-4756-ba1d-9decde894a3d), 4363 object, 4364 pointer_default(unique) 4365] 4366interface IApplicationActivationManager : IUnknown 4367{ 4368 HRESULT ActivateApplication([in] LPCWSTR appusermodelid, 4369 [in, unique] LPCWSTR arguments, 4370 [in] ACTIVATEOPTIONS options, 4371 [out] DWORD *processid); 4372 HRESULT ActivateForFile([in] LPCWSTR appusermodelid, 4373 [in] IShellItemArray *itemarray, 4374 [in, unique] LPCWSTR verb, 4375 [out] DWORD *processid); 4376 HRESULT ActivateForProtocol([in] LPCWSTR appusermodelid, 4377 [in] IShellItemArray *itemarray, 4378 [out] DWORD *processid); 4379} 4380 4381/***************************************************************************** 4382 * ShellObjects typelibrary 4383 */ 4384[ 4385 uuid(50A7E9B1-70EF-11D1-B75A-00A0C90564FE), 4386 lcid(0x0000), 4387 version(1.0) 4388] 4389library ShellObjects 4390{ 4391 [ 4392 uuid(71F96385-DDD6-48D3-A0C1-AE06E8B055FB) 4393 ] 4394 coclass ExplorerBrowser 4395 { 4396 interface IExplorerBrowser; 4397 } 4398 4399 [ 4400 uuid(DC1C5A9C-E88A-4DDE-A5A1-60F82A20AEF7) 4401 ] 4402 coclass FileOpenDialog 4403 { 4404 interface IFileOpenDialog; 4405 } 4406 4407 [ 4408 uuid(C0B4E2F3-BA21-4773-8DBA-335EC946EB8B) 4409 ] 4410 coclass FileSaveDialog 4411 { 4412 interface IFileSaveDialog; 4413 } 4414 4415 [ 4416 uuid(AE054212-3535-4430-83ED-D501AA6680E6) 4417 ] 4418 coclass NamespaceTreeControl 4419 { 4420 interface INameSpaceTreeControl2; 4421 } 4422 4423 [ 4424 uuid(4df0c730-df9d-4ae3-9153-aa6b82e9795a) 4425 ] 4426 coclass KnownFolderManager 4427 { 4428 interface IKnownFolderManager; 4429 } 4430 4431 [ 4432 uuid(591209c7-767b-42b2-9fba-44ee4615f2c7) 4433 ] 4434 coclass ApplicationAssociationRegistration 4435 { 4436 interface IApplicationAssociationRegistration; 4437 } 4438 4439 [ 4440 uuid(00021401-0000-0000-c000-000000000046) 4441 ] 4442 coclass ShellLink 4443 { 4444 interface IShellLinkW; 4445 } 4446 4447 [ 4448 uuid(56fdf344-fd6d-11d0-958a-006097c9a090) 4449 ] 4450 coclass TaskbarList 4451 { 4452 interface ITaskbarList4; 4453 } 4454 4455 [ 4456 uuid(77f10cf0-3db5-4966-b520-b7c54fd35ed6) 4457 ] 4458 coclass DestinationList { 4459 interface ICustomDestinationList; 4460 } 4461 4462 [ 4463 uuid(2d3468c1-36a7-43b6-ac24-d3f02fd9607a) 4464 ] 4465 coclass EnumerableObjectCollection 4466 { 4467 interface IEnumObjects; 4468 } 4469 4470 [ 4471 uuid(331f1768-05a9-4ddd-b86e-dae34ddc998a) 4472 ] 4473 coclass QueryCancelAutoPlay 4474 { 4475 interface IQueryCancelAutoPlay; 4476 } 4477 4478 [ 4479 uuid(9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917) 4480 ] 4481 coclass ShellItem { 4482 interface IShellItem2; 4483 } 4484 4485 [ 4486 uuid(45ba127d-10a8-46ea-8ab7-56ea9078943c) 4487 ] 4488 coclass ApplicationActivationManager 4489 { 4490 interface IApplicationActivationManager; 4491 } 4492 4493#ifdef __REACTOS__ 4494 [ 4495 uuid(0010890e-8789-413c-adbc-48f5b511b3af) 4496 ] 4497 coclass UserNotification 4498 { 4499 interface IUserNotification; 4500 } 4501#endif // __REACTOS__ 4502 4503} 4504 4505enum _OPPROGDLGF 4506{ 4507 OPPROGDLG_DEFAULT = 0, 4508 OPPROGDLG_ENABLEPAUSE = 0x80, 4509 OPPROGDLG_ALLOWUNDO = 0x100, 4510 OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200, 4511 OPPROGDLG_DONTDISPLAYDESTPATH = 0x400, 4512 OPPROGDLG_NOMULTIDAYESTIMATES = 0x800, 4513 OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000 4514}; 4515typedef DWORD OPPROGDLGF; 4516 4517enum _PDMODE 4518{ 4519 PDM_DEFAULT = 0, 4520 PDM_RUN = 0x1, 4521 PDM_PREFLIGHT = 0x2, 4522 PDM_UNDOING = 0x4, 4523 PDM_ERRORSBLOCKING = 0x8, 4524 PDM_INDETERMINATE = 0x10 4525}; 4526typedef DWORD PDMODE; 4527 4528typedef enum PDOPSTATUS 4529{ 4530 PDOPS_RUNNING = 1, 4531 PDOPS_PAUSED = 2, 4532 PDOPS_CANCELLED = 3, 4533 PDOPS_STOPPED = 4, 4534 PDOPS_ERRORS = 5 4535} PDOPSTATUS; 4536 4537typedef enum _SPACTION 4538{ 4539 SPACTION_NONE = 0, 4540 SPACTION_MOVING = 1, 4541 SPACTION_COPYING = 2, 4542 SPACTION_RECYCLING = 3, 4543 SPACTION_APPLYINGATTRIBS = 4, 4544 SPACTION_DOWNLOADING = 5, 4545 SPACTION_SEARCHING_INTERNET = 6, 4546 SPACTION_CALCULATING = 7, 4547 SPACTION_UPLOADING = 8, 4548 SPACTION_SEARCHING_FILES = 9, 4549 SPACTION_DELETING = 10, 4550 SPACTION_RENAMING = 11, 4551 SPACTION_FORMATTING = 12, 4552 SPACTION_COPY_MOVING = 13 4553} SPACTION; 4554 4555[ 4556 uuid(0C9FB851-E5C9-43EB-A370-F0677B13874C), 4557 object, 4558 pointer_default(unique) 4559] 4560interface IOperationsProgressDialog : IUnknown 4561{ 4562 HRESULT StartProgressDialog( 4563 [in] HWND hwndOwner, 4564 [in] OPPROGDLGF flags); 4565 HRESULT StopProgressDialog(); 4566 HRESULT SetOperation( 4567 [in] SPACTION action); 4568 HRESULT SetMode( 4569 [in] PDMODE mode); 4570 HRESULT UpdateProgress( 4571 [in] ULONGLONG ullPointsCurrent, 4572 [in] ULONGLONG ullPointsTotal, 4573 [in] ULONGLONG ullSizeCurrent, 4574 [in] ULONGLONG ullSizeTotal, 4575 [in] ULONGLONG ullItemsCurrent, 4576 [in] ULONGLONG ullItemsTotal); 4577 HRESULT UpdateLocations( 4578 [in, optional] IShellItem *psiSource, 4579 [in, optional] IShellItem *psiTarget, 4580 [in, optional] IShellItem *psiItem); 4581 HRESULT ResetTimer(); 4582 HRESULT PauseTimer(); 4583 HRESULT ResumeTimer(); 4584 HRESULT GetMilliseconds( 4585 [out] ULONGLONG *pullElapsed, 4586 [out] ULONGLONG *pullRemaining); 4587 HRESULT GetOperationStatus( 4588 [out] PDOPSTATUS *popstatus); 4589}; 4590 4591[ 4592 uuid(947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8), 4593 object, 4594 pointer_default(unique) 4595] 4596interface IFileOperation : IUnknown 4597{ 4598 HRESULT Advise( 4599 [in] IFileOperationProgressSink *pfops, 4600 [out] DWORD *pdwCookie); 4601 HRESULT Unadvise( 4602 [in] DWORD dwCookie); 4603 HRESULT SetOperationFlags( 4604 [in] DWORD dwOperationFlags); 4605 HRESULT SetProgressMessage( 4606 [in] LPCWSTR pszMessage); 4607 HRESULT SetProgressDialog( 4608 [in] IOperationsProgressDialog *popd); 4609 HRESULT SetProperties( 4610 [in] IPropertyChangeArray *pproparray); 4611 HRESULT SetOwnerWindow( 4612 [in] HWND hwndOwner); 4613 HRESULT ApplyPropertiesToItem( 4614 [in] IShellItem *psiItem); 4615 HRESULT ApplyPropertiesToItems( 4616 [in] IUnknown *punkItems); 4617 HRESULT RenameItem( 4618 [in] IShellItem *psiItem, 4619 [in] LPCWSTR pszNewName, 4620 [in] IFileOperationProgressSink *pfopsItem); 4621 HRESULT RenameItems( 4622 [in] IUnknown *pUnkItems, 4623 [in] LPCWSTR pszNewName); 4624 HRESULT MoveItem( 4625 [in] IShellItem *psiItem, 4626 [in] IShellItem *psiDestinationFolder, 4627 [in] LPCWSTR pszNewName, 4628 [in] IFileOperationProgressSink *pfopsItem); 4629 HRESULT MoveItems( 4630 [in] IUnknown *punkItems, 4631 [in] IShellItem *psiDestinationFolder); 4632 HRESULT CopyItem( 4633 [in] IShellItem *psiItem, 4634 [in] IShellItem *psiDestinationFolder, 4635 [in] LPCWSTR pszCopyName, 4636 [in] IFileOperationProgressSink *pfopsItem); 4637 HRESULT CopyItems( 4638 [in] IUnknown *punkItems, 4639 [in] IShellItem *psiDestinationFolder); 4640 HRESULT DeleteItem( 4641 [in] IShellItem *psiItem, 4642 [in] IFileOperationProgressSink *pfopsItem); 4643 HRESULT DeleteItems( 4644 [in] IUnknown *punkItems); 4645 HRESULT NewItem( 4646 [in] IShellItem *psiDestinationFolder, 4647 [in] DWORD dwFileAttributes, 4648 [in] LPCWSTR pszName, 4649 [in] LPCWSTR pszTemplateName, 4650 [in] IFileOperationProgressSink *pfopsItem); 4651 HRESULT PerformOperations(); 4652 HRESULT GetAnyOperationsAborted( 4653 [out] BOOL *pfAnyOperationsAborted); 4654}; 4655 4656[ 4657 uuid(6CCB7BE0-6807-11d0-B810-00C04FD706EC), 4658 object, 4659 local, 4660 pointer_default(unique) 4661] 4662interface IShellTaskScheduler : IUnknown 4663{ 4664 HRESULT AddTask( 4665 [in] IRunnableTask *pTask, 4666 [in] REFGUID rtoid, 4667 [in] DWORD_PTR lParam, 4668 [in] DWORD dwPriority); 4669 HRESULT RemoveTasks( 4670 [in] REFGUID rtoid, 4671 [in] DWORD_PTR lParam, 4672 [in] BOOL fWaitIfRunning); 4673 UINT CountTasks( 4674 [in] REFGUID rtoid); 4675 HRESULT Status( 4676 [in] DWORD dwReleaseStatus, 4677 [in] DWORD dwThreadTimeout); 4678} 4679 4680 4681[ 4682 uuid(47c01f95-e185-412c-b5c5-4f27df965aea), 4683 object, 4684 pointer_default(unique) 4685] 4686interface IFolderBandPriv : IUnknown 4687{ 4688 HRESULT SetCascade([in] BOOL fCascade); 4689 4690 HRESULT SetAccelerators([in] BOOL fAccelerators); 4691 4692 HRESULT SetNoIcons([in] BOOL fNoIcons); 4693 4694 HRESULT SetNoText([in] BOOL fNoText); 4695} 4696 4697 4698#ifdef __REACTOS__ 4699/***************************************************************************** 4700 * IQueryContinue interface 4701 */ 4702 4703[ 4704 uuid(7307055c-b24a-486b-9f25-163e597a28a9), 4705 object, 4706 pointer_default(unique) 4707] 4708interface IQueryContinue : IUnknown 4709{ 4710 // Returns S_OK if the operation should continue, and S_FALSE if not. 4711 HRESULT QueryContinue(); 4712} 4713 4714 4715/***************************************************************************** 4716 * IUserNotification interface 4717 */ 4718 4719[ 4720 uuid(ba9711ba-5893-4787-a7e1-41277151550b), 4721 object, 4722 pointer_default(unique) 4723] 4724interface IUserNotification : IUnknown 4725{ 4726 HRESULT SetBalloonInfo( 4727 [in, unique, string] LPCWSTR pszTitle, 4728 [in, unique, string] LPCWSTR pszText, 4729 [in] DWORD dwInfoFlags); 4730 4731 HRESULT SetBalloonRetry( 4732 [in] DWORD dwShowTime, // Time intervals in milliseconds 4733 [in] DWORD dwInterval, 4734 [in] UINT cRetryCount); 4735 4736 HRESULT SetIconInfo( 4737 [in, unique] HICON hIcon, 4738 [in, unique, string] LPCWSTR pszToolTip); 4739 4740 // Blocks until the notification times out. 4741 HRESULT Show( 4742 [in, unique] IQueryContinue *pqc, 4743 [in] DWORD dwContinuePollInterval); 4744 4745 HRESULT PlaySound( 4746 [in, string] LPCWSTR pszSoundName); 4747}; 4748 4749 4750/***************************************************************************** 4751 * IUserNotificationCallback interface (Vista+) 4752 */ 4753 4754[ 4755 uuid(19108294-0441-4aff-8013-fa0a730b0bea), 4756 object 4757] 4758interface IUserNotificationCallback : IUnknown 4759{ 4760 HRESULT OnBalloonUserClick([in] POINT * pt); 4761 HRESULT OnLeftClick([in] POINT * pt); 4762 HRESULT OnContextMenu([in] POINT * pt); 4763}; 4764 4765 4766/***************************************************************************** 4767 * IUserNotification2 interface (Vista+) 4768 */ 4769 4770[ 4771 uuid(215913cc-57eb-4fab-ab5a-e5fa7bea2a6c), 4772 object, 4773 pointer_default(unique) 4774] 4775interface IUserNotification2 : IUnknown 4776{ 4777 HRESULT SetBalloonInfo( 4778 [in, unique, string] LPCWSTR pszTitle, 4779 [in, unique, string] LPCWSTR pszText, 4780 [in] DWORD dwInfoFlags); 4781 4782 HRESULT SetBalloonRetry( 4783 [in] DWORD dwShowTime, // Time intervals in milliseconds 4784 [in] DWORD dwInterval, 4785 [in] UINT cRetryCount); 4786 4787 HRESULT SetIconInfo( 4788 [in, unique] HICON hIcon, 4789 [in, unique, string] LPCWSTR pszToolTip); 4790 4791 // Blocks until the notification times out. 4792 HRESULT Show( 4793 [in, unique] IQueryContinue *pqc, 4794 [in] DWORD dwContinuePollInterval, 4795 [in, unique] IUserNotificationCallback *pSink); 4796 4797 HRESULT PlaySound( 4798 [in, string] LPCWSTR pszSoundName); 4799}; 4800 4801/***************************************************************************** 4802 * IItemNameLimits interface 4803 */ 4804 4805[ 4806 uuid(1df0d7f1-b267-4d28-8b10-12e23202a5c4) 4807] 4808interface IItemNameLimits : IUnknown 4809{ 4810 HRESULT GetValidCharacters( 4811 [out, string] LPWSTR *ppwszValidChars, 4812 [out, string] LPWSTR *ppwszInvalidChars); 4813 4814 HRESULT GetMaxLength( 4815 [in, string] LPCWSTR pszName, 4816 [out] int *piMaxNameLen); 4817}; 4818 4819/***************************************************************************** 4820 * IUserAssist interface 4821 */ 4822[ 4823 uuid(dd313e05-feff-11d1-8ecd-0000f87a470c), 4824 object, 4825 local, 4826 pointer_default(unique) 4827] 4828interface IUserAssist : IUnknown 4829{ 4830 HRESULT FireEvent( 4831 GUID const *guid, 4832 INT param1, 4833 ULONG param2, 4834 WPARAM wparam, 4835 LPARAM lparam); 4836 4837 HRESULT QueryEvent( 4838 GUID const *guid, 4839 INT param, 4840 WPARAM wparam, 4841 LPARAM lparam, 4842 PVOID ptr); 4843 4844 HRESULT SetEvent( 4845 GUID const *guid, 4846 INT param, 4847 WPARAM wparam, 4848 LPARAM lparam, 4849 PVOID ptr); 4850 4851 HRESULT Enable( 4852 BOOL bEnable); 4853}; 4854 4855#endif // __REACTOS__ 4856