mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-31 12:54:13 +00:00
226 lines
8.8 KiB
Text
226 lines
8.8 KiB
Text
/*
|
|
* Copyright 2023 Fabian Maurer
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#ifdef __WIDL__
|
|
#pragma winrt ns_prefix
|
|
#endif
|
|
|
|
#ifndef DO_NO_IMPORTS
|
|
import "inspectable.idl";
|
|
import "asyncinfo.idl";
|
|
import "eventtoken.idl";
|
|
import "windowscontracts.idl";
|
|
import "windows.foundation.idl";
|
|
#endif
|
|
|
|
namespace Windows.Devices.Geolocation {
|
|
|
|
typedef enum PositionAccuracy PositionAccuracy;
|
|
typedef enum PositionStatus PositionStatus;
|
|
|
|
interface IGeolocator;
|
|
interface IGeoposition;
|
|
interface IGeocoordinate;
|
|
interface IPositionChangedEventArgs;
|
|
interface IStatusChangedEventArgs;
|
|
interface ICivicAddress;
|
|
|
|
runtimeclass Geolocator;
|
|
runtimeclass Geoposition;
|
|
runtimeclass Geocoordinate;
|
|
runtimeclass PositionChangedEventArgs;
|
|
runtimeclass StatusChangedEventArgs;
|
|
runtimeclass CivicAddress;
|
|
|
|
declare {
|
|
interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Geolocation.Geoposition*>;
|
|
interface Windows.Foundation.IAsyncOperation<Windows.Devices.Geolocation.Geoposition*>;
|
|
interface Windows.Foundation.TypedEventHandler<Windows.Devices.Geolocation.Geolocator*, Windows.Devices.Geolocation.PositionChangedEventArgs*>;
|
|
interface Windows.Foundation.TypedEventHandler<Windows.Devices.Geolocation.Geolocator*, Windows.Devices.Geolocation.StatusChangedEventArgs*>;
|
|
}
|
|
|
|
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
|
enum PositionAccuracy
|
|
{
|
|
Default = 0,
|
|
High = 1,
|
|
};
|
|
|
|
[contract(Windows.Foundation.UniversalApiContract, 1.0)]
|
|
enum PositionStatus
|
|
{
|
|
Ready = 0,
|
|
Initializing = 1,
|
|
NoData = 2,
|
|
Disabled = 3,
|
|
NotInitialized = 4,
|
|
NotAvailable = 5,
|
|
};
|
|
|
|
/* Interfaces */
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Devices.Geolocation.Geolocator),
|
|
uuid(a9c3bf62-4524-4989-8aa9-de019d2e551f)
|
|
]
|
|
interface IGeolocator : IInspectable
|
|
{
|
|
[propget] HRESULT DesiredAccuracy([out, retval] Windows.Devices.Geolocation.PositionAccuracy *value);
|
|
[propput] HRESULT DesiredAccuracy([in] Windows.Devices.Geolocation.PositionAccuracy value);
|
|
[propget] HRESULT MovementThreshold([out, retval] DOUBLE *value);
|
|
[propput] HRESULT MovementThreshold([in] DOUBLE value);
|
|
[propget] HRESULT ReportInterval([out, retval] UINT32 *value);
|
|
[propput] HRESULT ReportInterval([in] UINT32 value);
|
|
[propget] HRESULT LocationStatus([out, retval] Windows.Devices.Geolocation.PositionStatus *value);
|
|
[overload("GetGeopositionAsync")]
|
|
HRESULT GetGeopositionAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Geolocation.Geoposition*> **value);
|
|
[overload("GetGeopositionAsync")]
|
|
HRESULT GetGeopositionAsyncWithAgeAndTimeout([in] Windows.Foundation.TimeSpan maximum_age,
|
|
[in] Windows.Foundation.TimeSpan timeout,
|
|
[out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Geolocation.Geoposition*> **value);
|
|
[eventadd] HRESULT PositionChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Geolocation.Geolocator*, Windows.Devices.Geolocation.PositionChangedEventArgs*> *handler,
|
|
[out, retval] EventRegistrationToken *token);
|
|
[eventremove] HRESULT PositionChanged([in] EventRegistrationToken token);
|
|
[eventadd] HRESULT StatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Geolocation.Geolocator*, Windows.Devices.Geolocation.StatusChangedEventArgs*> *handler,
|
|
[out, retval] EventRegistrationToken *token);
|
|
[eventremove] HRESULT StatusChanged([in] EventRegistrationToken token);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Devices.Geolocation.Geoposition),
|
|
uuid(c18d0454-7d41-4ff7-a957-9dffb4ef7f5b)
|
|
]
|
|
interface IGeoposition : IInspectable
|
|
{
|
|
[propget] HRESULT Coordinate([out, retval] Windows.Devices.Geolocation.Geocoordinate **value);
|
|
[propget] HRESULT CivicAddress([out, retval] Windows.Devices.Geolocation.CivicAddress **value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Devices.Geolocation.Geocoordinate),
|
|
uuid(ee21a3aa-976a-ac70-803d-083ea55bcbc4)
|
|
]
|
|
interface IGeocoordinate : IInspectable
|
|
{
|
|
[deprecated("Use Point.Position.Latitude", deprecate, Windows.Foundation.UniversalApiContract, 1.0)]
|
|
[propget] HRESULT Latitude([out, retval] DOUBLE *value);
|
|
[deprecated("Use Point.Position.Longitude", deprecate, Windows.Foundation.UniversalApiContract, 1.0)]
|
|
[propget] HRESULT Longitude([out, retval] DOUBLE *value);
|
|
[deprecated("Use Point.Position.Altitude", deprecate, Windows.Foundation.UniversalApiContract, 1.0)]
|
|
[propget] HRESULT Altitude([out, retval] Windows.Foundation.IReference<DOUBLE> **value);
|
|
[propget] HRESULT Accuracy([out, retval] DOUBLE *value);
|
|
[propget] HRESULT AltitudeAccuracy([out, retval] Windows.Foundation.IReference<DOUBLE> **value);
|
|
[propget] HRESULT Heading([out, retval] Windows.Foundation.IReference<DOUBLE> **value);
|
|
[propget] HRESULT Speed([out, retval] Windows.Foundation.IReference<DOUBLE> **value);
|
|
[propget] HRESULT Timestamp([out, retval] Windows.Foundation.DateTime *value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Devices.Geolocation.PositionChangedEventArgs),
|
|
uuid(37859ce5-9d1e-46c5-bf3b-6ad8cac1a093)
|
|
]
|
|
interface IPositionChangedEventArgs : IInspectable
|
|
{
|
|
[propget] HRESULT Position([out, retval] Windows.Devices.Geolocation.Geoposition **value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Devices.Geolocation.StatusChangedEventArgs),
|
|
uuid(3453d2da-8c93-4111-a205-9aecfc9be5c0)
|
|
]
|
|
interface IStatusChangedEventArgs : IInspectable
|
|
{
|
|
[propget] HRESULT Status([out, retval] Windows.Devices.Geolocation.PositionStatus *value);
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
exclusiveto(Windows.Devices.Geolocation.CivicAddress),
|
|
uuid(a8567a1a-64f4-4d48-bcea-f6b008eca34c)
|
|
]
|
|
interface ICivicAddress : IInspectable
|
|
{
|
|
[propget] HRESULT Country([out, retval] HSTRING *value);
|
|
[propget] HRESULT State([out, retval] HSTRING *value);
|
|
[propget] HRESULT City([out, retval] HSTRING *value);
|
|
[propget] HRESULT PostalCode([out, retval] HSTRING *value);
|
|
[propget] HRESULT Timestamp([out, retval] Windows.Foundation.DateTime *value);
|
|
}
|
|
|
|
/* Runtime Classes */
|
|
|
|
[
|
|
activatable(Windows.Foundation.UniversalApiContract, 1.0),
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile),
|
|
threading(both)
|
|
]
|
|
runtimeclass Geolocator
|
|
{
|
|
[default] interface Windows.Devices.Geolocation.IGeolocator;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile)
|
|
]
|
|
runtimeclass Geoposition
|
|
{
|
|
[default] interface Windows.Devices.Geolocation.IGeoposition;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile)
|
|
]
|
|
runtimeclass Geocoordinate
|
|
{
|
|
[default] interface Windows.Devices.Geolocation.IGeocoordinate;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile)
|
|
]
|
|
runtimeclass PositionChangedEventArgs
|
|
{
|
|
[default] interface Windows.Devices.Geolocation.IPositionChangedEventArgs;
|
|
}
|
|
|
|
[
|
|
marshaling_behavior(agile)
|
|
]
|
|
runtimeclass StatusChangedEventArgs
|
|
{
|
|
[default] interface Windows.Devices.Geolocation.IStatusChangedEventArgs;
|
|
}
|
|
|
|
[
|
|
contract(Windows.Foundation.UniversalApiContract, 1.0),
|
|
marshaling_behavior(agile)
|
|
]
|
|
runtimeclass CivicAddress
|
|
{
|
|
[default] interface Windows.Devices.Geolocation.ICivicAddress;
|
|
}
|
|
}
|