package body MSHTML.DispHTMLXMLHttpRequest_Object is

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

   function Get_responseBody
     (This : DispHTMLXMLHttpRequest_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispHTMLXMLHttpRequest_Get_responseBody);
   end Get_responseBody;

   function Get_responseText
     (This : DispHTMLXMLHttpRequest_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispHTMLXMLHttpRequest_Get_responseText);
   end Get_responseText;

   function Get_responseXML
     (This : DispHTMLXMLHttpRequest_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispHTMLXMLHttpRequest_Get_responseXML);
   end Get_responseXML;

   function Get_status
     (This : DispHTMLXMLHttpRequest_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispHTMLXMLHttpRequest_Get_status);
   end Get_status;

   function Get_statusText
     (This : DispHTMLXMLHttpRequest_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispHTMLXMLHttpRequest_Get_statusText);
   end Get_statusText;

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

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

   procedure uabort
     (This : DispHTMLXMLHttpRequest_Type)
   is
   begin
      Invoke (This, DispHTMLXMLHttpRequest_uabort);
   end uabort;

   procedure open
     (This        : DispHTMLXMLHttpRequest_Type;
      bstrMethod  : GNATCOM.Types.VARIANT;
      bstrURL     : GNATCOM.Types.VARIANT;
      varAsync    : GNATCOM.Types.VARIANT;
      varUser     : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      varPassword : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free        : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispHTMLXMLHttpRequest_open,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => varPassword,
          2 => varUser,
          3 => varAsync,
          4 => bstrURL,
          5 => bstrMethod),
         Free);
   end open;

   procedure send
     (This    : DispHTMLXMLHttpRequest_Type;
      varBody : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispHTMLXMLHttpRequest_send,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => varBody),
         Free);
   end send;

   function getAllResponseHeaders
     (This : DispHTMLXMLHttpRequest_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke (This, DispHTMLXMLHttpRequest_getAllResponseHeaders);
   end getAllResponseHeaders;

   function getResponseHeader
     (This       : DispHTMLXMLHttpRequest_Type;
      bstrHeader : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispHTMLXMLHttpRequest_getResponseHeader,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrHeader),
         Free);
   end getResponseHeader;

   procedure setRequestHeader
     (This       : DispHTMLXMLHttpRequest_Type;
      bstrHeader : GNATCOM.Types.VARIANT;
      bstrValue  : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispHTMLXMLHttpRequest_setRequestHeader,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => bstrValue,
          2 => bstrHeader),
         Free);
   end setRequestHeader;

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

   function Get_timeout
     (This : DispHTMLXMLHttpRequest_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispHTMLXMLHttpRequest_Get_timeout);
   end Get_timeout;

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

   function Get_ontimeout
     (This : DispHTMLXMLHttpRequest_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispHTMLXMLHttpRequest_Get_ontimeout);
   end Get_ontimeout;

   function Get_constructor
     (This : DispHTMLXMLHttpRequest_Type)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Get (This, DispHTMLXMLHttpRequest_Get_constructor);
   end Get_constructor;

   procedure addEventListener
     (This       : DispHTMLXMLHttpRequest_Type;
      utype      : GNATCOM.Types.VARIANT;
      listener   : GNATCOM.Types.VARIANT;
      useCapture : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispHTMLXMLHttpRequest_addEventListener,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => useCapture,
          2 => listener,
          3 => utype),
         Free);
   end addEventListener;

   procedure removeEventListener
     (This       : DispHTMLXMLHttpRequest_Type;
      utype      : GNATCOM.Types.VARIANT;
      listener   : GNATCOM.Types.VARIANT;
      useCapture : GNATCOM.Types.VARIANT;
      Free       : Boolean := True)
   is
   begin
      Invoke
        (This,
         DispHTMLXMLHttpRequest_removeEventListener,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => useCapture,
          2 => listener,
          3 => utype),
         Free);
   end removeEventListener;

   function dispatchEvent
     (This : DispHTMLXMLHttpRequest_Type;
      evt  : GNATCOM.Types.VARIANT;
      Free : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         DispHTMLXMLHttpRequest_dispatchEvent,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => evt),
         Free);
   end dispatchEvent;

end MSHTML.DispHTMLXMLHttpRequest_Object;

