Refactor PositionAccuracy and PositionStatus types for geolocation package

This commit is contained in:
2025-08-22 18:11:56 -04:00
parent 8e759f8435
commit 95eb53221d

View File

@ -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
)