with GNATCOM.IInterface;

with GNATCOM.Errors;

package body MSHTML.IHTMLElement3_Interface is

   procedure Initialize (This : in out IHTMLElement3_Type) is
   begin
      Set_IID (This, IID_IHTMLElement3);
   end Initialize;

   function Pointer (This : IHTMLElement3_Type)
     return Pointer_To_IHTMLElement3
   is
   begin
      return To_Pointer_To_IHTMLElement3 (Address (This));
   end Pointer;

   procedure Attach (This    : in out IHTMLElement3_Type;
                     Pointer : in     Pointer_To_IHTMLElement3)
   is
   begin
      Attach (This, GNATCOM.IInterface.To_Pointer_To_IUnknown
              (Pointer.all'Address));
   end Attach;

   procedure mergeAttributes
     (This      : IHTMLElement3_Type;
      mergeThis : Pointer_To_IHTMLElement;
      pvarFlags : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.mergeAttributes
         (Pointer (This),
          mergeThis,
          pvarFlags));

   end mergeAttributes;

   function Get_isMultiLine
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT_BOOL
   is
       RetVal : aliased GNATCOM.Types.VARIANT_BOOL;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_isMultiLine
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_isMultiLine;

   function Get_canHaveHTML
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT_BOOL
   is
       RetVal : aliased GNATCOM.Types.VARIANT_BOOL;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_canHaveHTML
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_canHaveHTML;

   procedure Put_onlayoutcomplete
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onlayoutcomplete
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onlayoutcomplete;

   function Get_onlayoutcomplete
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onlayoutcomplete
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onlayoutcomplete;

   procedure Put_onpage
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onpage
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onpage;

   function Get_onpage
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onpage
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onpage;

   procedure Put_inflateBlock
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT_BOOL)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_inflateBlock
         (Pointer (This),
          p));

   end Put_inflateBlock;

   function Get_inflateBlock
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT_BOOL
   is
       RetVal : aliased GNATCOM.Types.VARIANT_BOOL;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_inflateBlock
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_inflateBlock;

   procedure Put_onbeforedeactivate
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onbeforedeactivate
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onbeforedeactivate;

   function Get_onbeforedeactivate
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onbeforedeactivate
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onbeforedeactivate;

   procedure setActive
     (This : IHTMLElement3_Type)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.setActive
         (Pointer (This)));

   end setActive;

   procedure Put_contentEditable
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_contentEditable
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_contentEditable;

   function Get_contentEditable
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.BSTR
   is
       RetVal : aliased GNATCOM.Types.BSTR;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_contentEditable
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_contentEditable;

   function Get_isContentEditable
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT_BOOL
   is
       RetVal : aliased GNATCOM.Types.VARIANT_BOOL;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_isContentEditable
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_isContentEditable;

   procedure Put_hideFocus
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT_BOOL)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_hideFocus
         (Pointer (This),
          p));

   end Put_hideFocus;

   function Get_hideFocus
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT_BOOL
   is
       RetVal : aliased GNATCOM.Types.VARIANT_BOOL;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_hideFocus
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_hideFocus;

   procedure Put_disabled
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT_BOOL)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_disabled
         (Pointer (This),
          p));

   end Put_disabled;

   function Get_disabled
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT_BOOL
   is
       RetVal : aliased GNATCOM.Types.VARIANT_BOOL;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_disabled
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_disabled;

   function Get_isDisabled
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT_BOOL
   is
       RetVal : aliased GNATCOM.Types.VARIANT_BOOL;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_isDisabled
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_isDisabled;

   procedure Put_onmove
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onmove
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onmove;

   function Get_onmove
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onmove
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onmove;

   procedure Put_oncontrolselect
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_oncontrolselect
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_oncontrolselect;

   function Get_oncontrolselect
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_oncontrolselect
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_oncontrolselect;

   function FireEvent
     (This            : IHTMLElement3_Type;
      bstrEventName   : GNATCOM.Types.BSTR;
      pvarEventObject : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      Free            : Boolean := True)
     return GNATCOM.Types.VARIANT_BOOL
   is
       RetVal : aliased GNATCOM.Types.VARIANT_BOOL;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.FireEvent
         (Pointer (This),
          bstrEventName,
          pvarEventObject,
          RetVal'Unchecked_Access));

      if Free then
               GNATCOM.IInterface.Free (bstrEventName);
      
      end if;

      return RetVal;
   end FireEvent;

   procedure Put_onresizestart
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onresizestart
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onresizestart;

   function Get_onresizestart
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onresizestart
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onresizestart;

   procedure Put_onresizeend
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onresizeend
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onresizeend;

   function Get_onresizeend
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onresizeend
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onresizeend;

   procedure Put_onmovestart
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onmovestart
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onmovestart;

   function Get_onmovestart
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onmovestart
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onmovestart;

   procedure Put_onmoveend
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onmoveend
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onmoveend;

   function Get_onmoveend
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onmoveend
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onmoveend;

   procedure Put_onmouseenter
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onmouseenter
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onmouseenter;

   function Get_onmouseenter
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onmouseenter
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onmouseenter;

   procedure Put_onmouseleave
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onmouseleave
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onmouseleave;

   function Get_onmouseleave
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onmouseleave
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onmouseleave;

   procedure Put_onactivate
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_onactivate
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_onactivate;

   function Get_onactivate
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_onactivate
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_onactivate;

   procedure Put_ondeactivate
     (This : IHTMLElement3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
   is
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Put_ondeactivate
         (Pointer (This),
          p));

      if Free then
               GNATCOM.IInterface.Free (p);
      
      end if;

   end Put_ondeactivate;

   function Get_ondeactivate
     (This : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT
   is
       RetVal : aliased GNATCOM.Types.VARIANT;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_ondeactivate
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_ondeactivate;

   function dragDrop
     (This  : IHTMLElement3_Type)
     return GNATCOM.Types.VARIANT_BOOL
   is
       RetVal : aliased GNATCOM.Types.VARIANT_BOOL;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.dragDrop
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end dragDrop;

   function Get_glyphMode
     (This : IHTMLElement3_Type)
     return Interfaces.C.long
   is
       RetVal : aliased Interfaces.C.long;
   begin
      GNATCOM.Errors.Error_Check
        (Pointer (This).Vtbl.Get_glyphMode
         (Pointer (This),
          RetVal'Unchecked_Access));

      return RetVal;
   end Get_glyphMode;

end MSHTML.IHTMLElement3_Interface;

