package body MSHTML.IHTMLElement2_Object is

   function Get_scopeName
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_scopeName);
   end Get_scopeName;

   procedure setCapture
     (This             : IHTMLElement2_Type;
      containerCapture : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free             : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement2_setCapture,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => containerCapture),
         Free);
   end setCapture;

   procedure releaseCapture
     (This : IHTMLElement2_Type)
   is
   begin
      Invoke (This, IHTMLElement2_releaseCapture);
   end releaseCapture;

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

   function Get_onlosecapture
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onlosecapture);
   end Get_onlosecapture;

   function componentFromPoint
     (This : IHTMLElement2_Type;
      x    : GNATCOM.Types.VARIANT;
      y    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_componentFromPoint,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => y,
          2 => x),
         Free);
   end componentFromPoint;

   procedure doScroll
     (This      : IHTMLElement2_Type;
      component : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free      : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement2_doScroll,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => component),
         Free);
   end doScroll;

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

   function Get_onscroll
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onscroll);
   end Get_onscroll;

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

   function Get_ondrag
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_ondrag);
   end Get_ondrag;

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

   function Get_ondragend
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_ondragend);
   end Get_ondragend;

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

   function Get_ondragenter
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_ondragenter);
   end Get_ondragenter;

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

   function Get_ondragover
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_ondragover);
   end Get_ondragover;

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

   function Get_ondragleave
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_ondragleave);
   end Get_ondragleave;

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

   function Get_ondrop
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_ondrop);
   end Get_ondrop;

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

   function Get_onbeforecut
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onbeforecut);
   end Get_onbeforecut;

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

   function Get_oncut
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_oncut);
   end Get_oncut;

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

   function Get_onbeforecopy
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onbeforecopy);
   end Get_onbeforecopy;

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

   function Get_oncopy
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_oncopy);
   end Get_oncopy;

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

   function Get_onbeforepaste
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onbeforepaste);
   end Get_onbeforepaste;

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

   function Get_onpaste
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onpaste);
   end Get_onpaste;

   function Get_currentStyle
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_currentStyle);
   end Get_currentStyle;

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

   function Get_onpropertychange
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onpropertychange);
   end Get_onpropertychange;

   function getClientRects
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLElement2_getClientRects);
   end getClientRects;

   function getBoundingClientRect
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLElement2_getBoundingClientRect);
   end getBoundingClientRect;

   procedure setExpression
     (This       : IHTMLElement2_Type;
      propname   : GNATCOM.Types.VARIANT;
      expression : GNATCOM.Types.VARIANT;
      language   : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free       : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement2_setExpression,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => language,
          2 => expression,
          3 => propname),
         Free);
   end setExpression;

   function getExpression
     (This     : IHTMLElement2_Type;
      propname : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_getExpression,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => propname),
         Free);
   end getExpression;

   function removeExpression
     (This     : IHTMLElement2_Type;
      propname : GNATCOM.Types.VARIANT;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_removeExpression,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => propname),
         Free);
   end removeExpression;

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

   function Get_tabIndex
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_tabIndex);
   end Get_tabIndex;

   procedure focus
     (This : IHTMLElement2_Type)
   is
   begin
      Invoke (This, IHTMLElement2_focus);
   end focus;

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

   function Get_accessKey
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_accessKey);
   end Get_accessKey;

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

   function Get_onblur
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onblur);
   end Get_onblur;

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

   function Get_onfocus
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onfocus);
   end Get_onfocus;

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

   function Get_onresize
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onresize);
   end Get_onresize;

   procedure blur
     (This : IHTMLElement2_Type)
   is
   begin
      Invoke (This, IHTMLElement2_blur);
   end blur;

   procedure addFilter
     (This : IHTMLElement2_Type;
      pUnk : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement2_addFilter,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pUnk),
         Free);
   end addFilter;

   procedure removeFilter
     (This : IHTMLElement2_Type;
      pUnk : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement2_removeFilter,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pUnk),
         Free);
   end removeFilter;

   function Get_clientHeight
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_clientHeight);
   end Get_clientHeight;

   function Get_clientWidth
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_clientWidth);
   end Get_clientWidth;

   function Get_clientTop
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_clientTop);
   end Get_clientTop;

   function Get_clientLeft
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_clientLeft);
   end Get_clientLeft;

   function attachEvent
     (This  : IHTMLElement2_Type;
      event : GNATCOM.Types.VARIANT;
      pdisp : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_attachEvent,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pdisp,
          2 => event),
         Free);
   end attachEvent;

   procedure detachEvent
     (This  : IHTMLElement2_Type;
      event : GNATCOM.Types.VARIANT;
      pdisp : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement2_detachEvent,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pdisp,
          2 => event),
         Free);
   end detachEvent;

   function Get_readyState
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_readyState);
   end Get_readyState;

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

   function Get_onreadystatechange
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onreadystatechange);
   end Get_onreadystatechange;

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

   function Get_onrowsdelete
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onrowsdelete);
   end Get_onrowsdelete;

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

   function Get_onrowsinserted
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onrowsinserted);
   end Get_onrowsinserted;

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

   function Get_oncellchange
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_oncellchange);
   end Get_oncellchange;

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

   function Get_dir
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_dir);
   end Get_dir;

   function createControlRange
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLElement2_createControlRange);
   end createControlRange;

   function Get_scrollHeight
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_scrollHeight);
   end Get_scrollHeight;

   function Get_scrollWidth
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_scrollWidth);
   end Get_scrollWidth;

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

   function Get_scrollTop
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_scrollTop);
   end Get_scrollTop;

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

   function Get_scrollLeft
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_scrollLeft);
   end Get_scrollLeft;

   procedure clearAttributes
     (This : IHTMLElement2_Type)
   is
   begin
      Invoke (This, IHTMLElement2_clearAttributes);
   end clearAttributes;

   procedure mergeAttributes
     (This      : IHTMLElement2_Type;
      mergeThis : GNATCOM.Types.VARIANT;
      Free      : Boolean := True)
   is
   begin
      Invoke
        (This,
         IHTMLElement2_mergeAttributes,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => mergeThis),
         Free);
   end mergeAttributes;

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

   function Get_oncontextmenu
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_oncontextmenu);
   end Get_oncontextmenu;

   function insertAdjacentElement
     (This            : IHTMLElement2_Type;
      where           : GNATCOM.Types.VARIANT;
      insertedElement : GNATCOM.Types.VARIANT;
      Free            : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_insertAdjacentElement,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => insertedElement,
          2 => where),
         Free);
   end insertAdjacentElement;

   function applyElement
     (This  : IHTMLElement2_Type;
      apply : GNATCOM.Types.VARIANT;
      where : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_applyElement,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => where,
          2 => apply),
         Free);
   end applyElement;

   function getAdjacentText
     (This  : IHTMLElement2_Type;
      where : GNATCOM.Types.VARIANT;
      Free  : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_getAdjacentText,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => where),
         Free);
   end getAdjacentText;

   function replaceAdjacentText
     (This    : IHTMLElement2_Type;
      where   : GNATCOM.Types.VARIANT;
      newText : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_replaceAdjacentText,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => newText,
          2 => where),
         Free);
   end replaceAdjacentText;

   function Get_canHaveChildren
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_canHaveChildren);
   end Get_canHaveChildren;

   function addBehavior
     (This        : IHTMLElement2_Type;
      bstrURL     : GNATCOM.Types.VARIANT;
      pvarFactory : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free        : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_addBehavior,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarFactory,
          2 => bstrURL),
         Free);
   end addBehavior;

   function removeBehavior
     (This   : IHTMLElement2_Type;
      cookie : GNATCOM.Types.VARIANT;
      Free   : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_removeBehavior,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => cookie),
         Free);
   end removeBehavior;

   function Get_runtimeStyle
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_runtimeStyle);
   end Get_runtimeStyle;

   function Get_behaviorUrns
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_behaviorUrns);
   end Get_behaviorUrns;

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

   function Get_tagUrn
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_tagUrn);
   end Get_tagUrn;

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

   function Get_onbeforeeditfocus
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_onbeforeeditfocus);
   end Get_onbeforeeditfocus;

   function Get_readyStateValue
     (This : IHTMLElement2_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLElement2_Get_readyStateValue);
   end Get_readyStateValue;

   function getElementsByTagName
     (This : IHTMLElement2_Type;
      v    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLElement2_getElementsByTagName,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => v),
         Free);
   end getElementsByTagName;

end MSHTML.IHTMLElement2_Object;

