with GNATCOM.Dispinterface;

package MSHTML.IHTMLDocument3_Interface is

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

   procedure Initialize (This : in out IHTMLDocument3_Type);

   function Pointer (This : IHTMLDocument3_Type)
     return Pointer_To_IHTMLDocument3;

   procedure Attach (This    : in out IHTMLDocument3_Type;
                     Pointer : in     Pointer_To_IHTMLDocument3);

   procedure releaseCapture
     (This : IHTMLDocument3_Type);

   procedure recalc
     (This   : IHTMLDocument3_Type;
      fForce : GNATCOM.Types.VARIANT_BOOL);

   function createTextNode
     (This        : IHTMLDocument3_Type;
      text        : GNATCOM.Types.BSTR;
      Free        : Boolean := True)
     return Pointer_To_IHTMLDOMNode;

   function Get_documentElement
     (This : IHTMLDocument3_Type)
     return Pointer_To_IHTMLElement;

   function Get_uniqueID
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.BSTR;

   function attachEvent
     (This     : IHTMLDocument3_Type;
      event    : GNATCOM.Types.BSTR;
      pdisp    : GNATCOM.Types.Pointer_To_IDispatch;
      Free     : Boolean := True)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure detachEvent
     (This  : IHTMLDocument3_Type;
      event : GNATCOM.Types.BSTR;
      pdisp : GNATCOM.Types.Pointer_To_IDispatch;
      Free  : Boolean := True);

   procedure Put_onrowsdelete
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onrowsdelete
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onrowsinserted
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onrowsinserted
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_oncellchange
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_oncellchange
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_ondatasetchanged
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_ondatasetchanged
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_ondataavailable
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_ondataavailable
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_ondatasetcomplete
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_ondatasetcomplete
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onpropertychange
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onpropertychange
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_dir
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_dir
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.BSTR;

   procedure Put_oncontextmenu
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_oncontextmenu
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   procedure Put_onstop
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onstop
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   function createDocumentFragment
     (This    : IHTMLDocument3_Type)
     return Pointer_To_IHTMLDocument2;

   function Get_parentDocument
     (This : IHTMLDocument3_Type)
     return Pointer_To_IHTMLDocument2;

   procedure Put_enableDownload
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT_BOOL);

   function Get_enableDownload
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure Put_baseUrl
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_baseUrl
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.BSTR;

   function Get_childNodes
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.Pointer_To_IDispatch;

   procedure Put_inheritStyleSheets
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT_BOOL);

   function Get_inheritStyleSheets
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure Put_onbeforeeditfocus
     (This : IHTMLDocument3_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onbeforeeditfocus
     (This : IHTMLDocument3_Type)
     return GNATCOM.Types.VARIANT;

   function getElementsByName
     (This    : IHTMLDocument3_Type;
      v       : GNATCOM.Types.BSTR;
      Free    : Boolean := True)
     return Pointer_To_IHTMLElementCollection;

   function getElementById
     (This : IHTMLDocument3_Type;
      v    : GNATCOM.Types.BSTR;
      Free : Boolean := True)
     return Pointer_To_IHTMLElement;

   function getElementsByTagName
     (This    : IHTMLDocument3_Type;
      v       : GNATCOM.Types.BSTR;
      Free    : Boolean := True)
     return Pointer_To_IHTMLElementCollection;

end MSHTML.IHTMLDocument3_Interface;

