//
// 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";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Perception
    {
        interface IPerceptionTimestamp;

        interface IPerceptionTimestamp2;

        interface IPerceptionTimestampHelperStatics;

        interface IPerceptionTimestampHelperStatics2;

        runtimeclass PerceptionTimestamp;

        runtimeclass PerceptionTimestampHelper;
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace Perception
    {
        [contract(Windows.Foundation.UniversalApiContract, 2.0)]
        [exclusiveto(Windows.Perception.PerceptionTimestamp)]
        [uuid(87C24804-A22E-4ADB-BA26-D78EF639BCF4)]
        interface IPerceptionTimestamp : IInspectable
        {
            [propget] HRESULT TargetTime([out] [retval] Windows.Foundation.DateTime* value);
            [propget] HRESULT PredictionAmount([out] [retval] Windows.Foundation.TimeSpan* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 7.0)]
        [exclusiveto(Windows.Perception.PerceptionTimestamp)]
        [uuid(E354B7ED-2BD1-41B7-9ED0-74A15C354537)]
        interface IPerceptionTimestamp2 : IInspectable
        {
            [propget] HRESULT SystemRelativeTargetTime([out] [retval] Windows.Foundation.TimeSpan* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 2.0)]
        [exclusiveto(Windows.Perception.PerceptionTimestampHelper)]
        [uuid(47A611D4-A9DF-4EDC-855D-F4D339D967AC)]
        interface IPerceptionTimestampHelperStatics : IInspectable
        {
            HRESULT FromHistoricalTargetTime([in] Windows.Foundation.DateTime targetTime, [out] [retval] Windows.Perception.PerceptionTimestamp** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 7.0)]
        [exclusiveto(Windows.Perception.PerceptionTimestampHelper)]
        [uuid(73D1A7FE-3FB9-4571-87D4-3C920A5E86EB)]
        interface IPerceptionTimestampHelperStatics2 : IInspectable
        {
            HRESULT FromSystemRelativeTargetTime([in] Windows.Foundation.TimeSpan targetTime, [out] [retval] Windows.Perception.PerceptionTimestamp** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 2.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass PerceptionTimestamp
        {
            [default] interface Windows.Perception.IPerceptionTimestamp;
            [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Perception.IPerceptionTimestamp2;
        }

        [contract(Windows.Foundation.UniversalApiContract, 2.0)]
        [marshaling_behavior(agile)]
        [static(Windows.Perception.IPerceptionTimestampHelperStatics, Windows.Foundation.UniversalApiContract, 2.0)]
        [static(Windows.Perception.IPerceptionTimestampHelperStatics2, Windows.Foundation.UniversalApiContract, 7.0)]
        [threading(both)]
        runtimeclass PerceptionTimestampHelper
        {
        }
    }
}
