with GNATCOM.Dispinterface;

package MSHTML.IHTMLDocument4_Interface is

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

   procedure Initialize (This : in out IHTMLDocument4_Type);

   function Pointer (This : IHTMLDocument4_Type)
     return Pointer_To_IHTMLDocument4;

   procedure Attach (This    : in out IHTMLDocument4_Type;
                     Pointer : in     Pointer_To_IHTMLDocument4);

   procedure focus
     (This : IHTMLDocument4_Type);

   function hasFocus
     (This    : IHTMLDocument4_Type)
     return GNATCOM.Types.VARIANT_BOOL;

   procedure Put_onselectionchange
     (This : IHTMLDocument4_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_onselectionchange
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.VARIANT;

   function Get_namespaces
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.Pointer_To_IDispatch;

   function createDocumentFromUrl
     (This        : IHTMLDocument4_Type;
      bstrURL     : GNATCOM.Types.BSTR;
      bstrOptions : GNATCOM.Types.BSTR;
      Free        : Boolean := True)
     return Pointer_To_IHTMLDocument2;

   procedure Put_media
     (This : IHTMLDocument4_Type;
      p    : GNATCOM.Types.BSTR;
      Free : Boolean := True);

   function Get_media
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.BSTR;

   function CreateEventObject
     (This            : IHTMLDocument4_Type;
      pvarEventObject : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING)
     return Pointer_To_IHTMLEventObj;

   function FireEvent
     (This            : IHTMLDocument4_Type;
      bstrEventName   : GNATCOM.Types.BSTR;
      pvarEventObject : access GNATCOM.Types.VARIANT :=
        GNATCOM.Types.PVARIANT_MISSING;
      Free            : Boolean := True)
     return GNATCOM.Types.VARIANT_BOOL;

   function createRenderStyle
     (This               : IHTMLDocument4_Type;
      v                  : GNATCOM.Types.BSTR;
      Free               : Boolean := True)
     return Pointer_To_IHTMLRenderStyle;

   procedure Put_oncontrolselect
     (This : IHTMLDocument4_Type;
      p    : GNATCOM.Types.VARIANT;
      Free : Boolean := True);

   function Get_oncontrolselect
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.VARIANT;

   function Get_URLUnencoded
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.BSTR;

end MSHTML.IHTMLDocument4_Interface;

