package body MSHTML.IHTMLDocument4_Object is

   procedure focus
     (This : IHTMLDocument4_Type)
   is
   begin
      Invoke (This, IHTMLDocument4_focus);
   end focus;

   function hasFocus
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, IHTMLDocument4_hasFocus);
   end hasFocus;

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

   function Get_onselectionchange
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDocument4_Get_onselectionchange);
   end Get_onselectionchange;

   function Get_namespaces
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDocument4_Get_namespaces);
   end Get_namespaces;

   function createDocumentFromUrl
     (This        : IHTMLDocument4_Type;
      bstrURL     : GNATCOM.Types.VARIANT;
      bstrOptions : GNATCOM.Types.VARIANT;
      Free        : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDocument4_createDocumentFromUrl,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrOptions,
          2 => bstrURL),
         Free);
   end createDocumentFromUrl;

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

   function Get_media
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDocument4_Get_media);
   end Get_media;

   function CreateEventObject
     (This            : IHTMLDocument4_Type;
      pvarEventObject : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free            : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDocument4_CreateEventObject,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarEventObject),
         Free);
   end CreateEventObject;

   function FireEvent
     (This            : IHTMLDocument4_Type;
      bstrEventName   : GNATCOM.Types.VARIANT;
      pvarEventObject : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free            : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IHTMLDocument4_FireEvent,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => pvarEventObject,
          2 => bstrEventName),
         Free);
   end FireEvent;

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

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

   function Get_oncontrolselect
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDocument4_Get_oncontrolselect);
   end Get_oncontrolselect;

   function Get_URLUnencoded
     (This : IHTMLDocument4_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, IHTMLDocument4_Get_URLUnencoded);
   end Get_URLUnencoded;

end MSHTML.IHTMLDocument4_Object;

