with GNATCOM.Dispinterface;

package MSHTML.IHTMLDOMNode_Object is

   type IHTMLDOMNode_Type is
     new GNATCOM.Dispinterface.Dispinterface_Type with null record;

   function Get_nodeType
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   function Get_parentNode
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   function hasChildNodes
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   function Get_childNodes
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   function Get_attributes
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   function insertBefore
     (This     : IHTMLDOMNode_Type;
      newChild : GNATCOM.Types.VARIANT;
      refChild : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function removeChild
     (This     : IHTMLDOMNode_Type;
      oldChild : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function replaceChild
     (This     : IHTMLDOMNode_Type;
      newChild : GNATCOM.Types.VARIANT;
      oldChild : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function cloneNode
     (This  : IHTMLDOMNode_Type;
      fDeep : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function removeNode
     (This  : IHTMLDOMNode_Type;
      fDeep : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function swapNode
     (This      : IHTMLDOMNode_Type;
      otherNode : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function replaceNode
     (This        : IHTMLDOMNode_Type;
      replacement : GNATCOM.Types.VARIANT;
      Free        : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function appendChild
     (This     : IHTMLDOMNode_Type;
      newChild : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT;

   function Get_nodeName
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_nodeValue
     (This : IHTMLDOMNode_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_nodeValue
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   function Get_firstChild
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   function Get_lastChild
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   function Get_previousSibling
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

   function Get_nextSibling
     (This : IHTMLDOMNode_Type)
     return GNATCOM.Types.VARIANT;

end MSHTML.IHTMLDOMNode_Object;

