IHTMLPrivateWindow3

The IHTMLPrivateWindow3 interface is implemented by MSHTML for the window object. It derives from a presumably earlier interface IHTMLPrivateWindow2, which in turn derives only from IUnknown. The IIDs are:

IHTMLPrivateWindow2 {30510410-98B5-11CF-BB82-00AA00BDCE0B}
IHTMLPrivateWindow3 {30510411-98B5-11CF-BB82-00AA00BDCE0B}

Microsoft’s only documentation of these interfaces seems to be that the header file MSHTMDID.H defines a DISPID symbol for each method, as if to anticipate that the methods will be exposed to scripting, but defines no numerical value. Note that the interface is anyway not scriptable since it is not based on IDispatch. Perhaps there is more to it, but inasmuch as this empty definition of a DISPID symbol has any meaning, it does at least suggest which methods belong to which interface.

There is also that the symbols IID_IHTMLPrivateWindow2 and IID_IHTMLPrivateWindow3 are defined in the UUID.LIB library.

Methods

The original IHMTLPrivateWindow2 methods are:

Offset Method
0x0C NavigateEx
0x10 GetInnerWindowUnknown

The methods added for IHTMLPrivateWindow3 are:

Offset Method
0x14 OpenEx
0x18 NavigateEx2

Prototypes

The following are known from Microsoft’s symbol files:

HRESULT NavigateEx (IUri *, IUri *, BSTR, BSTR, IBindCtx *, ULONG, ULONG, IDispatch *);
HRESULT GetInnerWindowUnknown (IUnknown **);
HRESULT OpenEx (IUri *, BSTR, BSTR, BSTR, SHORT, IDispatch *, IHTMLWindow2 **);
HRESULT NavigateEx2 (BSTR, BSTR, BSTR, BSTR, BSTR, BSTR, BSTR, VARIANT, ULONG, ULONG, ULONG, ULONG);

Use By Microsoft

Microsoft’s symbol files show that IID_IHTMLPrivateWindow2 and IID_IHTMLPrivateWindow3 are both known to ACTXPRXY.DLL and the latter is known also to IEFRAME.DLL. Both of course are known to MSHTML.