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