On 05.12.2017 10:09, Alex Henrie wrote:
+ [ + object, + uuid(ce04b590-2b1f-11d2-8d1e-00a0c959bc0a), + dual, + pointer_default(unique) + ] + interface IDHTMLSafe : IDispatch + { + HRESULT ExecCommand( + [in] DHTMLEDITCMDID cmd_id, + [in, defaultvalue(OLECMDEXECOPT_DODEFAULT)] OLECMDEXECOPT options, + [in, optional] VARIANT *code_in, + [out, retval] VARIANT *code_out + ); + + HRESULT QueryStatus( + [in] DHTMLEDITCMDID cmd_id, + [out, retval] DHTMLEDITCMDF *status + ); + + HRESULT SetContextMenu( + [in] VARIANT *strings, + [in] VARIANT *states + ); + + HRESULT NewDocument(); + + HRESULT LoadURL([in] BSTR url); + + HRESULT FilterSourceCode( + [in] BSTR in, + [out, retval] BSTR *out + ); + + HRESULT Refresh(); + + [propget] HRESULT DOM([out, retval] IHTMLDocument2 **value); + + [propget] HRESULT DocumentHTML([out, retval] BSTR *value); + [propput] HRESULT DocumentHTML([in] BSTR html); + + [propget] HRESULT ActivateApplets([out, retval] VARIANT_BOOL *value); + [propput] HRESULT ActivateApplets([in] VARIANT_BOOL value); + + [propget] HRESULT ActivateActiveXControls([out, retval] VARIANT_BOOL *value); + [propput] HRESULT ActivateActiveXControls([in] VARIANT_BOOL value); + + [propget] HRESULT ActivateDTCs([out, retval] VARIANT_BOOL *value); + [propput] HRESULT ActivateDTCs([in] VARIANT_BOOL value); + + [propget] HRESULT ShowDetails([out, retval] VARIANT_BOOL *value); + [propput] HRESULT ShowDetails([in] VARIANT_BOOL value); + + [propget] HRESULT ShowBorders([out, retval] VARIANT_BOOL *value); + [propput] HRESULT ShowBorders([in] VARIANT_BOOL value); + + [propget] HRESULT Appearance([out, retval] DHTMLEDITAPPEARANCE *value); + [propput] HRESULT Appearance([in] DHTMLEDITAPPEARANCE value); + + [propget] HRESULT Scrollbars([out, retval] VARIANT_BOOL *value); + [propput] HRESULT Scrollbars([in] VARIANT_BOOL value); + + [propget] HRESULT ScrollbarAppearance([out, retval] DHTMLEDITAPPEARANCE *value); + [propput] HRESULT ScrollbarAppearance([in] DHTMLEDITAPPEARANCE value); + + [propget] HRESULT SourceCodePreservation([out, retval] VARIANT_BOOL *value); + [propput] HRESULT SourceCodePreservation([in] VARIANT_BOOL value); + + [propget] HRESULT AbsoluteDropMode([out, retval] VARIANT_BOOL *value); + [propput] HRESULT AbsoluteDropMode([in] VARIANT_BOOL value); + + [propget] HRESULT SnapToGridX([out, retval] long *value); + [propput] HRESULT SnapToGridX([in] long value); + + [propget] HRESULT SnapToGridY([out, retval] long *value); + [propput] HRESULT SnapToGridY([in] long value); + + [propget] HRESULT SnapToGrid([out, retval] VARIANT_BOOL *value); + [propput] HRESULT SnapToGrid([in] VARIANT_BOOL value); + + [propget] HRESULT IsDirty([out, retval] VARIANT_BOOL *value); + + [propget] HRESULT CurrentDocumentPath([out, retval] BSTR *value); + + [propget] HRESULT BaseURL([out, retval] BSTR *value); + [propput] HRESULT BaseURL([in] BSTR value); + + [propget] HRESULT DocumentTitle([out, retval] BSTR *value); + + [propget] HRESULT UseDivOnCarriageReturn([out, retval] VARIANT_BOOL *value); + [propput] HRESULT UseDivOnCarriageReturn([in] VARIANT_BOOL value); + + [propget] HRESULT Busy([out, retval] VARIANT_BOOL *value); + }; + + [ + uuid(d1fc78e8-b380-11d1-adc5-006008a5848c) + ] + dispinterface _DHTMLSafeEvents + { + properties: + methods: + void DocumentComplete(); + + void DisplayChanged(); + + void ShowContextMenu( + [in] long x, + [in] long y + ); + + void ContextMenuAction([in] long index); + + void onmousedown(); + + void onmousemove(); + + void onmouseup(); + + void onmouseout(); + + void onmouseover(); + + void onclick(); + + void ondblclick(); + + void onkeydown(); + + void onkeypress(); + + void onkeyup(); + + void onblur(); + + void onreadystatechange(); + }; + + [ + uuid(2d360201-fff5-11d1-8d03-00a0c959bc0a) + ] + coclass DHTMLSafe + { + interface IDHTMLSafe; + interface _DHTMLSafeEvents; + }; + + [ + uuid(ce04b591-2b1f-11d2-8d1e-00a0c959bc0a), + dual, + pointer_default(unique) + ] + interface IDHTMLEdit : IDHTMLSafe + { + HRESULT LoadDocument( + [in] VARIANT *path, + [in, optional] VARIANT *prompt + ); + + HRESULT SaveDocument( + [in] VARIANT *path, + [in, optional] VARIANT *prompt + ); + + HRESULT PrintDocument([in, optional] VARIANT *prompt); + + [propget] HRESULT BrowseMode([out, retval] VARIANT_BOOL *value); + + [propput] HRESULT BrowseMode([in] VARIANT_BOOL value); + }; + + [ + uuid(588d5040-cf28-11d1-8cd3-00a0c959bc0a) + ] + dispinterface _DHTMLEditEvents + { + properties: + methods: + void DocumentComplete(); + + void DisplayChanged(); + + void ShowContextMenu( + [in] long x, + [in] long y + ); + + void ContextMenuAction([in] long index); + + void onmousedown(); + + void onmousemove(); + + void onmouseup(); + + void onmouseout(); + + void onmouseover(); + + void onclick(); + + void ondblclick(); + + void onkeydown(); + + void onkeypress(); + + void onkeyup(); + + void onblur(); + + void onreadystatechange(); + };
You're missind [id()] attributes. Those are important doe IDispatch-based interfaces.
+ + [ + uuid(2d360200-fff5-11d1-8d03-00a0c959bc0a) + ] + coclass DHTMLEdit + { + interface IDHTMLEdit;
[default]
+ interface _DHTMLEditEvents;
[default, source] Thanks, Jacek