package body MSHTML.IHTMLDOMNode3_Object is

   procedure Put_prefix
     (This : IHTMLDOMNode3_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         IHTMLDOMNode3_Put_prefix,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_prefix;

   function Get_prefix
     (This : IHTMLDOMNode3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMNode3_Get_prefix);
   end Get_prefix;

   function Get_localName
     (This : IHTMLDOMNode3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMNode3_Get_localName);
   end Get_localName;

   function Get_namespaceURI
     (This : IHTMLDOMNode3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMNode3_Get_namespaceURI);
   end Get_namespaceURI;

   procedure Put_textContent
     (This : IHTMLDOMNode3_Type;
      P1   : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Put
        (This,
         IHTMLDOMNode3_Put_textContent,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => P1),
         Free);
   end Put_textContent;

   function Get_textContent
     (This : IHTMLDOMNode3_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDOMNode3_Get_textContent);
   end Get_textContent;

   function isEqualNode
     (This      : IHTMLDOMNode3_Type;
      otherNode : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_isEqualNode,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => otherNode),
         Free);
   end isEqualNode;

   function lookupNamespaceURI
     (This       : IHTMLDOMNode3_Type;
      pvarPrefix : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_lookupNamespaceURI,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarPrefix),
         Free);
   end lookupNamespaceURI;

   function lookupPrefix
     (This             : IHTMLDOMNode3_Type;
      pvarNamespaceURI : GNATCOM.Types.VARIANT;
      Free             : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_lookupPrefix,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarNamespaceURI),
         Free);
   end lookupPrefix;

   function isDefaultNamespace
     (This          : IHTMLDOMNode3_Type;
      pvarNamespace : GNATCOM.Types.VARIANT;
      Free          : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_isDefaultNamespace,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarNamespace),
         Free);
   end isDefaultNamespace;

   function appendChild
     (This     : IHTMLDOMNode3_Type;
      newChild : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_appendChild,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => newChild),
         Free);
   end appendChild;

   function insertBefore
     (This     : IHTMLDOMNode3_Type;
      newChild : GNATCOM.Types.VARIANT;
      refChild : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_insertBefore,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => refChild,
          2 => newChild),
         Free);
   end insertBefore;

   function removeChild
     (This     : IHTMLDOMNode3_Type;
      oldChild : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_removeChild,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => oldChild),
         Free);
   end removeChild;

   function replaceChild
     (This     : IHTMLDOMNode3_Type;
      newChild : GNATCOM.Types.VARIANT;
      oldChild : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_replaceChild,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => oldChild,
          2 => newChild),
         Free);
   end replaceChild;

   function isSameNode
     (This      : IHTMLDOMNode3_Type;
      otherNode : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_isSameNode,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => otherNode),
         Free);
   end isSameNode;

   function compareDocumentPosition
     (This      : IHTMLDOMNode3_Type;
      otherNode : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_compareDocumentPosition,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => otherNode),
         Free);
   end compareDocumentPosition;

   function isSupported
     (This    : IHTMLDOMNode3_Type;
      feature : GNATCOM.Types.VARIANT;
      version : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDOMNode3_isSupported,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => version,
          2 => feature),
         Free);
   end isSupported;

end MSHTML.IHTMLDOMNode3_Object;

