// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.240405.15 #pragma once #ifndef WINRT_Windows_Devices_Geolocation_Geofencing_0_H #define WINRT_Windows_Devices_Geolocation_Geofencing_0_H WINRT_EXPORT namespace winrt::Windows::Devices::Geolocation { struct Geoposition; struct IGeoshape; } WINRT_EXPORT namespace winrt::Windows::Foundation { struct EventRegistrationToken; template struct WINRT_IMPL_EMPTY_BASES TypedEventHandler; } WINRT_EXPORT namespace winrt::Windows::Devices::Geolocation::Geofencing { enum class GeofenceMonitorStatus : int32_t { Ready = 0, Initializing = 1, NoData = 2, Disabled = 3, NotInitialized = 4, NotAvailable = 5, }; enum class GeofenceRemovalReason : int32_t { Used = 0, Expired = 1, }; enum class GeofenceState : uint32_t { None = 0, Entered = 0x1, Exited = 0x2, Removed = 0x4, }; enum class MonitoredGeofenceStates : uint32_t { None = 0, Entered = 0x1, Exited = 0x2, Removed = 0x4, }; struct IGeofence; struct IGeofenceFactory; struct IGeofenceMonitor; struct IGeofenceMonitorStatics; struct IGeofenceStateChangeReport; struct Geofence; struct GeofenceMonitor; struct GeofenceStateChangeReport; } namespace winrt::impl { template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = interface_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = class_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> struct category{ using type = enum_category; }; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.Geofence"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.GeofenceMonitor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.GeofenceStateChangeReport"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.GeofenceMonitorStatus"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.GeofenceRemovalReason"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.GeofenceState"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.MonitoredGeofenceStates"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.IGeofence"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.IGeofenceFactory"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.IGeofenceMonitor"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.IGeofenceMonitorStatics"; template <> inline constexpr auto& name_v = L"Windows.Devices.Geolocation.Geofencing.IGeofenceStateChangeReport"; template <> inline constexpr guid guid_v{ 0x9C090823,0xEDB8,0x47E0,{ 0x82,0x45,0x5B,0xF6,0x1D,0x32,0x1F,0x2D } }; // 9C090823-EDB8-47E0-8245-5BF61D321F2D template <> inline constexpr guid guid_v{ 0x841F624B,0x325F,0x4B90,{ 0xBC,0xA7,0x2B,0x80,0x22,0xA9,0x37,0x96 } }; // 841F624B-325F-4B90-BCA7-2B8022A93796 template <> inline constexpr guid guid_v{ 0x4C0F5F78,0x1C1F,0x4621,{ 0xBB,0xBD,0x83,0x3B,0x92,0x24,0x72,0x26 } }; // 4C0F5F78-1C1F-4621-BBBD-833B92247226 template <> inline constexpr guid guid_v{ 0x2DD32FCF,0x7E75,0x4899,{ 0xAC,0xE3,0x2B,0xD0,0xA6,0x5C,0xCE,0x06 } }; // 2DD32FCF-7E75-4899-ACE3-2BD0A65CCE06 template <> inline constexpr guid guid_v{ 0x9A243C18,0x2464,0x4C89,{ 0xBE,0x05,0xB3,0xFF,0xFF,0x5B,0xAB,0xC5 } }; // 9A243C18-2464-4C89-BE05-B3FFFF5BABC5 template <> struct default_interface{ using type = winrt::Windows::Devices::Geolocation::Geofencing::IGeofence; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Geolocation::Geofencing::IGeofenceMonitor; }; template <> struct default_interface{ using type = winrt::Windows::Devices::Geolocation::Geofencing::IGeofenceStateChangeReport; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_StartTime(int64_t*) noexcept = 0; virtual int32_t __stdcall get_Duration(int64_t*) noexcept = 0; virtual int32_t __stdcall get_DwellTime(int64_t*) noexcept = 0; virtual int32_t __stdcall get_Id(void**) noexcept = 0; virtual int32_t __stdcall get_MonitoredStates(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_Geoshape(void**) noexcept = 0; virtual int32_t __stdcall get_SingleUse(bool*) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall Create(void*, void*, void**) noexcept = 0; virtual int32_t __stdcall CreateWithMonitorStates(void*, void*, uint32_t, bool, void**) noexcept = 0; virtual int32_t __stdcall CreateWithMonitorStatesAndDwellTime(void*, void*, uint32_t, bool, int64_t, void**) noexcept = 0; virtual int32_t __stdcall CreateWithMonitorStatesDwellTimeStartTimeAndDuration(void*, void*, uint32_t, bool, int64_t, int64_t, int64_t, void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Status(int32_t*) noexcept = 0; virtual int32_t __stdcall get_Geofences(void**) noexcept = 0; virtual int32_t __stdcall get_LastKnownGeoposition(void**) noexcept = 0; virtual int32_t __stdcall add_GeofenceStateChanged(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_GeofenceStateChanged(winrt::event_token) noexcept = 0; virtual int32_t __stdcall ReadReports(void**) noexcept = 0; virtual int32_t __stdcall add_StatusChanged(void*, winrt::event_token*) noexcept = 0; virtual int32_t __stdcall remove_StatusChanged(winrt::event_token) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_Current(void**) noexcept = 0; }; }; template <> struct abi { struct WINRT_IMPL_NOVTABLE type : inspectable_abi { virtual int32_t __stdcall get_NewState(uint32_t*) noexcept = 0; virtual int32_t __stdcall get_Geofence(void**) noexcept = 0; virtual int32_t __stdcall get_Geoposition(void**) noexcept = 0; virtual int32_t __stdcall get_RemovalReason(int32_t*) noexcept = 0; }; }; template struct consume_Windows_Devices_Geolocation_Geofencing_IGeofence { [[nodiscard]] auto StartTime() const; [[nodiscard]] auto Duration() const; [[nodiscard]] auto DwellTime() const; [[nodiscard]] auto Id() const; [[nodiscard]] auto MonitoredStates() const; [[nodiscard]] auto Geoshape() const; [[nodiscard]] auto SingleUse() const; }; template <> struct consume { template using type = consume_Windows_Devices_Geolocation_Geofencing_IGeofence; }; template struct consume_Windows_Devices_Geolocation_Geofencing_IGeofenceFactory { auto Create(param::hstring const& id, winrt::Windows::Devices::Geolocation::IGeoshape const& geoshape) const; auto CreateWithMonitorStates(param::hstring const& id, winrt::Windows::Devices::Geolocation::IGeoshape const& geoshape, winrt::Windows::Devices::Geolocation::Geofencing::MonitoredGeofenceStates const& monitoredStates, bool singleUse) const; auto CreateWithMonitorStatesAndDwellTime(param::hstring const& id, winrt::Windows::Devices::Geolocation::IGeoshape const& geoshape, winrt::Windows::Devices::Geolocation::Geofencing::MonitoredGeofenceStates const& monitoredStates, bool singleUse, winrt::Windows::Foundation::TimeSpan const& dwellTime) const; auto CreateWithMonitorStatesDwellTimeStartTimeAndDuration(param::hstring const& id, winrt::Windows::Devices::Geolocation::IGeoshape const& geoshape, winrt::Windows::Devices::Geolocation::Geofencing::MonitoredGeofenceStates const& monitoredStates, bool singleUse, winrt::Windows::Foundation::TimeSpan const& dwellTime, winrt::Windows::Foundation::DateTime const& startTime, winrt::Windows::Foundation::TimeSpan const& duration) const; }; template <> struct consume { template using type = consume_Windows_Devices_Geolocation_Geofencing_IGeofenceFactory; }; template struct consume_Windows_Devices_Geolocation_Geofencing_IGeofenceMonitor { [[nodiscard]] auto Status() const; [[nodiscard]] auto Geofences() const; [[nodiscard]] auto LastKnownGeoposition() const; auto GeofenceStateChanged(winrt::Windows::Foundation::TypedEventHandler const& eventHandler) const; using GeofenceStateChanged_revoker = impl::event_revoker::remove_GeofenceStateChanged>; [[nodiscard]] auto GeofenceStateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& eventHandler) const; auto GeofenceStateChanged(winrt::event_token const& token) const noexcept; auto ReadReports() const; auto StatusChanged(winrt::Windows::Foundation::TypedEventHandler const& eventHandler) const; using StatusChanged_revoker = impl::event_revoker::remove_StatusChanged>; [[nodiscard]] auto StatusChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler const& eventHandler) const; auto StatusChanged(winrt::event_token const& token) const noexcept; }; template <> struct consume { template using type = consume_Windows_Devices_Geolocation_Geofencing_IGeofenceMonitor; }; template struct consume_Windows_Devices_Geolocation_Geofencing_IGeofenceMonitorStatics { [[nodiscard]] auto Current() const; }; template <> struct consume { template using type = consume_Windows_Devices_Geolocation_Geofencing_IGeofenceMonitorStatics; }; template struct consume_Windows_Devices_Geolocation_Geofencing_IGeofenceStateChangeReport { [[nodiscard]] auto NewState() const; [[nodiscard]] auto Geofence() const; [[nodiscard]] auto Geoposition() const; [[nodiscard]] auto RemovalReason() const; }; template <> struct consume { template using type = consume_Windows_Devices_Geolocation_Geofencing_IGeofenceStateChangeReport; }; } #endif