IShellBrowserService

IID_IShellBrowserService {42DAD0E2-9B43-4E7A-B9D4-E6D1FF85D173}

The IShellBrowserService methods are (as ordered in the virtual function table after the IUnknown methods):

Offset Method
0x0C GetParentSite
0x10 SetTitle
0x14 GetTitle
0x18 GetOleObject
0x1C GetTravelLog
0x20 ShowControlWindow
0x24 IsControlWindowShown
0x28 IEGetDisplayName
0x2C IEParseDisplayName
0x30 DisplayParseError
0x34 NavigateToPidl
0x38 SetNavigateState
0x3C GetNavigateState
0x40 NotifyRedirect
0x44 UpdateWindowList
0x48 UpdateBackForwardState
0x4C SetFlags
0x50 GetFlags
0x54 CanNavigateNow
0x58 GetPidl
0x5C SetReferrer
0x60 GetBrowserIndex
0x64 GetBrowserByIndex
0x68 GetHistoryObject
0x6C SetHistoryObject
0x70 CacheOLEServer
0x74 GetSetCodePage
0x78 OnHttpEquiv
0x7C GetPalette
0x80 RegisterWindow
0x84 GetPropertyBag

with prototypes:

HRESULT GetParentSite (IOleInPlaceSite **);
HRESULT SetTitle (IShellView *, PCWSTR);
HRESULT GetTitle (IShellView *, PWSTR, DWORD);
HRESULT GetOleObject (IOleObject **);
HRESULT GetTravelLog (ITravelLog **);
HRESULT ShowControlWindow (UINT, BOOL);
HRESULT IsControlWindowShown (UINT, BOOL *);
HRESULT IEGetDisplayName (PCIDLIST_ABSOLUTE, PWSTR, UINT);
HRESULT IEParseDisplayName (UINT, PCWSTR, PIDLIST_ABSOLUTE *);
HRESULT DisplayParseError (HRESULT, PCWSTR);
HRESULT NavigateToPidl (PCIDLIST_ABSOLUTE, DWORD);
HRESULT SetNavigateState (BNSTATE);
HRESULT GetNavigateState (BNSTATE *);
HRESULT NotifyRedirect (IShellView *, PCIDLIST_ABSOLUTE, BOOL *);
HRESULT UpdateWindowList (VOID);
HRESULT UpdateForwardBackState (VOID);
HRESULT SetFlags (DWORD, DWORD);
HRESULT GetFlags (DWORD *);
HRESULT CanNavigateNow (VOID);
HRESULT GetPidl (PIDLIST_ABSOLUTE *);
HRESULT SetReferrer (PCIDLIST_ABSOLUTE);
DWORD GetBrowserIndex (VOID);
HRESULT GetBrowserByIndex (DWORD, IUnknown **);
HRESULT GetHistoryObject (IOleObject **, IStream **, IBindCtx **);
HRESULT SetHistoryObject (IOleObject *, BOOL);
HRESULT CacheOLEServer (IOleObject *);
HRESULT GetSetCodePage (VARIANT *, VARIANT *);
HRESULT OnHttpEquiv (IShellView *, BOOL, VARIANT *, VARIANT *);
HRESULT GetPalette (HPALETTE *);
HRESULT RegisterWindow (BOOL, INT);
HRESULT GetPropertyBag (DWORD, REFIID, PVOID *);

Note that IShellBrowserService is just a fusion of the documented IBrowserService interface with a previous IShellBrowserService interface, specifically to add the latter’s one non-trivial method (GetPropertyBag).1

Availability

The IShellBrowserService interface is implemented in BROWSEUI version 6.0 from Windows Vista, SHDOCVW version 6.0 from Windows Vista, and SHELL32 version 6.0 from Windows Vista.

This interface is not documented by Microsoft in the January 2007 edition of the Windows Software Development Kit (SDK).


[1] I am grateful to Doug Papenthien, following up on an observation by Mohan Embar, for alerting me to my somehow having overlooked this extra method in my first catalogue of this new IShellBrowserService interface.