<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">On 05.12.2017 10:09, Alex Henrie wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20171205090946.19411-1-alexhenrie24@gmail.com">
      <div class="moz-text-plain" wrap="true" graphical-quote="true"
        style="font-family: -moz-fixed; font-size: 12px;"
        lang="x-western">
        <pre wrap="">+    [
+        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();
+    };</pre>
      </div>
    </blockquote>
    <br>
    You're missind [id()] attributes. Those are important doe
    IDispatch-based interfaces.<br>
    <br>
    <blockquote type="cite"
      cite="mid:20171205090946.19411-1-alexhenrie24@gmail.com">
      <div class="moz-text-plain" wrap="true" graphical-quote="true"
        style="font-family: -moz-fixed; font-size: 12px;"
        lang="x-western">
        <pre wrap="">
+
+    [
+        uuid(2d360200-fff5-11d1-8d03-00a0c959bc0a)
+    ]
+    coclass DHTMLEdit
+    {
+        interface IDHTMLEdit;</pre>
      </div>
    </blockquote>
    <br>
    [default]<br>
    <br>
    <blockquote type="cite"
      cite="mid:20171205090946.19411-1-alexhenrie24@gmail.com">
      <div class="moz-text-plain" wrap="true" graphical-quote="true"
        style="font-family: -moz-fixed; font-size: 12px;"
        lang="x-western">
        <pre wrap="">
+        interface _DHTMLEditEvents;
</pre>
      </div>
    </blockquote>
    <br>
    [default, source]<br>
    <br>
    <br>
    Thanks,<br>
    Jacek<br>
  </body>
</html>