//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0021
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Devices.Geolocation.idl";
import "Windows.Services.Maps.idl";
import "Windows.UI.idl";

// Forward Declare
namespace Windows
{
    namespace Devices
    {
        namespace Geolocation
        {
            typedef struct BasicGeoposition BasicGeoposition;

            runtimeclass GeoboundingBox;

            runtimeclass Geocoordinate;

            runtimeclass Geopath;

            runtimeclass Geopoint;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct TimeSpan TimeSpan;
    }
}
namespace Windows
{
    namespace Services
    {
        namespace Maps
        {
            apicontract GuidanceContract;

            runtimeclass MapRoute;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace Services
    {
        namespace Maps
        {
            namespace Guidance
            {
                typedef enum GuidanceAudioMeasurementSystem GuidanceAudioMeasurementSystem;

                typedef enum GuidanceAudioNotificationKind GuidanceAudioNotificationKind;

                typedef enum GuidanceAudioNotifications GuidanceAudioNotifications;

                typedef enum GuidanceLaneMarkers GuidanceLaneMarkers;

                typedef enum GuidanceManeuverKind GuidanceManeuverKind;

                typedef enum GuidanceMode GuidanceMode;

                interface IGuidanceAudioNotificationRequestedEventArgs;

                interface IGuidanceLaneInfo;

                interface IGuidanceManeuver;

                interface IGuidanceMapMatchedCoordinate;

                interface IGuidanceNavigator;

                interface IGuidanceNavigator2;

                interface IGuidanceNavigatorStatics;

                interface IGuidanceNavigatorStatics2;

                interface IGuidanceReroutedEventArgs;

                interface IGuidanceRoadSegment;

                interface IGuidanceRoadSegment2;

                interface IGuidanceRoadSignpost;

                interface IGuidanceRoute;

                interface IGuidanceRouteStatics;

                interface IGuidanceTelemetryCollector;

                interface IGuidanceTelemetryCollectorStatics;

                interface IGuidanceUpdatedEventArgs;

                runtimeclass GuidanceAudioNotificationRequestedEventArgs;

                runtimeclass GuidanceLaneInfo;

                runtimeclass GuidanceManeuver;

                runtimeclass GuidanceMapMatchedCoordinate;

                runtimeclass GuidanceNavigator;

                runtimeclass GuidanceReroutedEventArgs;

                runtimeclass GuidanceRoadSegment;

                runtimeclass GuidanceRoadSignpost;

                runtimeclass GuidanceRoute;

                runtimeclass GuidanceTelemetryCollector;

                runtimeclass GuidanceUpdatedEventArgs;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Services
    {
        namespace Maps
        {
            namespace Guidance
            {
                declare
                {
                    interface Windows.Foundation.Collections.IIterable<Windows.Services.Maps.Guidance.GuidanceLaneInfo*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Services.Maps.Guidance.GuidanceManeuver*>;

                    interface Windows.Foundation.Collections.IIterable<Windows.Services.Maps.Guidance.GuidanceRoadSegment*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Services.Maps.Guidance.GuidanceLaneInfo*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Services.Maps.Guidance.GuidanceManeuver*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Services.Maps.Guidance.GuidanceRoadSegment*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Services.Maps.Guidance.GuidanceLaneInfo*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Services.Maps.Guidance.GuidanceManeuver*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Services.Maps.Guidance.GuidanceRoadSegment*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, IInspectable*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, Windows.Services.Maps.Guidance.GuidanceAudioNotificationRequestedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, Windows.Services.Maps.Guidance.GuidanceReroutedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, Windows.Services.Maps.Guidance.GuidanceUpdatedEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Services
    {
        namespace Maps
        {
            namespace Guidance
            {
                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                enum GuidanceAudioMeasurementSystem
                {
                    Meters        = 0,
                    MilesAndYards = 1,
                    MilesAndFeet  = 2
                };

                [contract(Windows.Services.Maps.GuidanceContract, 2.0)]
                enum GuidanceAudioNotificationKind
                {
                    Maneuver      = 0,
                    Route         = 1,
                    Gps           = 2,
                    SpeedLimit    = 3,
                    Traffic       = 4,
                    TrafficCamera = 5
                };

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [flags]
                enum GuidanceAudioNotifications
                {
                    None          = 0x0,
                    Maneuver      = 0x1,
                    Route         = 0x2,
                    Gps           = 0x4,
                    SpeedLimit    = 0x8,
                    Traffic       = 0x10,
                    TrafficCamera = 0x20
                };

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [flags]
                enum GuidanceLaneMarkers
                {
                    None       = 0x0,
                    LightRight = 0x1,
                    Right      = 0x2,
                    HardRight  = 0x4,
                    Straight   = 0x8,
                    UTurnLeft  = 0x10,
                    HardLeft   = 0x20,
                    Left       = 0x40,
                    LightLeft  = 0x80,
                    UTurnRight = 0x100,
                    Unknown    = 0xFFFFFFFF
                };

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                enum GuidanceManeuverKind
                {
                    None                 = 0,
                    GoStraight           = 1,
                    UTurnRight           = 2,
                    UTurnLeft            = 3,
                    TurnKeepRight        = 4,
                    TurnLightRight       = 5,
                    TurnRight            = 6,
                    TurnHardRight        = 7,
                    KeepMiddle           = 8,
                    TurnKeepLeft         = 9,
                    TurnLightLeft        = 10,
                    TurnLeft             = 11,
                    TurnHardLeft         = 12,
                    FreewayEnterRight    = 13,
                    FreewayEnterLeft     = 14,
                    FreewayLeaveRight    = 15,
                    FreewayLeaveLeft     = 16,
                    FreewayKeepRight     = 17,
                    FreewayKeepLeft      = 18,
                    TrafficCircleRight1  = 19,
                    TrafficCircleRight2  = 20,
                    TrafficCircleRight3  = 21,
                    TrafficCircleRight4  = 22,
                    TrafficCircleRight5  = 23,
                    TrafficCircleRight6  = 24,
                    TrafficCircleRight7  = 25,
                    TrafficCircleRight8  = 26,
                    TrafficCircleRight9  = 27,
                    TrafficCircleRight10 = 28,
                    TrafficCircleRight11 = 29,
                    TrafficCircleRight12 = 30,
                    TrafficCircleLeft1   = 31,
                    TrafficCircleLeft2   = 32,
                    TrafficCircleLeft3   = 33,
                    TrafficCircleLeft4   = 34,
                    TrafficCircleLeft5   = 35,
                    TrafficCircleLeft6   = 36,
                    TrafficCircleLeft7   = 37,
                    TrafficCircleLeft8   = 38,
                    TrafficCircleLeft9   = 39,
                    TrafficCircleLeft10  = 40,
                    TrafficCircleLeft11  = 41,
                    TrafficCircleLeft12  = 42,
                    Start                = 43,
                    End                  = 44,
                    TakeFerry            = 45,
                    PassTransitStation   = 46,
                    LeaveTransitStation  = 47
                };

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                enum GuidanceMode
                {
                    None       = 0,
                    Simulation = 1,
                    Navigation = 2,
                    Tracking   = 3
                };

                [contract(Windows.Services.Maps.GuidanceContract, 2.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceAudioNotificationRequestedEventArgs)]
                [uuid(CA2AA24A-C7C2-4D4C-9D7C-499576BCEDDB)]
                interface IGuidanceAudioNotificationRequestedEventArgs : IInspectable
                {
                    [propget] HRESULT AudioNotification([out] [retval] Windows.Services.Maps.Guidance.GuidanceAudioNotificationKind* value);
                    [propget] HRESULT AudioFilePaths([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                    [propget] HRESULT AudioText([out] [retval] HSTRING* value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceLaneInfo)]
                [uuid(8404D114-6581-43B7-AC15-C9079BF90DF1)]
                interface IGuidanceLaneInfo : IInspectable
                {
                    [propget] HRESULT LaneMarkers([out] [retval] Windows.Services.Maps.Guidance.GuidanceLaneMarkers* value);
                    [propget] HRESULT IsOnRoute([out] [retval] boolean* value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceManeuver)]
                [uuid(FC09326C-ECC9-4928-A2A1-7232B99B94A1)]
                interface IGuidanceManeuver : IInspectable
                {
                    [propget] HRESULT StartLocation([out] [retval] Windows.Devices.Geolocation.Geopoint** value);
                    [propget] HRESULT DistanceFromRouteStart([out] [retval] INT32* value);
                    [propget] HRESULT DistanceFromPreviousManeuver([out] [retval] INT32* value);
                    [propget] HRESULT DepartureRoadName([out] [retval] HSTRING* value);
                    [propget] HRESULT NextRoadName([out] [retval] HSTRING* value);
                    [propget] HRESULT DepartureShortRoadName([out] [retval] HSTRING* value);
                    [propget] HRESULT NextShortRoadName([out] [retval] HSTRING* value);
                    [propget] HRESULT Kind([out] [retval] Windows.Services.Maps.Guidance.GuidanceManeuverKind* value);
                    [propget] HRESULT StartAngle([out] [retval] INT32* value);
                    [propget] HRESULT EndAngle([out] [retval] INT32* value);
                    [propget] HRESULT RoadSignpost([out] [retval] Windows.Services.Maps.Guidance.GuidanceRoadSignpost** value);
                    [propget] HRESULT InstructionText([out] [retval] HSTRING* value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceMapMatchedCoordinate)]
                [uuid(B7ACB168-2912-4A99-AFF1-798609B981FE)]
                interface IGuidanceMapMatchedCoordinate : IInspectable
                {
                    [propget] HRESULT Location([out] [retval] Windows.Devices.Geolocation.Geopoint** value);
                    [propget] HRESULT CurrentHeading([out] [retval] DOUBLE* value);
                    [propget] HRESULT CurrentSpeed([out] [retval] DOUBLE* value);
                    [propget] HRESULT IsOnStreet([out] [retval] boolean* value);
                    [propget] HRESULT Road([out] [retval] Windows.Services.Maps.Guidance.GuidanceRoadSegment** value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceNavigator)]
                [uuid(08F17EF7-8E3F-4D9A-BE8A-108F9A012C67)]
                interface IGuidanceNavigator : IInspectable
                {
                    HRESULT StartNavigating([in] Windows.Services.Maps.Guidance.GuidanceRoute* route);
                    HRESULT StartSimulating([in] Windows.Services.Maps.Guidance.GuidanceRoute* route, [in] INT32 speedInMetersPerSecond);
                    HRESULT StartTracking();
                    HRESULT Pause();
                    HRESULT Resume();
                    HRESULT Stop();
                    HRESULT RepeatLastAudioNotification();
                    [propget] HRESULT AudioMeasurementSystem([out] [retval] Windows.Services.Maps.Guidance.GuidanceAudioMeasurementSystem* value);
                    [propput] HRESULT AudioMeasurementSystem([in] Windows.Services.Maps.Guidance.GuidanceAudioMeasurementSystem value);
                    [propget] HRESULT AudioNotifications([out] [retval] Windows.Services.Maps.Guidance.GuidanceAudioNotifications* value);
                    [propput] HRESULT AudioNotifications([in] Windows.Services.Maps.Guidance.GuidanceAudioNotifications value);
                    [eventadd] HRESULT GuidanceUpdated([in] Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, Windows.Services.Maps.Guidance.GuidanceUpdatedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT GuidanceUpdated([in] EventRegistrationToken token);
                    [eventadd] HRESULT DestinationReached([in] Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT DestinationReached([in] EventRegistrationToken token);
                    [eventadd] HRESULT Rerouting([in] Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT Rerouting([in] EventRegistrationToken token);
                    [eventadd] HRESULT Rerouted([in] Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, Windows.Services.Maps.Guidance.GuidanceReroutedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT Rerouted([in] EventRegistrationToken token);
                    [eventadd] HRESULT RerouteFailed([in] Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT RerouteFailed([in] EventRegistrationToken token);
                    [eventadd] HRESULT UserLocationLost([in] Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT UserLocationLost([in] EventRegistrationToken token);
                    [eventadd] HRESULT UserLocationRestored([in] Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT UserLocationRestored([in] EventRegistrationToken token);
                    HRESULT SetGuidanceVoice([in] INT32 voiceId, [in] HSTRING voiceFolder);
                    [overload("UpdateUserLocation")] HRESULT UpdateUserLocation([in] Windows.Devices.Geolocation.Geocoordinate* userLocation);
                    [overload("UpdateUserLocation")] HRESULT UpdateUserLocationWithPositionOverride([in] Windows.Devices.Geolocation.Geocoordinate* userLocation, [in] Windows.Devices.Geolocation.BasicGeoposition positionOverride);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 2.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceNavigator)]
                [uuid(6CDC50D1-041C-4BF3-B633-A101FC2F6B57)]
                interface IGuidanceNavigator2 : IInspectable
                {
                    [eventadd] HRESULT AudioNotificationRequested([in] Windows.Foundation.TypedEventHandler<Windows.Services.Maps.Guidance.GuidanceNavigator*, Windows.Services.Maps.Guidance.GuidanceAudioNotificationRequestedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT AudioNotificationRequested([in] EventRegistrationToken token);
                    [propget] HRESULT IsGuidanceAudioMuted([out] [retval] boolean* value);
                    [propput] HRESULT IsGuidanceAudioMuted([in] boolean value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceNavigator)]
                [uuid(00FD9513-4456-4E66-A143-3ADD6BE08426)]
                interface IGuidanceNavigatorStatics : IInspectable
                {
                    HRESULT GetCurrent([out] [retval] Windows.Services.Maps.Guidance.GuidanceNavigator** result);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 2.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceNavigator)]
                [uuid(54C5C3E2-7784-4C85-8C95-D0C6EFB43965)]
                interface IGuidanceNavigatorStatics2 : IInspectable
                {
                    [propget] HRESULT UseAppProvidedVoice([out] [retval] boolean* value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceReroutedEventArgs)]
                [uuid(115D4008-D528-454E-BB94-A50341D2C9F1)]
                interface IGuidanceReroutedEventArgs : IInspectable
                {
                    [propget] HRESULT Route([out] [retval] Windows.Services.Maps.Guidance.GuidanceRoute** result);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceRoadSegment)]
                [uuid(B32758A6-BE78-4C63-AFE7-6C2957479B3E)]
                interface IGuidanceRoadSegment : IInspectable
                {
                    [propget] HRESULT RoadName([out] [retval] HSTRING* value);
                    [propget] HRESULT ShortRoadName([out] [retval] HSTRING* value);
                    [propget] HRESULT SpeedLimit([out] [retval] DOUBLE* value);
                    [propget] HRESULT TravelTime([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propget] HRESULT Path([out] [retval] Windows.Devices.Geolocation.Geopath** value);
                    [propget] HRESULT Id([out] [retval] HSTRING* value);
                    [propget] HRESULT IsHighway([out] [retval] boolean* value);
                    [propget] HRESULT IsTunnel([out] [retval] boolean* value);
                    [propget] HRESULT IsTollRoad([out] [retval] boolean* value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 3.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceRoadSegment)]
                [uuid(2474A61D-1723-49F1-895B-47A2C4AA9C55)]
                interface IGuidanceRoadSegment2 : IInspectable
                {
                    [propget] HRESULT IsScenic([out] [retval] boolean* value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceRoadSignpost)]
                [uuid(F1A728B6-F77A-4742-8312-53300F9845F0)]
                interface IGuidanceRoadSignpost : IInspectable
                {
                    [propget] HRESULT ExitNumber([out] [retval] HSTRING* value);
                    [propget] HRESULT Exit([out] [retval] HSTRING* value);
                    [propget] HRESULT BackgroundColor([out] [retval] Windows.UI.Color* value);
                    [propget] HRESULT ForegroundColor([out] [retval] Windows.UI.Color* value);
                    [propget] HRESULT ExitDirections([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceRoute)]
                [uuid(3A14545D-801A-40BD-A286-AFB2010CCE6C)]
                interface IGuidanceRoute : IInspectable
                {
                    [propget] HRESULT Duration([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propget] HRESULT Distance([out] [retval] INT32* value);
                    [propget] HRESULT Maneuvers([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Services.Maps.Guidance.GuidanceManeuver*>** value);
                    [propget] HRESULT BoundingBox([out] [retval] Windows.Devices.Geolocation.GeoboundingBox** value);
                    [propget] HRESULT Path([out] [retval] Windows.Devices.Geolocation.Geopath** value);
                    [propget] HRESULT RoadSegments([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Services.Maps.Guidance.GuidanceRoadSegment*>** value);
                    HRESULT ConvertToMapRoute([out] [retval] Windows.Services.Maps.MapRoute** result);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceRoute)]
                [uuid(F56D926A-55ED-49C1-B09C-4B8223B50DB3)]
                interface IGuidanceRouteStatics : IInspectable
                {
                    HRESULT CanCreateFromMapRoute([in] Windows.Services.Maps.MapRoute* mapRoute, [out] [retval] boolean* result);
                    HRESULT TryCreateFromMapRoute([in] Windows.Services.Maps.MapRoute* mapRoute, [out] [retval] Windows.Services.Maps.Guidance.GuidanceRoute** result);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceTelemetryCollector)]
                [uuid(DB1F8DA5-B878-4D92-98DD-347D23D38262)]
                interface IGuidanceTelemetryCollector : IInspectable
                {
                    [propget] HRESULT Enabled([out] [retval] boolean* value);
                    [propput] HRESULT Enabled([in] boolean value);
                    HRESULT ClearLocalData();
                    [propget] HRESULT SpeedTrigger([out] [retval] DOUBLE* value);
                    [propput] HRESULT SpeedTrigger([in] DOUBLE value);
                    [propget] HRESULT UploadFrequency([out] [retval] INT32* value);
                    [propput] HRESULT UploadFrequency([in] INT32 value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceTelemetryCollector)]
                [uuid(36532047-F160-44FB-B578-94577CA05990)]
                interface IGuidanceTelemetryCollectorStatics : IInspectable
                {
                    HRESULT GetCurrent([out] [retval] Windows.Services.Maps.Guidance.GuidanceTelemetryCollector** result);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [exclusiveto(Windows.Services.Maps.Guidance.GuidanceUpdatedEventArgs)]
                [uuid(FDAC160B-9E8D-4DE3-A9FA-B06321D18DB9)]
                interface IGuidanceUpdatedEventArgs : IInspectable
                {
                    [propget] HRESULT Mode([out] [retval] Windows.Services.Maps.Guidance.GuidanceMode* value);
                    [propget] HRESULT NextManeuver([out] [retval] Windows.Services.Maps.Guidance.GuidanceManeuver** value);
                    [propget] HRESULT NextManeuverDistance([out] [retval] INT32* value);
                    [propget] HRESULT AfterNextManeuver([out] [retval] Windows.Services.Maps.Guidance.GuidanceManeuver** value);
                    [propget] HRESULT AfterNextManeuverDistance([out] [retval] INT32* value);
                    [propget] HRESULT DistanceToDestination([out] [retval] INT32* value);
                    [propget] HRESULT ElapsedDistance([out] [retval] INT32* value);
                    [propget] HRESULT ElapsedTime([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propget] HRESULT TimeToDestination([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propget] HRESULT RoadName([out] [retval] HSTRING* value);
                    [propget] HRESULT Route([out] [retval] Windows.Services.Maps.Guidance.GuidanceRoute** result);
                    [propget] HRESULT CurrentLocation([out] [retval] Windows.Services.Maps.Guidance.GuidanceMapMatchedCoordinate** result);
                    [propget] HRESULT IsNewManeuver([out] [retval] boolean* value);
                    [propget] HRESULT LaneInfo([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Services.Maps.Guidance.GuidanceLaneInfo*>** value);
                }

                [contract(Windows.Services.Maps.GuidanceContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GuidanceAudioNotificationRequestedEventArgs
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceAudioNotificationRequestedEventArgs;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GuidanceLaneInfo
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceLaneInfo;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GuidanceManeuver
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceManeuver;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GuidanceMapMatchedCoordinate
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceMapMatchedCoordinate;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Services.Maps.Guidance.IGuidanceNavigatorStatics, Windows.Services.Maps.GuidanceContract, 1.0)]
                [static(Windows.Services.Maps.Guidance.IGuidanceNavigatorStatics2, Windows.Services.Maps.GuidanceContract, 2.0)]
                [threading(both)]
                runtimeclass GuidanceNavigator
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceNavigator;
                    [contract(Windows.Services.Maps.GuidanceContract, 2.0)] interface Windows.Services.Maps.Guidance.IGuidanceNavigator2;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GuidanceReroutedEventArgs
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceReroutedEventArgs;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GuidanceRoadSegment
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceRoadSegment;
                    [contract(Windows.Services.Maps.GuidanceContract, 3.0)] interface Windows.Services.Maps.Guidance.IGuidanceRoadSegment2;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GuidanceRoadSignpost
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceRoadSignpost;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Services.Maps.Guidance.IGuidanceRouteStatics, Windows.Services.Maps.GuidanceContract, 1.0)]
                [threading(both)]
                runtimeclass GuidanceRoute
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceRoute;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Services.Maps.Guidance.IGuidanceTelemetryCollectorStatics, Windows.Services.Maps.GuidanceContract, 1.0)]
                [threading(both)]
                runtimeclass GuidanceTelemetryCollector
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceTelemetryCollector;
                }

                [contract(Windows.Services.Maps.GuidanceContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass GuidanceUpdatedEventArgs
                {
                    [default] interface Windows.Services.Maps.Guidance.IGuidanceUpdatedEventArgs;
                }
            }
        }
    }
}
