diff --git a/windows/devices/geolocation/geolocator.go b/windows/devices/geolocation/geolocator.go index 4c2bf4d..f76c7c3 100644 --- a/windows/devices/geolocation/geolocator.go +++ b/windows/devices/geolocation/geolocator.go @@ -15,6 +15,24 @@ import ( const SignatureGeolocator string = "rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})" +type PositionAccuracy int32 + +const ( + PositionAccuracyDefault PositionAccuracy = 0 + PositionAccuracyHigh PositionAccuracy = 1 +) + +type PositionStatus int32 + +const ( + PositionStatusReady PositionStatus = 0 + PositionStatusInitializing PositionStatus = 1 + PositionStatusNoData PositionStatus = 2 + PositionStatusDisabled PositionStatus = 3 + PositionStatusNotInitialized PositionStatus = 4 + PositionStatusNotAvailable PositionStatus = 5 +) + type Geolocator struct { ole.IUnknown } @@ -83,7 +101,7 @@ func (impl *Geolocator) GetGeopositionAsync() (*foundation.IAsyncOperation, erro return v.GetGeopositionAsync() } -func (impl *Geolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge foundation.TimeSpan, timeout foundation.TimeSpan) (*foundation.IAsyncOperation, error) { +func (impl *Geolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge int64, timeout int64) (*foundation.IAsyncOperation, error) { itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator)) defer itf.Release() v := (*iGeolocator)(unsafe.Pointer(itf)) @@ -285,13 +303,13 @@ func (v *iGeolocator) GetGeopositionAsync() (*foundation.IAsyncOperation, error) return out, nil } -func (v *iGeolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge foundation.TimeSpan, timeout foundation.TimeSpan) (*foundation.IAsyncOperation, error) { +func (v *iGeolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge int64, timeout int64) (*foundation.IAsyncOperation, error) { var out *foundation.IAsyncOperation hr, _, _ := syscall.SyscallN( v.VTable().GetGeopositionAsyncWithAgeAndTimeout, uintptr(unsafe.Pointer(v)), // this - uintptr(unsafe.Pointer(&maximumAge)), // in foundation.TimeSpan - uintptr(unsafe.Pointer(&timeout)), // in foundation.TimeSpan + uintptr(unsafe.Pointer(&maximumAge)), // in int64 (TimeSpan) + uintptr(unsafe.Pointer(&timeout)), // in int64 (TimeSpan) uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation ) @@ -501,7 +519,7 @@ func GeolocatorGetGeopositionHistoryAsync(startTime foundation.DateTime) (*found return out, nil } -func GeolocatorGetGeopositionHistoryWithDurationAsync(startTime foundation.DateTime, duration foundation.TimeSpan) (*foundation.IAsyncOperation, error) { +func GeolocatorGetGeopositionHistoryWithDurationAsync(startTime foundation.DateTime, duration int64) (*foundation.IAsyncOperation, error) { inspectable, err := ole.RoGetActivationFactory("Windows.Devices.Geolocation.Geolocator", ole.NewGUID(GUIDiGeolocatorStatics)) if err != nil { return nil, err @@ -513,7 +531,7 @@ func GeolocatorGetGeopositionHistoryWithDurationAsync(startTime foundation.DateT v.VTable().GeolocatorGetGeopositionHistoryWithDurationAsync, uintptr(unsafe.Pointer(v)), // this uintptr(unsafe.Pointer(&startTime)), // in foundation.DateTime - uintptr(unsafe.Pointer(&duration)), // in foundation.TimeSpan + uintptr(unsafe.Pointer(&duration)), // in int64 (TimeSpan) uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation )