//
// 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.Storage.Streams.idl";

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

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStream;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace LockScreen
        {
            interface ILockApplicationHost;

            interface ILockApplicationHostStatics;

            interface ILockScreenBadge;

            interface ILockScreenInfo;

            interface ILockScreenUnlockingDeferral;

            interface ILockScreenUnlockingEventArgs;

            runtimeclass LockApplicationHost;

            runtimeclass LockScreenBadge;

            runtimeclass LockScreenInfo;

            runtimeclass LockScreenUnlockingDeferral;

            runtimeclass LockScreenUnlockingEventArgs;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace ApplicationModel
    {
        namespace LockScreen
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.ApplicationModel.LockScreen.LockScreenBadge*>;

                interface Windows.Foundation.Collections.IIterator<Windows.ApplicationModel.LockScreen.LockScreenBadge*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.LockScreen.LockScreenBadge*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.LockScreen.LockApplicationHost*, Windows.ApplicationModel.LockScreen.LockScreenUnlockingEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.LockScreen.LockScreenInfo*, IInspectable*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace LockScreen
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.LockScreen.LockApplicationHost)]
            [uuid(38EE31AD-D94F-4E7C-81FA-4F4436506281)]
            interface ILockApplicationHost : IInspectable
            {
                HRESULT RequestUnlock();
                [eventadd] HRESULT Unlocking([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.LockScreen.LockApplicationHost*, Windows.ApplicationModel.LockScreen.LockScreenUnlockingEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Unlocking([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.LockScreen.LockApplicationHost)]
            [uuid(F48FAB8E-23D7-4E63-96A1-666FF52D3B2C)]
            interface ILockApplicationHostStatics : IInspectable
            {
                HRESULT GetForCurrentView([out] [retval] Windows.ApplicationModel.LockScreen.LockApplicationHost** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.LockScreen.LockScreenBadge)]
            [uuid(E95105D9-2BFF-4DB0-9B4F-3824778B9C9A)]
            interface ILockScreenBadge : IInspectable
            {
                [propget] HRESULT Logo([out] [retval] Windows.Storage.Streams.IRandomAccessStream** value);
                [propget] HRESULT Glyph([out] [retval] Windows.Storage.Streams.IRandomAccessStream** value);
                [propget] HRESULT Number([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                [propget] HRESULT AutomationName([out] [retval] HSTRING* value);
                HRESULT LaunchApp();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.LockScreen.LockScreenInfo)]
            [uuid(F59AA65C-9711-4DC9-A630-95B6CB8CDAD0)]
            interface ILockScreenInfo : IInspectable
            {
                [eventadd] HRESULT LockScreenImageChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.LockScreen.LockScreenInfo*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT LockScreenImageChanged([in] EventRegistrationToken token);
                [propget] HRESULT LockScreenImage([out] [retval] Windows.Storage.Streams.IRandomAccessStream** value);
                [eventadd] HRESULT BadgesChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.LockScreen.LockScreenInfo*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BadgesChanged([in] EventRegistrationToken token);
                [propget] HRESULT Badges([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.ApplicationModel.LockScreen.LockScreenBadge*>** value);
                [eventadd] HRESULT DetailTextChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.LockScreen.LockScreenInfo*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT DetailTextChanged([in] EventRegistrationToken token);
                [propget] HRESULT DetailText([out] [retval] Windows.Foundation.Collections.IVectorView<HSTRING>** value);
                [eventadd] HRESULT AlarmIconChanged([in] Windows.Foundation.TypedEventHandler<Windows.ApplicationModel.LockScreen.LockScreenInfo*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT AlarmIconChanged([in] EventRegistrationToken token);
                [propget] HRESULT AlarmIcon([out] [retval] Windows.Storage.Streams.IRandomAccessStream** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.LockScreen.LockScreenUnlockingDeferral)]
            [uuid(7E7D1AD6-5203-43E7-9BD6-7C3947D1E3FE)]
            interface ILockScreenUnlockingDeferral : IInspectable
            {
                HRESULT Complete();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.ApplicationModel.LockScreen.LockScreenUnlockingEventArgs)]
            [uuid(44E6C007-75FB-4ABB-9F8B-824748900C71)]
            interface ILockScreenUnlockingEventArgs : IInspectable
            {
                HRESULT GetDeferral([out] [retval] Windows.ApplicationModel.LockScreen.LockScreenUnlockingDeferral** deferral);
                [propget] HRESULT Deadline([out] [retval] Windows.Foundation.DateTime* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.ApplicationModel.LockScreen.ILockApplicationHostStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            runtimeclass LockApplicationHost
            {
                [default] interface Windows.ApplicationModel.LockScreen.ILockApplicationHost;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass LockScreenBadge
            {
                [default] interface Windows.ApplicationModel.LockScreen.ILockScreenBadge;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass LockScreenInfo
            {
                [default] interface Windows.ApplicationModel.LockScreen.ILockScreenInfo;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass LockScreenUnlockingDeferral
            {
                [default] interface Windows.ApplicationModel.LockScreen.ILockScreenUnlockingDeferral;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass LockScreenUnlockingEventArgs
            {
                [default] interface Windows.ApplicationModel.LockScreen.ILockScreenUnlockingEventArgs;
            }
        }
    }
}
