IDocObjectService

IID_IDocObjectService {3050F801-98B5-11CF-BB82-00AA00BDCE0B}

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

Offset Method
0x0C FireBeforeNavigate2
0x10 FireNavigateComplete2
0x14 FireDownloadBegin
0x18 FireDownloadComplete
0x1C FireDocumentComplete
0x20 UpdateDesktopComponent
0x24 GetPendingUrl
0x28 ActiveElementChanged
0x2C GetUrlSearchComponent
0x30 IsErrorUrl

with prototypes:

HRESULT FireBeforeNavigate2 (IDispatch *, PCWSTR, PCWSTR, DWORD, PBYTE, DWORD, PCWSTR, BOOL, BOOL *);
HRESULT FireNavigateComplete2 (IHTMLWindow2 *, DWORD);
HRESULT FireDownloadBegin (VOID);
HRESULT FireDownloadComplete (VOID);
HRESULT FireDocumentComplete (IHTMLWindow2 *, DWORD);
HRESULT UpdateDesktopComponent (IHTMLWindow2 *);
HRESULT GetPendingUrl (PWSTR *);
HRESULT ActiveElementChanged (IHTMLElement *);
HRESULT GetUrlSearchComponent (PWSTR *);
HRESULT IsErrorUrl (PCWSTR, BOOL *);

Availability

The IDocObjectService interface is implemented in SHDOCVW version 5.50 and 6.0, and IEFRAME version 7.0 and higher.

Though this interface dates from as long ago as 2000, it is said in the January 2007 edition of the Windows Software Development Kit (SDK) to have been “introduced in Internet Explorer 7”. Quite why a supposedly new interface would be immediately “deprecated” is anyone’s guess. To add to the puzzle, some of the methods are dated to Internet Explorer 6. That the interface is documented at all may be an oversight. After all, the header and IDL files that are cited for it are not supplied with the SDK.