HtmlElement.DomElement Property


Gets an unmanaged interface pointer for this element.

 property System::Object ^ DomElement { System::Object ^ get(); };
public object DomElement { get; }
member this.DomElement : obj
Public ReadOnly Property DomElement As Object

Property Value

The COM IUnknown pointer for the element, which you can cast to one of the HTML element interfaces, such as IHTMLElement.


The following code example uses unmanaged interfaces to take the currently selected text and convert it into a hyperlink, with the URL chosen by the user. This code was written under the assumption that your form has a WebBrowser control named WebBrowser1, and that you have added the unmanaged MSHTML library as a reference to your project.

private void CreateHyperlinkFromSelection()
    if (webBrowser1.Document != null)

        MSHTML.IHTMLDocument2 iDoc = (MSHTML.IHTMLDocument2)webBrowser1.Document.DomDocument;

        if (iDoc != null)
            MSHTML.IHTMLSelectionObject iSelect = iDoc.selection;
            if (iSelect == null)
                MessageBox.Show("Please select some text before using this command.");

            MSHTML.IHTMLTxtRange txtRange = (MSHTML.IHTMLTxtRange)iSelect.createRange();

            // Create the link.
            if (txtRange.queryCommandEnabled("CreateLink"))
                Object o = null;
                txtRange.execCommand("CreateLink", true, o);
Private Sub CreateHyperlinkFromSelection()
    If (WebBrowser1.Document IsNot Nothing) Then
        Dim IDoc As mshtml.IHTMLDocument2 = WebBrowser1.Document.DomDocument

        If (Not (IDoc Is Nothing)) Then
            Dim ISelect As mshtml.IHTMLSelectionObject = IDoc.selection
            If (ISelect Is Nothing) Then
                MsgBox("Please select some text before using this command.")
                Exit Sub
            End If

            Dim TxtRange As mshtml.IHTMLTxtRange = ISelect.createRange()

            ' Create the link.
            If (TxtRange.queryCommandEnabled("CreateLink")) Then
                TxtRange.execCommand("CreateLink", True)
            End If
        End If
    End If
End Sub


HtmlElement is a wrapper for the Internet Explorer Document Object Model (DOM), which is written using the Component Object Model (COM). If you need to access unexposed properties or methods on the underlying COM interfaces, such as IHTMLElement, you can use this object to query for them.

In order to use the unmanaged interfaces, you will need to import the MSHTML library (mshtml.dll) into your application. However, you can also execute unexposed properties and methods using the Invoke method.

Applies to

See also