wine/include/windows.devices.geolocation.idl

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;
}
}