- Updated import paths in multiple files to point to the new repository at git.savin.nyc/alex/go-winrt. - Removed old import paths referencing saltosystems/winrt-go. - Ensured consistency across all affected files in the Bluetooth Generic Attribute Profile and Foundation packages.
607 lines
17 KiB
Go
607 lines
17 KiB
Go
// Code generated by winrt-go-gen. DO NOT EDIT.
|
|
|
|
//go:build windows
|
|
|
|
//nolint:all
|
|
package geolocation
|
|
|
|
import (
|
|
"syscall"
|
|
"unsafe"
|
|
|
|
"git.savin.nyc/alex/go-winrt/windows/foundation"
|
|
"github.com/go-ole/go-ole"
|
|
)
|
|
|
|
const SignatureGeolocator string = "rc(Windows.Devices.Geolocation.Geolocator;{a9c3bf62-4524-4989-8aa9-de019d2e551f})"
|
|
|
|
type Geolocator struct {
|
|
ole.IUnknown
|
|
}
|
|
|
|
func NewGeolocator() (*Geolocator, error) {
|
|
inspectable, err := ole.RoActivateInstance("Windows.Devices.Geolocation.Geolocator")
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return (*Geolocator)(unsafe.Pointer(inspectable)), nil
|
|
}
|
|
|
|
func (impl *Geolocator) GetDesiredAccuracy() (PositionAccuracy, error) {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.GetDesiredAccuracy()
|
|
}
|
|
|
|
func (impl *Geolocator) SetDesiredAccuracy(value PositionAccuracy) error {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.SetDesiredAccuracy(value)
|
|
}
|
|
|
|
func (impl *Geolocator) GetMovementThreshold() (float64, error) {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.GetMovementThreshold()
|
|
}
|
|
|
|
func (impl *Geolocator) SetMovementThreshold(value float64) error {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.SetMovementThreshold(value)
|
|
}
|
|
|
|
func (impl *Geolocator) GetReportInterval() (uint32, error) {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.GetReportInterval()
|
|
}
|
|
|
|
func (impl *Geolocator) SetReportInterval(value uint32) error {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.SetReportInterval(value)
|
|
}
|
|
|
|
func (impl *Geolocator) GetLocationStatus() (PositionStatus, error) {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.GetLocationStatus()
|
|
}
|
|
|
|
func (impl *Geolocator) GetGeopositionAsync() (*foundation.IAsyncOperation, error) {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.GetGeopositionAsync()
|
|
}
|
|
|
|
func (impl *Geolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge foundation.TimeSpan, timeout foundation.TimeSpan) (*foundation.IAsyncOperation, error) {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.GetGeopositionAsyncWithAgeAndTimeout(maximumAge, timeout)
|
|
}
|
|
|
|
func (impl *Geolocator) AddPositionChanged(handler *foundation.TypedEventHandler) (foundation.EventRegistrationToken, error) {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.AddPositionChanged(handler)
|
|
}
|
|
|
|
func (impl *Geolocator) RemovePositionChanged(token foundation.EventRegistrationToken) error {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.RemovePositionChanged(token)
|
|
}
|
|
|
|
func (impl *Geolocator) AddStatusChanged(handler *foundation.TypedEventHandler) (foundation.EventRegistrationToken, error) {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.AddStatusChanged(handler)
|
|
}
|
|
|
|
func (impl *Geolocator) RemoveStatusChanged(token foundation.EventRegistrationToken) error {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator))
|
|
defer itf.Release()
|
|
v := (*iGeolocator)(unsafe.Pointer(itf))
|
|
return v.RemoveStatusChanged(token)
|
|
}
|
|
|
|
func (impl *Geolocator) GetDesiredAccuracyInMeters() (*foundation.IReference, error) {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocatorWithScalarAccuracy))
|
|
defer itf.Release()
|
|
v := (*iGeolocatorWithScalarAccuracy)(unsafe.Pointer(itf))
|
|
return v.GetDesiredAccuracyInMeters()
|
|
}
|
|
|
|
func (impl *Geolocator) SetDesiredAccuracyInMeters(value *foundation.IReference) error {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocatorWithScalarAccuracy))
|
|
defer itf.Release()
|
|
v := (*iGeolocatorWithScalarAccuracy)(unsafe.Pointer(itf))
|
|
return v.SetDesiredAccuracyInMeters(value)
|
|
}
|
|
|
|
func (impl *Geolocator) AllowFallbackToConsentlessPositions() error {
|
|
itf := impl.MustQueryInterface(ole.NewGUID(GUIDiGeolocator2))
|
|
defer itf.Release()
|
|
v := (*iGeolocator2)(unsafe.Pointer(itf))
|
|
return v.AllowFallbackToConsentlessPositions()
|
|
}
|
|
|
|
const GUIDiGeolocator string = "a9c3bf62-4524-4989-8aa9-de019d2e551f"
|
|
const SignatureiGeolocator string = "{a9c3bf62-4524-4989-8aa9-de019d2e551f}"
|
|
|
|
type iGeolocator struct {
|
|
ole.IInspectable
|
|
}
|
|
|
|
type iGeolocatorVtbl struct {
|
|
ole.IInspectableVtbl
|
|
|
|
GetDesiredAccuracy uintptr
|
|
SetDesiredAccuracy uintptr
|
|
GetMovementThreshold uintptr
|
|
SetMovementThreshold uintptr
|
|
GetReportInterval uintptr
|
|
SetReportInterval uintptr
|
|
GetLocationStatus uintptr
|
|
GetGeopositionAsync uintptr
|
|
GetGeopositionAsyncWithAgeAndTimeout uintptr
|
|
AddPositionChanged uintptr
|
|
RemovePositionChanged uintptr
|
|
AddStatusChanged uintptr
|
|
RemoveStatusChanged uintptr
|
|
}
|
|
|
|
func (v *iGeolocator) VTable() *iGeolocatorVtbl {
|
|
return (*iGeolocatorVtbl)(unsafe.Pointer(v.RawVTable))
|
|
}
|
|
|
|
func (v *iGeolocator) GetDesiredAccuracy() (PositionAccuracy, error) {
|
|
var out PositionAccuracy
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GetDesiredAccuracy,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&out)), // out PositionAccuracy
|
|
)
|
|
|
|
if hr != 0 {
|
|
return PositionAccuracyDefault, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func (v *iGeolocator) SetDesiredAccuracy(value PositionAccuracy) error {
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().SetDesiredAccuracy,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(value), // in PositionAccuracy
|
|
)
|
|
|
|
if hr != 0 {
|
|
return ole.NewError(hr)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (v *iGeolocator) GetMovementThreshold() (float64, error) {
|
|
var out float64
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GetMovementThreshold,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&out)), // out float64
|
|
)
|
|
|
|
if hr != 0 {
|
|
return 0.0, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func (v *iGeolocator) SetMovementThreshold(value float64) error {
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().SetMovementThreshold,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(value), // in float64
|
|
)
|
|
|
|
if hr != 0 {
|
|
return ole.NewError(hr)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (v *iGeolocator) GetReportInterval() (uint32, error) {
|
|
var out uint32
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GetReportInterval,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&out)), // out uint32
|
|
)
|
|
|
|
if hr != 0 {
|
|
return 0, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func (v *iGeolocator) SetReportInterval(value uint32) error {
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().SetReportInterval,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(value), // in uint32
|
|
)
|
|
|
|
if hr != 0 {
|
|
return ole.NewError(hr)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (v *iGeolocator) GetLocationStatus() (PositionStatus, error) {
|
|
var out PositionStatus
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GetLocationStatus,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&out)), // out PositionStatus
|
|
)
|
|
|
|
if hr != 0 {
|
|
return PositionStatusReady, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func (v *iGeolocator) GetGeopositionAsync() (*foundation.IAsyncOperation, error) {
|
|
var out *foundation.IAsyncOperation
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GetGeopositionAsync,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation
|
|
)
|
|
|
|
if hr != 0 {
|
|
return nil, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func (v *iGeolocator) GetGeopositionAsyncWithAgeAndTimeout(maximumAge foundation.TimeSpan, timeout foundation.TimeSpan) (*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(&out)), // out foundation.IAsyncOperation
|
|
)
|
|
|
|
if hr != 0 {
|
|
return nil, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func (v *iGeolocator) AddPositionChanged(handler *foundation.TypedEventHandler) (foundation.EventRegistrationToken, error) {
|
|
var out foundation.EventRegistrationToken
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().AddPositionChanged,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(handler)), // in foundation.TypedEventHandler
|
|
uintptr(unsafe.Pointer(&out)), // out foundation.EventRegistrationToken
|
|
)
|
|
|
|
if hr != 0 {
|
|
return foundation.EventRegistrationToken{}, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func (v *iGeolocator) RemovePositionChanged(token foundation.EventRegistrationToken) error {
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().RemovePositionChanged,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&token)), // in foundation.EventRegistrationToken
|
|
)
|
|
|
|
if hr != 0 {
|
|
return ole.NewError(hr)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func (v *iGeolocator) AddStatusChanged(handler *foundation.TypedEventHandler) (foundation.EventRegistrationToken, error) {
|
|
var out foundation.EventRegistrationToken
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().AddStatusChanged,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(handler)), // in foundation.TypedEventHandler
|
|
uintptr(unsafe.Pointer(&out)), // out foundation.EventRegistrationToken
|
|
)
|
|
|
|
if hr != 0 {
|
|
return foundation.EventRegistrationToken{}, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func (v *iGeolocator) RemoveStatusChanged(token foundation.EventRegistrationToken) error {
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().RemoveStatusChanged,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&token)), // in foundation.EventRegistrationToken
|
|
)
|
|
|
|
if hr != 0 {
|
|
return ole.NewError(hr)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
const GUIDiGeolocatorWithScalarAccuracy string = "96f5d3c1-b80f-460a-994d-a96c47a51aa4"
|
|
const SignatureiGeolocatorWithScalarAccuracy string = "{96f5d3c1-b80f-460a-994d-a96c47a51aa4}"
|
|
|
|
type iGeolocatorWithScalarAccuracy struct {
|
|
ole.IInspectable
|
|
}
|
|
|
|
type iGeolocatorWithScalarAccuracyVtbl struct {
|
|
ole.IInspectableVtbl
|
|
|
|
GetDesiredAccuracyInMeters uintptr
|
|
SetDesiredAccuracyInMeters uintptr
|
|
}
|
|
|
|
func (v *iGeolocatorWithScalarAccuracy) VTable() *iGeolocatorWithScalarAccuracyVtbl {
|
|
return (*iGeolocatorWithScalarAccuracyVtbl)(unsafe.Pointer(v.RawVTable))
|
|
}
|
|
|
|
func (v *iGeolocatorWithScalarAccuracy) GetDesiredAccuracyInMeters() (*foundation.IReference, error) {
|
|
var out *foundation.IReference
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GetDesiredAccuracyInMeters,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&out)), // out foundation.IReference
|
|
)
|
|
|
|
if hr != 0 {
|
|
return nil, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func (v *iGeolocatorWithScalarAccuracy) SetDesiredAccuracyInMeters(value *foundation.IReference) error {
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().SetDesiredAccuracyInMeters,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(value)), // in foundation.IReference
|
|
)
|
|
|
|
if hr != 0 {
|
|
return ole.NewError(hr)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
const GUIDiGeolocator2 string = "d1b42e6d-8891-43b4-ad36-27c6fe9a97b1"
|
|
const SignatureiGeolocator2 string = "{d1b42e6d-8891-43b4-ad36-27c6fe9a97b1}"
|
|
|
|
type iGeolocator2 struct {
|
|
ole.IInspectable
|
|
}
|
|
|
|
type iGeolocator2Vtbl struct {
|
|
ole.IInspectableVtbl
|
|
|
|
AllowFallbackToConsentlessPositions uintptr
|
|
}
|
|
|
|
func (v *iGeolocator2) VTable() *iGeolocator2Vtbl {
|
|
return (*iGeolocator2Vtbl)(unsafe.Pointer(v.RawVTable))
|
|
}
|
|
|
|
func (v *iGeolocator2) AllowFallbackToConsentlessPositions() error {
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().AllowFallbackToConsentlessPositions,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
)
|
|
|
|
if hr != 0 {
|
|
return ole.NewError(hr)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
const GUIDiGeolocatorStatics string = "9a8e7571-2df5-4591-9f87-eb5fd894e9b7"
|
|
const SignatureiGeolocatorStatics string = "{9a8e7571-2df5-4591-9f87-eb5fd894e9b7}"
|
|
|
|
type iGeolocatorStatics struct {
|
|
ole.IInspectable
|
|
}
|
|
|
|
type iGeolocatorStaticsVtbl struct {
|
|
ole.IInspectableVtbl
|
|
|
|
GeolocatorRequestAccessAsync uintptr
|
|
GeolocatorGetGeopositionHistoryAsync uintptr
|
|
GeolocatorGetGeopositionHistoryWithDurationAsync uintptr
|
|
}
|
|
|
|
func (v *iGeolocatorStatics) VTable() *iGeolocatorStaticsVtbl {
|
|
return (*iGeolocatorStaticsVtbl)(unsafe.Pointer(v.RawVTable))
|
|
}
|
|
|
|
func GeolocatorRequestAccessAsync() (*foundation.IAsyncOperation, error) {
|
|
inspectable, err := ole.RoGetActivationFactory("Windows.Devices.Geolocation.Geolocator", ole.NewGUID(GUIDiGeolocatorStatics))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
v := (*iGeolocatorStatics)(unsafe.Pointer(inspectable))
|
|
|
|
var out *foundation.IAsyncOperation
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GeolocatorRequestAccessAsync,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation
|
|
)
|
|
|
|
if hr != 0 {
|
|
return nil, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func GeolocatorGetGeopositionHistoryAsync(startTime foundation.DateTime) (*foundation.IAsyncOperation, error) {
|
|
inspectable, err := ole.RoGetActivationFactory("Windows.Devices.Geolocation.Geolocator", ole.NewGUID(GUIDiGeolocatorStatics))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
v := (*iGeolocatorStatics)(unsafe.Pointer(inspectable))
|
|
|
|
var out *foundation.IAsyncOperation
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GeolocatorGetGeopositionHistoryAsync,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&startTime)), // in foundation.DateTime
|
|
uintptr(unsafe.Pointer(&out)), // out foundation.IAsyncOperation
|
|
)
|
|
|
|
if hr != 0 {
|
|
return nil, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func GeolocatorGetGeopositionHistoryWithDurationAsync(startTime foundation.DateTime, duration foundation.TimeSpan) (*foundation.IAsyncOperation, error) {
|
|
inspectable, err := ole.RoGetActivationFactory("Windows.Devices.Geolocation.Geolocator", ole.NewGUID(GUIDiGeolocatorStatics))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
v := (*iGeolocatorStatics)(unsafe.Pointer(inspectable))
|
|
|
|
var out *foundation.IAsyncOperation
|
|
hr, _, _ := syscall.SyscallN(
|
|
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(&out)), // out foundation.IAsyncOperation
|
|
)
|
|
|
|
if hr != 0 {
|
|
return nil, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
const GUIDiGeolocatorStatics2 string = "993011a2-fa1c-4631-a71d-0dbeb1250d9c"
|
|
const SignatureiGeolocatorStatics2 string = "{993011a2-fa1c-4631-a71d-0dbeb1250d9c}"
|
|
|
|
type iGeolocatorStatics2 struct {
|
|
ole.IInspectable
|
|
}
|
|
|
|
type iGeolocatorStatics2Vtbl struct {
|
|
ole.IInspectableVtbl
|
|
|
|
GeolocatorGetIsDefaultGeopositionRecommended uintptr
|
|
GeolocatorSetDefaultGeoposition uintptr
|
|
GeolocatorGetDefaultGeoposition uintptr
|
|
}
|
|
|
|
func (v *iGeolocatorStatics2) VTable() *iGeolocatorStatics2Vtbl {
|
|
return (*iGeolocatorStatics2Vtbl)(unsafe.Pointer(v.RawVTable))
|
|
}
|
|
|
|
func GeolocatorGetIsDefaultGeopositionRecommended() (bool, error) {
|
|
inspectable, err := ole.RoGetActivationFactory("Windows.Devices.Geolocation.Geolocator", ole.NewGUID(GUIDiGeolocatorStatics2))
|
|
if err != nil {
|
|
return false, err
|
|
}
|
|
v := (*iGeolocatorStatics2)(unsafe.Pointer(inspectable))
|
|
|
|
var out bool
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GeolocatorGetIsDefaultGeopositionRecommended,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&out)), // out bool
|
|
)
|
|
|
|
if hr != 0 {
|
|
return false, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|
|
|
|
func GeolocatorSetDefaultGeoposition(value *foundation.IReference) error {
|
|
inspectable, err := ole.RoGetActivationFactory("Windows.Devices.Geolocation.Geolocator", ole.NewGUID(GUIDiGeolocatorStatics2))
|
|
if err != nil {
|
|
return err
|
|
}
|
|
v := (*iGeolocatorStatics2)(unsafe.Pointer(inspectable))
|
|
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GeolocatorSetDefaultGeoposition,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(value)), // in foundation.IReference
|
|
)
|
|
|
|
if hr != 0 {
|
|
return ole.NewError(hr)
|
|
}
|
|
|
|
return nil
|
|
}
|
|
|
|
func GeolocatorGetDefaultGeoposition() (*foundation.IReference, error) {
|
|
inspectable, err := ole.RoGetActivationFactory("Windows.Devices.Geolocation.Geolocator", ole.NewGUID(GUIDiGeolocatorStatics2))
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
v := (*iGeolocatorStatics2)(unsafe.Pointer(inspectable))
|
|
|
|
var out *foundation.IReference
|
|
hr, _, _ := syscall.SyscallN(
|
|
v.VTable().GeolocatorGetDefaultGeoposition,
|
|
uintptr(unsafe.Pointer(v)), // this
|
|
uintptr(unsafe.Pointer(&out)), // out foundation.IReference
|
|
)
|
|
|
|
if hr != 0 {
|
|
return nil, ole.NewError(hr)
|
|
}
|
|
|
|
return out, nil
|
|
}
|