package body MSHTML.IWebGeolocation_Object is

   procedure getCurrentPosition
     (This            : IWebGeolocation_Type;
      successCallback : GNATCOM.Types.VARIANT;
      errorCallback   : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      options         : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free            : Boolean := True)
   is
   begin
      Invoke
        (This,
         IWebGeolocation_getCurrentPosition,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => options,
          2 => errorCallback,
          3 => successCallback),
         Free);
   end getCurrentPosition;

   function watchPosition
     (This            : IWebGeolocation_Type;
      successCallback : GNATCOM.Types.VARIANT;
      errorCallback   : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      options         : GNATCOM.Types.VARIANT
        := GNATCOM.Types.VARIANT_MISSING;
      Free            : Boolean := True)
     return GNATCOM.Types.VARIANT
   is
   begin
      return Invoke
        (This,
         IWebGeolocation_watchPosition,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => options,
          2 => errorCallback,
          3 => successCallback),
         Free);
   end watchPosition;

   procedure clearWatch
     (This    : IWebGeolocation_Type;
      watchId : GNATCOM.Types.VARIANT;
      Free    : Boolean := True)
   is
   begin
      Invoke
        (This,
         IWebGeolocation_clearWatch,
         GNATCOM.Dispinterface.Parameter_Array'
         (1 => watchId),
         Free);
   end clearWatch;

end MSHTML.IWebGeolocation_Object;

