1/* 2 * Deprecated shell interfaces 3 * 4 * Copyright (C) 2010 Nikolay Sivov for CodeWeavers 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21import "objidl.idl"; 22import "ocidl.idl"; 23import "shtypes.idl"; 24import "shobjidl.idl"; 25import "hlink.idl"; 26import "exdisp.idl"; 27 28cpp_quote("#define TLOG_BACK -1") 29cpp_quote("#define TLOG_FORE 1") 30 31cpp_quote("#define TLMENUF_INCLUDECURRENT 0x00000001") 32cpp_quote("#define TLMENUF_CHECKCURRENT (TLMENUF_INCLUDECURRENT | 0x00000002)") 33cpp_quote("#define TLMENUF_BACK 0x00000010") 34cpp_quote("#define TLMENUF_FORE 0x00000020") 35cpp_quote("#define TLMENUF_BACKANDFORTH (TLMENUF_BACK | TLMENUF_FORE | TLMENUF_INCLUDECURRENT)") 36 37[ 38 pointer_default(unique), 39 local, 40 object, 41 uuid(F46EDB3B-BC2F-11d0-9412-00AA00A3EBD3) 42] 43interface ITravelEntry : IUnknown 44{ 45 HRESULT Invoke( 46 [in] IUnknown *punk); 47 48 HRESULT Update( 49 [in] IUnknown *punk, 50 [in] BOOL fIsLocalAnchor); 51 52 HRESULT GetPidl( 53 [out] PIDLIST_ABSOLUTE *ppidl); 54}; 55 56[ 57 pointer_default(unique), 58 local, 59 object, 60 uuid(66A9CB08-4802-11d2-A561-00A0C92DBFE8) 61] 62interface ITravelLog : IUnknown 63{ 64 HRESULT AddEntry( 65 [in] IUnknown *punk, 66 [in] BOOL fIsLocalAnchor); 67 68 HRESULT UpdateEntry( 69 [in] IUnknown *punk, 70 [in] BOOL fIsLocalAnchor); 71 72 HRESULT UpdateExternal( 73 [in] IUnknown *punk, 74 [in] IUnknown *punkHLBrowseContext); 75 76 HRESULT Travel( 77 [in] IUnknown *punk, 78 [in] int iOffset); 79 80 HRESULT GetTravelEntry( 81 [in] IUnknown *punk, 82 [in] int iOffset, 83 [optional, out] ITravelEntry **ppte); 84 85 HRESULT FindTravelEntry( 86 [in] IUnknown *punk, 87 [in] PCIDLIST_ABSOLUTE pidl, 88 [out] ITravelEntry **ppte); 89 90 HRESULT GetToolTipText( 91 [in] IUnknown *punk, 92 [in] int iOffset, 93 [in] int idsTemplate, 94 [out, size_is(cchText)] LPWSTR pwzText, 95 [in] DWORD cchText); 96 97 HRESULT InsertMenuEntries( 98 [in] IUnknown *punk, 99 [in] HMENU hmenu, 100 [in] int nPos, 101 [in] int idFirst, 102 [in] int idLast, 103 [in] DWORD dwFlags); 104 105 HRESULT Clone( 106 [out] ITravelLog **pptl); 107 108 DWORD CountEntries( 109 [in] IUnknown *punk); 110 111 HRESULT Revert(); 112}; 113 114typedef void *CIE4ConnectionPoint; 115 116[ 117 local, 118 object, 119 uuid(0D7D1D00-6FC0-11D0-A974-00C04FD705A2) 120] 121interface IExpDispSupport : IUnknown 122{ 123 HRESULT FindCIE4ConnectionPoint( 124 REFIID riid, 125 CIE4ConnectionPoint **ppccp); 126 127 HRESULT OnTranslateAccelerator( 128 MSG *pMsg, 129 DWORD grfModifiers); 130 131 HRESULT OnInvoke( 132 DISPID dispidMember, 133 REFIID iid, 134 LCID lcid, 135 WORD wFlags, 136 DISPPARAMS *pdispparams, 137 VARIANT *pVarResult, 138 EXCEPINFO *pexcepinfo, 139 UINT *puArgErr); 140}; 141 142typedef enum tagBNSTATE 143{ 144 BNS_NORMAL = 0, 145 BNS_BEGIN_NAVIGATE = 1, 146 BNS_NAVIGATE = 2 147} BNSTATE; 148 149enum { 150 SBSC_HIDE = 0, 151 SBSC_SHOW = 1, 152 SBSC_TOGGLE = 2, 153 SBSC_QUERY = 3 154}; 155 156cpp_quote("#define BSF_REGISTERASDROPTARGET 0x00000001") 157cpp_quote("#define BSF_THEATERMODE 0x00000002") 158cpp_quote("#define BSF_NOLOCALFILEWARNING 0x00000010") 159cpp_quote("#define BSF_UISETBYAUTOMATION 0x00000100") 160cpp_quote("#define BSF_RESIZABLE 0x00000200") 161cpp_quote("#define BSF_CANMAXIMIZE 0x00000400") 162cpp_quote("#define BSF_TOPBROWSER 0x00000800") 163cpp_quote("#define BSF_NAVNOHISTORY 0x00001000") 164cpp_quote("#define BSF_HTMLNAVCANCELED 0x00002000") 165cpp_quote("#define BSF_DONTSHOWNAVCANCELPAGE 0x00004000") 166cpp_quote("#define BSF_SETNAVIGATABLECODEPAGE 0x00008000") 167cpp_quote("#define BSF_DELEGATEDNAVIGATION 0x00010000") 168cpp_quote("#define BSF_TRUSTEDFORACTIVEX 0x00020000") 169 170cpp_quote("#define HLNF_CALLERUNTRUSTED 0x00200000") 171cpp_quote("#define HLNF_TRUSTEDFORACTIVEX 0x00400000") 172cpp_quote("#define HLNF_DISABLEWINDOWRESTRICTIONS 0x00800000") 173cpp_quote("#define HLNF_TRUSTFIRSTDOWNLOAD 0x01000000") 174cpp_quote("#define HLNF_UNTRUSTEDFORDOWNLOAD 0x02000000") 175cpp_quote("#define SHHLNF_NOAUTOSELECT 0x04000000") 176cpp_quote("#define SHHLNF_WRITENOHISTORY 0x08000000") 177cpp_quote("#define HLNF_EXTERNALNAVIGATE 0x10000000") 178cpp_quote("#define HLNF_ALLOW_AUTONAVIGATE 0x20000000") 179cpp_quote("#define HLNF_NEWWINDOWSMANAGED 0x80000000") 180 181[ 182 pointer_default(unique), 183 local, 184 object, 185 uuid(02ba3b52-0547-11d1-b833-00c04fc9b31f) 186] 187interface IBrowserService : IUnknown 188{ 189 HRESULT GetParentSite( 190 [out] IOleInPlaceSite **ppipsite); 191 192 HRESULT SetTitle( 193 [in] IShellView *psv, 194 [in] LPCWSTR pszName); 195 196 HRESULT GetTitle( 197 [in] IShellView *psv, 198 [out, size_is(cchName)] LPWSTR pszName, 199 [in] DWORD cchName); 200 201 HRESULT GetOleObject( 202 [out] IOleObject **ppobjv); 203 204 HRESULT GetTravelLog( 205 [out, optional] ITravelLog **pptl); 206 207 HRESULT ShowControlWindow( 208 [in] UINT id, 209 [in] BOOL fShow); 210 211 HRESULT IsControlWindowShown( 212 [in] UINT id, 213 [out] BOOL *pfShown); 214 215 HRESULT IEGetDisplayName( 216 [in] PCIDLIST_ABSOLUTE pidl, 217 [out] LPWSTR pwszName, 218 [in] UINT uFlags); 219 220 HRESULT IEParseDisplayName( 221 [in] UINT uiCP, 222 [in] LPCWSTR pwszPath, 223 [out] PIDLIST_ABSOLUTE *ppidlOut); 224 225 HRESULT DisplayParseError( 226 [in] HRESULT hres, 227 [in] LPCWSTR pwszPath); 228 229 HRESULT NavigateToPidl( 230 [in] PCIDLIST_ABSOLUTE pidl, 231 [in] DWORD grfHLNF); 232 233 HRESULT SetNavigateState( 234 [in] BNSTATE bnstate); 235 236 HRESULT GetNavigateState( 237 [out] BNSTATE *pbnstate); 238 239 HRESULT NotifyRedirect( 240 [in] IShellView *psv, 241 [in] PCIDLIST_ABSOLUTE pidl, 242 [out] BOOL *pfDidBrowse); 243 244 HRESULT UpdateWindowList(); 245 246 HRESULT UpdateBackForwardState(); 247 248 HRESULT SetFlags( 249 [in] DWORD dwFlags, 250 [in] DWORD dwFlagMask); 251 252 HRESULT GetFlags( 253 [out] DWORD *pdwFlags); 254 255 HRESULT CanNavigateNow(); 256 257 HRESULT GetPidl( 258 [out] PIDLIST_ABSOLUTE *ppidl); 259 260 HRESULT SetReferrer( 261 [in] PCIDLIST_ABSOLUTE pidl); 262 263 DWORD GetBrowserIndex(); 264 265 HRESULT GetBrowserByIndex( 266 [in] DWORD dwID, 267 [out] IUnknown **ppunk); 268 269 HRESULT GetHistoryObject( 270 [out] IOleObject **ppole, 271 [out] IStream **pstm, 272 [out] IBindCtx **ppbc); 273 274 HRESULT SetHistoryObject( 275 [in] IOleObject *pole, 276 [in] BOOL fIsLocalAnchor); 277 278 HRESULT CacheOLEServer( 279 [in] IOleObject *pole); 280 281 HRESULT GetSetCodePage( 282 [in] VARIANT *pvarIn, 283 [out] VARIANT *pvarOut); 284 285 HRESULT OnHttpEquiv( 286 [in] IShellView *psv, 287 [in] BOOL fDone, 288 [in] VARIANT *pvarargIn, 289 [out] VARIANT *pvarargOut); 290 291 HRESULT GetPalette( 292 [out] HPALETTE *hpal); 293 294 HRESULT RegisterWindow( 295 [in] BOOL fForceRegister, 296 [in] int swc); 297} 298 299[ 300 pointer_default(unique), 301 object, 302 local, 303 uuid(5836fb00-8187-11cf-a12b-00aa004ae837) 304] 305interface IShellService : IUnknown 306{ 307 HRESULT SetOwner( [in] IUnknown *pUnk ); 308} 309 310cpp_quote("#if 0") 311typedef HANDLE HMONITOR; 312cpp_quote("#endif") 313 314enum { 315 SECURELOCK_NOCHANGE = -1, 316 SECURELOCK_SET_UNSECURE = 0, 317 SECURELOCK_SET_MIXED = 1, 318 SECURELOCK_SET_SECUREUNKNOWNBIT = 2, 319 SECURELOCK_SET_SECURE40BIT = 3, 320 SECURELOCK_SET_SECURE56BIT = 4, 321 SECURELOCK_SET_FORTEZZA = 5, 322 SECURELOCK_SET_SECURE128BIT = 6, 323 SECURELOCK_FIRSTSUGGEST = 7, 324 SECURELOCK_SUGGEST_UNSECURE = SECURELOCK_FIRSTSUGGEST, 325 SECURELOCK_SUGGEST_MIXED = 8, 326 SECURELOCK_SUGGEST_SECUREUNKNOWNBIT = 9, 327 SECURELOCK_SUGGEST_SECURE40BIT = 10, 328 SECURELOCK_SUGGEST_SECURE56BIT = 11, 329 SECURELOCK_SUGGEST_FORTEZZA = 12, 330 SECURELOCK_SUGGEST_SECURE128BIT = 13, 331}; 332 333cpp_quote("#include <pshpack8.h>") 334typedef struct basebrowserdataxp 335{ 336 HWND _hwnd; 337 ITravelLog *_ptl; 338 IHlinkFrame *_phlf; 339 IWebBrowser2 *_pautoWB2; 340 IExpDispSupport *_pautoEDS; 341 IShellService *_pautoSS; 342 int _eSecureLockIcon; 343 DWORD _fCreatingViewWindow; 344 UINT _uActivateState; 345 346 PCIDLIST_ABSOLUTE _pidlNewShellView; 347 348 IOleCommandTarget *_pctView; 349 350 PIDLIST_ABSOLUTE _pidlCur; 351 IShellView *_psv; 352 IShellFolder *_psf; 353 HWND _hwndView; 354 LPWSTR _pszTitleCur; 355 356 PIDLIST_ABSOLUTE _pidlPending; 357 IShellView *_psvPending; 358 IShellFolder *_psfPending; 359 HWND _hwndViewPending; 360 LPWSTR _pszTitlePending; 361 362 BOOL _fIsViewMSHTML; 363 BOOL _fPrivacyImpacted; 364 CLSID _clsidView; 365 CLSID _clsidViewPending; 366 HWND _hwndFrame; 367} BASEBROWSERDATAXP, *LPBASEBROWSERDATAXP; 368 369typedef struct basebrowserdatalh 370{ 371 HWND _hwnd; 372 ITravelLog *_ptl; 373 IHlinkFrame *_phlf; 374 IWebBrowser2 *_pautoWB2; 375 IExpDispSupport *_pautoEDS; 376 IShellService *_pautoSS; 377 int _eSecureLockIcon; 378 DWORD _fCreatingViewWindow; 379 UINT _uActivateState; 380 381 PCIDLIST_ABSOLUTE _pidlNewShellView; 382 383 IOleCommandTarget *_pctView; 384 385 PIDLIST_ABSOLUTE _pidlCur; 386 IShellView *_psv; 387 IShellFolder *_psf; 388 HWND _hwndView; 389 LPWSTR _pszTitleCur; 390 391 PIDLIST_ABSOLUTE _pidlPending; 392 IShellView *_psvPending; 393 IShellFolder *_psfPending; 394 HWND _hwndViewPending; 395 LPWSTR _pszTitlePending; 396 397 BOOL _fIsViewMSHTML; 398 BOOL _fPrivacyImpacted; 399 CLSID _clsidView; 400 CLSID _clsidViewPending; 401 HWND _hwndFrame; 402 LONG _lPhishingFilterStatus; 403} BASEBROWSERDATALH, *LPBASEBROWSERDATALH; 404cpp_quote("#include <poppack.h>") 405 406typedef BASEBROWSERDATAXP BASEBROWSERDATA; 407 408typedef const BASEBROWSERDATA *LPCBASEBROWSERDATA; 409 410typedef BASEBROWSERDATA *LPBASEBROWSERDATA; 411 412cpp_quote("#define VIEW_PRIORITY_RESTRICTED 0x00000070") 413cpp_quote("#define VIEW_PRIORITY_CACHEHIT 0x00000050") 414cpp_quote("#define VIEW_PRIORITY_STALECACHEHIT 0x00000045") 415cpp_quote("#define VIEW_PRIORITY_USEASDEFAULT 0x00000043") 416cpp_quote("#define VIEW_PRIORITY_SHELLEXT 0x00000040") 417cpp_quote("#define VIEW_PRIORITY_CACHEMISS 0x00000030") 418cpp_quote("#define VIEW_PRIORITY_INHERIT 0x00000020") 419cpp_quote("#define VIEW_PRIORITY_SHELLEXT_ASBACKUP 0x0015") 420cpp_quote("#define VIEW_PRIORITY_DESPERATE 0x00000010") 421cpp_quote("#define VIEW_PRIORITY_NONE 0x00000000") 422 423typedef struct tagFolderSetData { 424 FOLDERSETTINGS _fs; 425 SHELLVIEWID _vidRestore; 426 DWORD _dwViewPriority; 427} FOLDERSETDATA, *LPFOLDERSETDATA; 428 429typedef struct SToolbarItem { 430 IDockingWindow *ptbar; 431 BORDERWIDTHS rcBorderTool; 432 LPWSTR pwszItem; 433 BOOL fShow; 434 HMONITOR hMon; 435} TOOLBARITEM, *LPTOOLBARITEM; 436 437cpp_quote("#define ITB_VIEW ((UINT)-1)") 438 439[ 440 pointer_default(unique), 441 local, 442 object, 443 uuid(68BD21CC-438B-11d2-A560-00A0C92DBFE8) 444] 445interface IBrowserService2 : IBrowserService 446{ 447 LRESULT WndProcBS( 448 [in] HWND hwnd, 449 [in] UINT uMsg, 450 [in] WPARAM wParam, 451 [in] LPARAM lParam); 452 453 HRESULT SetAsDefFolderSettings(); 454 455 HRESULT GetViewRect( 456 [in, out] RECT *prc); 457 458 HRESULT OnSize( 459 [in] WPARAM wParam); 460 461 HRESULT OnCreate( 462 [in] struct tagCREATESTRUCTW *pcs); 463 464 LRESULT OnCommand( 465 [in] WPARAM wParam, 466 [in] LPARAM lParam); 467 468 HRESULT OnDestroy(); 469 470 LRESULT OnNotify( 471 [in, out] struct tagNMHDR *pnm); 472 473 HRESULT OnSetFocus(); 474 475 HRESULT OnFrameWindowActivateBS( 476 [in] BOOL fActive); 477 478 HRESULT ReleaseShellView(); 479 480 HRESULT ActivatePendingView(); 481 482 HRESULT CreateViewWindow( 483 [in] IShellView *psvNew, 484 [in] IShellView *psvOld, 485 [out] LPRECT prcView, 486 [out] HWND *phwnd); 487 488 HRESULT CreateBrowserPropSheetExt( 489 [in] REFIID riid, 490 [out] void **ppv); 491 492 HRESULT GetViewWindow( 493 [out] HWND *phwndView); 494 495 HRESULT GetBaseBrowserData( 496 [in, out] LPCBASEBROWSERDATA *pbbd); 497 498 LPBASEBROWSERDATA PutBaseBrowserData(); 499 500 HRESULT InitializeTravelLog( 501 [in] ITravelLog *ptl, 502 [in] DWORD dw); 503 504 HRESULT SetTopBrowser(); 505 506 HRESULT Offline( 507 [in] int iCmd); 508 509 HRESULT AllowViewResize( 510 [in] BOOL f); 511 512 HRESULT SetActivateState( 513 [in] UINT u); 514 515 HRESULT UpdateSecureLockIcon( 516 [in] int eSecureLock); 517 518 HRESULT InitializeDownloadManager(); 519 520 HRESULT InitializeTransitionSite(); 521 522 HRESULT _Initialize( 523 [in] HWND hwnd, 524 [in] IUnknown *pauto); 525 526 HRESULT _CancelPendingNavigationAsync(); 527 528 HRESULT _CancelPendingView(); 529 530 HRESULT _MaySaveChanges(); 531 532 HRESULT _PauseOrResumeView( 533 [in] BOOL fPaused); 534 535 HRESULT _DisableModeless(); 536 537 HRESULT _NavigateToPidl( 538 [in] PCIDLIST_ABSOLUTE pidl, 539 [in] DWORD grfHLNF, 540 [in] DWORD dwFlags); 541 542 HRESULT _TryShell2Rename( 543 [in] IShellView *psv, 544 [in] PCIDLIST_ABSOLUTE pidlNew); 545 546 HRESULT _SwitchActivationNow(); 547 548 HRESULT _ExecChildren( 549 [in] IUnknown *punkBar, 550 [in] BOOL fBroadcast, 551 [in] const GUID *pguidCmdGroup, 552 [in] DWORD nCmdID, 553 [in] DWORD nCmdexecopt, 554 [in] VARIANTARG *pvarargIn, 555 [in, out] VARIANTARG *pvarargOut); 556 557 HRESULT _SendChildren( 558 [in] HWND hwndBar, 559 [in] BOOL fBroadcast, 560 [in] UINT uMsg, 561 [in] WPARAM wParam, 562 [in] LPARAM lParam); 563 564 HRESULT GetFolderSetData( 565 [in, out] struct tagFolderSetData *pfsd); 566 567 HRESULT _OnFocusChange( 568 [in] UINT itb); 569 570 HRESULT v_ShowHideChildWindows( 571 [in] BOOL fChildOnly); 572 573 UINT _get_itbLastFocus(); 574 575 HRESULT _put_itbLastFocus( 576 [in] UINT itbLastFocus); 577 578 HRESULT _UIActivateView( 579 [in] UINT uState); 580 581 HRESULT _GetViewBorderRect( 582 [in, out] RECT* prc); 583 584 HRESULT _UpdateViewRectSize(); 585 586 HRESULT _ResizeNextBorder( 587 [in] UINT itb); 588 589 HRESULT _ResizeView(); 590 591 HRESULT _GetEffectiveClientArea( 592 [in, out] LPRECT lprectBorder, 593 [in] HMONITOR hmon); 594 595 IStream* v_GetViewStream( 596 [in] PCIDLIST_ABSOLUTE pidl, 597 [in] DWORD grfMode, 598 [in] LPCWSTR pwszName); 599 600 LRESULT ForwardViewMsg( 601 [in] UINT uMsg, 602 [in] WPARAM wParam, 603 [in] LPARAM lParam); 604 605 HRESULT SetAcceleratorMenu( 606 [in] HACCEL hacc); 607 608 int _GetToolbarCount(); 609 610 LPTOOLBARITEM _GetToolbarItem( 611 [in] int itb); 612 613 HRESULT _SaveToolbars( 614 [in] IStream *pstm); 615 616 HRESULT _LoadToolbars( 617 [in] IStream *pstm); 618 619 HRESULT _CloseAndReleaseToolbars( 620 [in] BOOL fClose); 621 622 HRESULT v_MayGetNextToolbarFocus( 623 [in] LPMSG lpMsg, 624 [in] UINT itbNext, 625 [in] int citb, 626 [out] LPTOOLBARITEM *pptbi, 627 [out] HWND *phwnd); 628 629 HRESULT _ResizeNextBorderHelper( 630 [in] UINT itb, 631 [in] BOOL bUseHmonitor); 632 633 UINT _FindTBar( 634 [in] IUnknown *punkSrc); 635 636 HRESULT _SetFocus( 637 [in] LPTOOLBARITEM ptbi, 638 [in] HWND hwnd, 639 [in] LPMSG lpMsg); 640 641 HRESULT v_MayTranslateAccelerator( 642 [in] MSG* pmsg); 643 644 HRESULT _GetBorderDWHelper( 645 [in] IUnknown *punkSrc, 646 [in] LPRECT lprectBorder, 647 [in] BOOL bUseHmonitor); 648 649 HRESULT v_CheckZoneCrossing( 650 [in, out] PCIDLIST_ABSOLUTE pidl); 651}; 652 653[ 654 pointer_default(unique), 655 local, 656 object, 657 uuid(27D7CE21-762D-48F3-86F3-40E2FD3749C4) 658] 659interface IBrowserService3 : IBrowserService2 660{ 661 HRESULT _PositionViewWindow( 662 [in] HWND hwnd, 663 [in] LPRECT prc); 664 665 HRESULT IEParseDisplayNameEx( 666 [in] UINT uiCP, 667 [in] LPCWSTR pwszPath, 668 [in] DWORD dwFlags, 669 [out] PIDLIST_ABSOLUTE *ppidlOut); 670}; 671 672[ 673 pointer_default(unique), 674 local, 675 object, 676 uuid(639f1bff-e135-4096-abd8-e0f504d649a4) 677] 678interface IBrowserService4 : IBrowserService3 679{ 680 HRESULT ActivateView( 681 [in] BOOL fPendingView); 682 683 HRESULT SaveViewState(); 684 685 HRESULT _ResizeAllBorders(); 686}; 687