//
// 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.Haptics.idl";
import "Windows.Devices.Power.idl";
import "Windows.Foundation.Numerics.idl";
import "Windows.Perception.idl";
import "Windows.Perception.People.idl";
import "Windows.Perception.Spatial.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace Devices
    {
        namespace Haptics
        {
            runtimeclass SimpleHapticsController;
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Power
        {
            runtimeclass BatteryReport;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        namespace Numerics
        {
            typedef struct Quaternion Quaternion;

            typedef struct Vector3 Vector3;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Perception
    {
        namespace People
        {
            runtimeclass EyesPose;

            runtimeclass HandMeshObserver;

            runtimeclass HandPose;

            runtimeclass HeadPose;
        }
    }
}
namespace Windows
{
    namespace Perception
    {
        runtimeclass PerceptionTimestamp;
    }
}
namespace Windows
{
    namespace Perception
    {
        namespace Spatial
        {
            runtimeclass SpatialCoordinateSystem;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStreamWithContentType;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Spatial
            {
                typedef enum SpatialGestureSettings SpatialGestureSettings;

                typedef enum SpatialInteractionPressKind SpatialInteractionPressKind;

                typedef enum SpatialInteractionSourceHandedness SpatialInteractionSourceHandedness;

                typedef enum SpatialInteractionSourceKind SpatialInteractionSourceKind;

                typedef enum SpatialInteractionSourcePositionAccuracy SpatialInteractionSourcePositionAccuracy;

                interface ISpatialGestureRecognizer;

                interface ISpatialGestureRecognizerFactory;

                interface ISpatialHoldCanceledEventArgs;

                interface ISpatialHoldCompletedEventArgs;

                interface ISpatialHoldStartedEventArgs;

                interface ISpatialInteraction;

                interface ISpatialInteractionController;

                interface ISpatialInteractionController2;

                interface ISpatialInteractionController3;

                interface ISpatialInteractionControllerProperties;

                interface ISpatialInteractionDetectedEventArgs;

                interface ISpatialInteractionDetectedEventArgs2;

                interface ISpatialInteractionManager;

                interface ISpatialInteractionManagerStatics;

                interface ISpatialInteractionManagerStatics2;

                interface ISpatialInteractionSource;

                interface ISpatialInteractionSource2;

                interface ISpatialInteractionSource3;

                interface ISpatialInteractionSource4;

                interface ISpatialInteractionSourceEventArgs;

                interface ISpatialInteractionSourceEventArgs2;

                interface ISpatialInteractionSourceLocation;

                interface ISpatialInteractionSourceLocation2;

                interface ISpatialInteractionSourceLocation3;

                interface ISpatialInteractionSourceProperties;

                interface ISpatialInteractionSourceState;

                interface ISpatialInteractionSourceState2;

                interface ISpatialInteractionSourceState3;

                interface ISpatialManipulationCanceledEventArgs;

                interface ISpatialManipulationCompletedEventArgs;

                interface ISpatialManipulationDelta;

                interface ISpatialManipulationStartedEventArgs;

                interface ISpatialManipulationUpdatedEventArgs;

                interface ISpatialNavigationCanceledEventArgs;

                interface ISpatialNavigationCompletedEventArgs;

                interface ISpatialNavigationStartedEventArgs;

                interface ISpatialNavigationUpdatedEventArgs;

                interface ISpatialPointerInteractionSourcePose;

                interface ISpatialPointerInteractionSourcePose2;

                interface ISpatialPointerPose;

                interface ISpatialPointerPose2;

                interface ISpatialPointerPose3;

                interface ISpatialPointerPoseStatics;

                interface ISpatialRecognitionEndedEventArgs;

                interface ISpatialRecognitionStartedEventArgs;

                interface ISpatialTappedEventArgs;

                runtimeclass SpatialGestureRecognizer;

                runtimeclass SpatialHoldCanceledEventArgs;

                runtimeclass SpatialHoldCompletedEventArgs;

                runtimeclass SpatialHoldStartedEventArgs;

                runtimeclass SpatialInteraction;

                runtimeclass SpatialInteractionController;

                runtimeclass SpatialInteractionControllerProperties;

                runtimeclass SpatialInteractionDetectedEventArgs;

                runtimeclass SpatialInteractionManager;

                runtimeclass SpatialInteractionSource;

                runtimeclass SpatialInteractionSourceEventArgs;

                runtimeclass SpatialInteractionSourceLocation;

                runtimeclass SpatialInteractionSourceProperties;

                runtimeclass SpatialInteractionSourceState;

                runtimeclass SpatialManipulationCanceledEventArgs;

                runtimeclass SpatialManipulationCompletedEventArgs;

                runtimeclass SpatialManipulationDelta;

                runtimeclass SpatialManipulationStartedEventArgs;

                runtimeclass SpatialManipulationUpdatedEventArgs;

                runtimeclass SpatialNavigationCanceledEventArgs;

                runtimeclass SpatialNavigationCompletedEventArgs;

                runtimeclass SpatialNavigationStartedEventArgs;

                runtimeclass SpatialNavigationUpdatedEventArgs;

                runtimeclass SpatialPointerInteractionSourcePose;

                runtimeclass SpatialPointerPose;

                runtimeclass SpatialRecognitionEndedEventArgs;

                runtimeclass SpatialRecognitionStartedEventArgs;

                runtimeclass SpatialTappedEventArgs;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Spatial
            {
                declare
                {
                    interface Windows.Foundation.Collections.IIterable<Windows.UI.Input.Spatial.SpatialInteractionSourceState*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.UI.Input.Spatial.SpatialInteractionSourceState*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Spatial.SpatialInteractionSourceState*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialHoldCanceledEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialHoldCompletedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialHoldStartedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialManipulationCanceledEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialManipulationCompletedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialManipulationStartedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialManipulationUpdatedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialNavigationCanceledEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialNavigationCompletedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialNavigationStartedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialNavigationUpdatedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialRecognitionEndedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialRecognitionStartedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialTappedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialInteractionManager*, Windows.UI.Input.Spatial.SpatialInteractionDetectedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialInteractionManager*, Windows.UI.Input.Spatial.SpatialInteractionSourceEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Input
        {
            namespace Spatial
            {
                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [flags]
                enum SpatialGestureSettings
                {
                    None                  = 0x0,
                    Tap                   = 0x1,
                    DoubleTap             = 0x2,
                    Hold                  = 0x4,
                    ManipulationTranslate = 0x8,
                    NavigationX           = 0x10,
                    NavigationY           = 0x20,
                    NavigationZ           = 0x40,
                    NavigationRailsX      = 0x80,
                    NavigationRailsY      = 0x100,
                    NavigationRailsZ      = 0x200
                };

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                enum SpatialInteractionPressKind
                {
                    None       = 0,
                    Select     = 1,
                    Menu       = 2,
                    Grasp      = 3,
                    Touchpad   = 4,
                    Thumbstick = 5
                };

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                enum SpatialInteractionSourceHandedness
                {
                    Unspecified = 0,
                    Left        = 1,
                    Right       = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                enum SpatialInteractionSourceKind
                {
                    Other      = 0,
                    Hand       = 1,
                    Voice      = 2,
                    Controller = 3
                };

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                enum SpatialInteractionSourcePositionAccuracy
                {
                    High        = 0,
                    Approximate = 1
                };

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialGestureRecognizer)]
                [uuid(71605BCC-0C35-4673-ADBD-CC04CAA6EF45)]
                interface ISpatialGestureRecognizer : IInspectable
                {
                    [eventadd] HRESULT RecognitionStarted([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialRecognitionStartedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT RecognitionStarted([in] EventRegistrationToken token);
                    [eventadd] HRESULT RecognitionEnded([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialRecognitionEndedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT RecognitionEnded([in] EventRegistrationToken token);
                    [eventadd] HRESULT Tapped([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialTappedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT Tapped([in] EventRegistrationToken token);
                    [eventadd] HRESULT HoldStarted([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialHoldStartedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT HoldStarted([in] EventRegistrationToken token);
                    [eventadd] HRESULT HoldCompleted([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialHoldCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT HoldCompleted([in] EventRegistrationToken token);
                    [eventadd] HRESULT HoldCanceled([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialHoldCanceledEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT HoldCanceled([in] EventRegistrationToken token);
                    [eventadd] HRESULT ManipulationStarted([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialManipulationStartedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT ManipulationStarted([in] EventRegistrationToken token);
                    [eventadd] HRESULT ManipulationUpdated([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialManipulationUpdatedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT ManipulationUpdated([in] EventRegistrationToken token);
                    [eventadd] HRESULT ManipulationCompleted([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialManipulationCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT ManipulationCompleted([in] EventRegistrationToken token);
                    [eventadd] HRESULT ManipulationCanceled([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialManipulationCanceledEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT ManipulationCanceled([in] EventRegistrationToken token);
                    [eventadd] HRESULT NavigationStarted([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialNavigationStartedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT NavigationStarted([in] EventRegistrationToken token);
                    [eventadd] HRESULT NavigationUpdated([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialNavigationUpdatedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT NavigationUpdated([in] EventRegistrationToken token);
                    [eventadd] HRESULT NavigationCompleted([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialNavigationCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT NavigationCompleted([in] EventRegistrationToken token);
                    [eventadd] HRESULT NavigationCanceled([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialGestureRecognizer*, Windows.UI.Input.Spatial.SpatialNavigationCanceledEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT NavigationCanceled([in] EventRegistrationToken token);
                    HRESULT CaptureInteraction([in] Windows.UI.Input.Spatial.SpatialInteraction* interaction);
                    HRESULT CancelPendingGestures();
                    HRESULT TrySetGestureSettings([in] Windows.UI.Input.Spatial.SpatialGestureSettings settings, [out] [retval] boolean* succeeded);
                    [propget] HRESULT GestureSettings([out] [retval] Windows.UI.Input.Spatial.SpatialGestureSettings* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialGestureRecognizer)]
                [uuid(77214186-57B9-3150-8382-698B24E264D0)]
                interface ISpatialGestureRecognizerFactory : IInspectable
                {
                    HRESULT Create([in] Windows.UI.Input.Spatial.SpatialGestureSettings settings, [out] [retval] Windows.UI.Input.Spatial.SpatialGestureRecognizer** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialHoldCanceledEventArgs)]
                [uuid(5DFCB667-4CAA-4093-8C35-B601A839F31B)]
                interface ISpatialHoldCanceledEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialHoldCompletedEventArgs)]
                [uuid(3F64470B-4CFD-43DA-8DC4-E64552173971)]
                interface ISpatialHoldCompletedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialHoldStartedEventArgs)]
                [uuid(8E343D79-ACB6-4144-8615-2CFBA8A3CB3F)]
                interface ISpatialHoldStartedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    HRESULT TryGetPointerPose([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialPointerPose** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteraction)]
                [uuid(FC967639-88E6-4646-9112-4344AAEC9DFA)]
                interface ISpatialInteraction : IInspectable
                {
                    [propget] HRESULT SourceState([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceState** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionController)]
                [uuid(5F0E5BA3-0954-4E97-86C5-E7F30B114DFD)]
                interface ISpatialInteractionController : IInspectable
                {
                    [propget] HRESULT HasTouchpad([out] [retval] boolean* value);
                    [propget] HRESULT HasThumbstick([out] [retval] boolean* value);
                    [propget] HRESULT SimpleHapticsController([out] [retval] Windows.Devices.Haptics.SimpleHapticsController** value);
                    [propget] HRESULT VendorId([out] [retval] UINT16* value);
                    [propget] HRESULT ProductId([out] [retval] UINT16* value);
                    [propget] HRESULT Version([out] [retval] UINT16* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionController)]
                [uuid(35B6D924-C7A2-49B7-B72E-5436B2FB8F9C)]
                interface ISpatialInteractionController2 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialInteractionController
                {
                    HRESULT TryGetRenderableModelAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStreamWithContentType*>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 6.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionController)]
                [uuid(628466A0-9D91-4A0B-888D-165E670A8CD5)]
                interface ISpatialInteractionController3 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialInteractionController2,
                        Windows.UI.Input.Spatial.ISpatialInteractionController
                {
                    HRESULT TryGetBatteryReport([out] [retval] Windows.Devices.Power.BatteryReport** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionControllerProperties)]
                [uuid(61056FB1-7BA9-4E35-B93F-9272CBA9B28B)]
                interface ISpatialInteractionControllerProperties : IInspectable
                {
                    [propget] HRESULT IsTouchpadTouched([out] [retval] boolean* value);
                    [propget] HRESULT IsTouchpadPressed([out] [retval] boolean* value);
                    [propget] HRESULT IsThumbstickPressed([out] [retval] boolean* value);
                    [propget] HRESULT ThumbstickX([out] [retval] DOUBLE* value);
                    [propget] HRESULT ThumbstickY([out] [retval] DOUBLE* value);
                    [propget] HRESULT TouchpadX([out] [retval] DOUBLE* value);
                    [propget] HRESULT TouchpadY([out] [retval] DOUBLE* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionDetectedEventArgs)]
                [uuid(075878E4-5961-3B41-9DFB-CEA5D89CC38A)]
                interface ISpatialInteractionDetectedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    HRESULT TryGetPointerPose([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialPointerPose** value);
                    [propget] HRESULT Interaction([out] [retval] Windows.UI.Input.Spatial.SpatialInteraction** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionDetectedEventArgs)]
                [uuid(7B263E93-5F13-419C-97D5-834678266AA6)]
                interface ISpatialInteractionDetectedEventArgs2 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialInteractionDetectedEventArgs
                {
                    [propget] HRESULT InteractionSource([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSource** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionManager)]
                [uuid(32A64EA8-A15A-3995-B8BD-80513CB5ADEF)]
                interface ISpatialInteractionManager : IInspectable
                {
                    [eventadd] HRESULT SourceDetected([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialInteractionManager*, Windows.UI.Input.Spatial.SpatialInteractionSourceEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SourceDetected([in] EventRegistrationToken token);
                    [eventadd] HRESULT SourceLost([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialInteractionManager*, Windows.UI.Input.Spatial.SpatialInteractionSourceEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SourceLost([in] EventRegistrationToken token);
                    [eventadd] HRESULT SourceUpdated([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialInteractionManager*, Windows.UI.Input.Spatial.SpatialInteractionSourceEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SourceUpdated([in] EventRegistrationToken token);
                    [eventadd] HRESULT SourcePressed([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialInteractionManager*, Windows.UI.Input.Spatial.SpatialInteractionSourceEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SourcePressed([in] EventRegistrationToken token);
                    [eventadd] HRESULT SourceReleased([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialInteractionManager*, Windows.UI.Input.Spatial.SpatialInteractionSourceEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SourceReleased([in] EventRegistrationToken token);
                    [eventadd] HRESULT InteractionDetected([in] Windows.Foundation.TypedEventHandler<Windows.UI.Input.Spatial.SpatialInteractionManager*, Windows.UI.Input.Spatial.SpatialInteractionDetectedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT InteractionDetected([in] EventRegistrationToken token);
                    HRESULT GetDetectedSourcesAtTimestamp([in] Windows.Perception.PerceptionTimestamp* timeStamp, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Input.Spatial.SpatialInteractionSourceState*>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionManager)]
                [uuid(00E31FA6-8CA2-30BF-91FE-D9CB4A008990)]
                interface ISpatialInteractionManagerStatics : IInspectable
                {
                    HRESULT GetForCurrentView([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionManager** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 8.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionManager)]
                [uuid(93F16C52-B88A-5929-8D7C-48CB948B081C)]
                interface ISpatialInteractionManagerStatics2 : IInspectable
                {
                    HRESULT IsSourceKindSupported([in] Windows.UI.Input.Spatial.SpatialInteractionSourceKind kind, [out] [retval] boolean* result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSource)]
                [uuid(FB5433BA-B0B3-3148-9F3B-E9F5DE568F5D)]
                interface ISpatialInteractionSource : IInspectable
                {
                    [propget] HRESULT Id([out] [retval] UINT32* value);
                    [propget] HRESULT Kind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSource)]
                [uuid(E4C5B70C-0470-4028-88C0-A0EB44D34EFE)]
                interface ISpatialInteractionSource2 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialInteractionSource
                {
                    [propget] HRESULT IsPointingSupported([out] [retval] boolean* value);
                    [propget] HRESULT IsMenuSupported([out] [retval] boolean* value);
                    [propget] HRESULT IsGraspSupported([out] [retval] boolean* value);
                    [propget] HRESULT Controller([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionController** value);
                    HRESULT TryGetStateAtTimestamp([in] Windows.Perception.PerceptionTimestamp* timestamp, [out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceState** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSource)]
                [uuid(0406D9F9-9AFD-44F9-85DC-700023A962E3)]
                interface ISpatialInteractionSource3 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialInteractionSource2,
                        Windows.UI.Input.Spatial.ISpatialInteractionSource
                {
                    [propget] HRESULT Handedness([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceHandedness* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 8.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSource)]
                [uuid(0073BC4D-DF66-5A91-A2BA-CEA3E5C58A19)]
                interface ISpatialInteractionSource4 : IInspectable
                {
                    HRESULT TryCreateHandMeshObserver([out] [retval] Windows.Perception.People.HandMeshObserver** result);
                    HRESULT TryCreateHandMeshObserverAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Perception.People.HandMeshObserver*>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSourceEventArgs)]
                [uuid(23B786CF-EC23-3979-B27C-EB0E12FEB7C7)]
                interface ISpatialInteractionSourceEventArgs : IInspectable
                {
                    [propget] HRESULT State([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceState** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSourceEventArgs)]
                [uuid(D8B4B467-E648-4D52-AB49-E0D227199F63)]
                interface ISpatialInteractionSourceEventArgs2 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialInteractionSourceEventArgs
                {
                    [propget] HRESULT PressKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionPressKind* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSourceLocation)]
                [uuid(EA4696C4-7E8B-30CA-BCC5-C77189CEA30A)]
                interface ISpatialInteractionSourceLocation : IInspectable
                {
                    [propget] HRESULT Position([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Numerics.Vector3>** value);
                    [propget] HRESULT Velocity([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Numerics.Vector3>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSourceLocation)]
                [uuid(4C671045-3917-40FC-A9AC-31C9CF5FF91B)]
                interface ISpatialInteractionSourceLocation2 : IInspectable
                {
                    [propget] HRESULT Orientation([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Numerics.Quaternion>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSourceLocation)]
                [uuid(6702E65E-E915-4CFB-9C1B-0538EFC86687)]
                interface ISpatialInteractionSourceLocation3 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialInteractionSourceLocation2
                {
                    [propget] HRESULT PositionAccuracy([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourcePositionAccuracy* value);
                    [propget] HRESULT AngularVelocity([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Numerics.Vector3>** value);
                    [propget] HRESULT SourcePointerPose([out] [retval] Windows.UI.Input.Spatial.SpatialPointerInteractionSourcePose** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSourceProperties)]
                [uuid(05604542-3EF7-3222-9F53-63C9CB7E3BC7)]
                interface ISpatialInteractionSourceProperties : IInspectable
                {
                    HRESULT TryGetSourceLossMitigationDirection([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.Foundation.IReference<Windows.Foundation.Numerics.Vector3>** value);
                    [propget] HRESULT SourceLossRisk([out] [retval] DOUBLE* value);
                    HRESULT TryGetLocation([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceLocation** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSourceState)]
                [uuid(D5C475EF-4B63-37EC-98B9-9FC652B9D2F2)]
                interface ISpatialInteractionSourceState : IInspectable
                {
                    [propget] HRESULT Source([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSource** value);
                    [propget] HRESULT Properties([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceProperties** value);
                    [propget] HRESULT IsPressed([out] [retval] boolean* value);
                    [propget] HRESULT Timestamp([out] [retval] Windows.Perception.PerceptionTimestamp** value);
                    HRESULT TryGetPointerPose([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialPointerPose** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSourceState)]
                [uuid(45F6D0BD-1773-492E-9BA3-8AC1CBE77C08)]
                interface ISpatialInteractionSourceState2 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialInteractionSourceState
                {
                    [propget] HRESULT IsSelectPressed([out] [retval] boolean* value);
                    [propget] HRESULT IsMenuPressed([out] [retval] boolean* value);
                    [propget] HRESULT IsGrasped([out] [retval] boolean* value);
                    [propget] HRESULT SelectPressedValue([out] [retval] DOUBLE* value);
                    [propget] HRESULT ControllerProperties([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionControllerProperties** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 8.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialInteractionSourceState)]
                [uuid(F2F00BC2-BD2B-4A01-A8FB-323E0158527C)]
                interface ISpatialInteractionSourceState3 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialInteractionSourceState2,
                        Windows.UI.Input.Spatial.ISpatialInteractionSourceState
                {
                    HRESULT TryGetHandPose([out] [retval] Windows.Perception.People.HandPose** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialManipulationCanceledEventArgs)]
                [uuid(2D40D1CB-E7DA-4220-B0BF-819301674780)]
                interface ISpatialManipulationCanceledEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialManipulationCompletedEventArgs)]
                [uuid(05086802-F301-4343-9250-2FBAA5F87A37)]
                interface ISpatialManipulationCompletedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    HRESULT TryGetCumulativeDelta([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialManipulationDelta** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialManipulationDelta)]
                [uuid(A7EC967A-D123-3A81-A15B-992923DCBE91)]
                interface ISpatialManipulationDelta : IInspectable
                {
                    [propget] HRESULT Translation([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialManipulationStartedEventArgs)]
                [uuid(A1D6BBCE-42A5-377B-ADA6-D28E3D384737)]
                interface ISpatialManipulationStartedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    HRESULT TryGetPointerPose([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialPointerPose** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialManipulationUpdatedEventArgs)]
                [uuid(5F230B9B-60C6-4DC6-BDC9-9F4A6F15FE49)]
                interface ISpatialManipulationUpdatedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    HRESULT TryGetCumulativeDelta([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialManipulationDelta** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialNavigationCanceledEventArgs)]
                [uuid(CE503EDC-E8A5-46F0-92D4-3C122B35112A)]
                interface ISpatialNavigationCanceledEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialNavigationCompletedEventArgs)]
                [uuid(012E80B7-AF3B-42C2-9E41-BAAA0E721F3A)]
                interface ISpatialNavigationCompletedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    [propget] HRESULT NormalizedOffset([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialNavigationStartedEventArgs)]
                [uuid(754A348A-FB64-4656-8EBD-9DEECAAFE475)]
                interface ISpatialNavigationStartedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    HRESULT TryGetPointerPose([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialPointerPose** value);
                    [propget] HRESULT IsNavigatingX([out] [retval] boolean* value);
                    [propget] HRESULT IsNavigatingY([out] [retval] boolean* value);
                    [propget] HRESULT IsNavigatingZ([out] [retval] boolean* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialNavigationUpdatedEventArgs)]
                [uuid(9B713FD7-839D-4A74-8732-45466FC044B5)]
                interface ISpatialNavigationUpdatedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    [propget] HRESULT NormalizedOffset([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialPointerInteractionSourcePose)]
                [uuid(A7104307-2C2B-4D3A-92A7-80CED7C4A0D0)]
                interface ISpatialPointerInteractionSourcePose : IInspectable
                {
                    [propget] HRESULT Position([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                    [propget] HRESULT ForwardDirection([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                    [propget] HRESULT UpDirection([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialPointerInteractionSourcePose)]
                [uuid(ECCD86B8-52DB-469F-9E3F-80C47F74BCE9)]
                interface ISpatialPointerInteractionSourcePose2 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialPointerInteractionSourcePose
                {
                    [propget] HRESULT Orientation([out] [retval] Windows.Foundation.Numerics.Quaternion* value);
                    [propget] HRESULT PositionAccuracy([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourcePositionAccuracy* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialPointerPose)]
                [uuid(6953A42E-C17E-357D-97A1-7269D0ED2D10)]
                interface ISpatialPointerPose : IInspectable
                {
                    [propget] HRESULT Timestamp([out] [retval] Windows.Perception.PerceptionTimestamp** value);
                    [propget] HRESULT Head([out] [retval] Windows.Perception.People.HeadPose** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialPointerPose)]
                [uuid(9D202B17-954E-4E0C-96D1-B6790B6FC2FD)]
                interface ISpatialPointerPose2 : IInspectable
                    requires
                        Windows.UI.Input.Spatial.ISpatialPointerPose
                {
                    HRESULT TryGetInteractionSourcePose([in] Windows.UI.Input.Spatial.SpatialInteractionSource* source, [out] [retval] Windows.UI.Input.Spatial.SpatialPointerInteractionSourcePose** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 8.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialPointerPose)]
                [uuid(6342F3F0-EC49-5B4B-B8D1-D16CBB16BE84)]
                interface ISpatialPointerPose3 : IInspectable
                {
                    [propget] HRESULT Eyes([out] [retval] Windows.Perception.People.EyesPose** value);
                    [propget] HRESULT IsHeadCapturedBySystem([out] [retval] boolean* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialPointerPose)]
                [uuid(A25591A9-ACA1-3EE0-9816-785CFB2E3FB8)]
                interface ISpatialPointerPoseStatics : IInspectable
                {
                    HRESULT TryGetAtTimestamp([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [in] Windows.Perception.PerceptionTimestamp* timestamp, [out] [retval] Windows.UI.Input.Spatial.SpatialPointerPose** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialRecognitionEndedEventArgs)]
                [uuid(0E35F5CB-3F75-43F3-AC81-D1DC2DF9B1FB)]
                interface ISpatialRecognitionEndedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialRecognitionStartedEventArgs)]
                [uuid(24DA128F-0008-4A6D-AA50-2A76F9CFB264)]
                interface ISpatialRecognitionStartedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    HRESULT TryGetPointerPose([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialPointerPose** value);
                    HRESULT IsGesturePossible([in] Windows.UI.Input.Spatial.SpatialGestureSettings gesture, [out] [retval] boolean* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Input.Spatial.SpatialTappedEventArgs)]
                [uuid(296D83DE-F444-4AA1-B2BF-9DC88D567DA6)]
                interface ISpatialTappedEventArgs : IInspectable
                {
                    [propget] HRESULT InteractionSourceKind([out] [retval] Windows.UI.Input.Spatial.SpatialInteractionSourceKind* value);
                    HRESULT TryGetPointerPose([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.UI.Input.Spatial.SpatialPointerPose** value);
                    [propget] HRESULT TapCount([out] [retval] UINT32* value);
                }

                [activatable(Windows.UI.Input.Spatial.ISpatialGestureRecognizerFactory, Windows.Foundation.UniversalApiContract, 2.0)]
                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialGestureRecognizer
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialGestureRecognizer;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialHoldCanceledEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialHoldCanceledEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialHoldCompletedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialHoldCompletedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialHoldStartedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialHoldStartedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialInteraction
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteraction;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialInteractionController
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteractionController;
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionController2;
                    [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionController3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialInteractionControllerProperties
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteractionControllerProperties;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialInteractionDetectedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteractionDetectedEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionDetectedEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Input.Spatial.ISpatialInteractionManagerStatics, Windows.Foundation.UniversalApiContract, 2.0)]
                [static(Windows.UI.Input.Spatial.ISpatialInteractionManagerStatics2, Windows.Foundation.UniversalApiContract, 8.0)]
                [threading(both)]
                runtimeclass SpatialInteractionManager
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteractionManager;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialInteractionSource
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteractionSource;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionSource2;
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionSource3;
                    [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionSource4;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialInteractionSourceEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteractionSourceEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionSourceEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialInteractionSourceLocation
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteractionSourceLocation;
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionSourceLocation2;
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionSourceLocation3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialInteractionSourceProperties
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteractionSourceProperties;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialInteractionSourceState
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialInteractionSourceState;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionSourceState2;
                    [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.UI.Input.Spatial.ISpatialInteractionSourceState3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialManipulationCanceledEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialManipulationCanceledEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialManipulationCompletedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialManipulationCompletedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialManipulationDelta
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialManipulationDelta;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialManipulationStartedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialManipulationStartedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialManipulationUpdatedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialManipulationUpdatedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialNavigationCanceledEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialNavigationCanceledEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialNavigationCompletedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialNavigationCompletedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialNavigationStartedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialNavigationStartedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialNavigationUpdatedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialNavigationUpdatedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialPointerInteractionSourcePose
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialPointerInteractionSourcePose;
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.UI.Input.Spatial.ISpatialPointerInteractionSourcePose2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Input.Spatial.ISpatialPointerPoseStatics, Windows.Foundation.UniversalApiContract, 2.0)]
                [threading(both)]
                runtimeclass SpatialPointerPose
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialPointerPose;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Input.Spatial.ISpatialPointerPose2;
                    [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.UI.Input.Spatial.ISpatialPointerPose3;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialRecognitionEndedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialRecognitionEndedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialRecognitionStartedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialRecognitionStartedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass SpatialTappedEventArgs
                {
                    [default] interface Windows.UI.Input.Spatial.ISpatialTappedEventArgs;
                }
            }
        }
    }
}
