Geoff Chappell - Software Analyst
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.
The original IHMTLPrivateWindow2 methods are:
Offset | Method |
---|---|
0x0C | NavigateEx |
0x10 | GetInnerWindowUnknown |
The methods added for IHTMLPrivateWindow3 are:
Offset | Method |
---|---|
0x14 | OpenEx |
0x18 | NavigateEx2 |
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);
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.