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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.UI.idl";
import "Windows.UI.Popups.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Eui_h__)")
cpp_quote("#include <Windows.UI.h>")
cpp_quote("#endif // !defined(__windows2Eui_h__)")
cpp_quote("#if !defined(__windows2Eui2Epopups_h__)")
cpp_quote("#include <Windows.UI.Popups.h>")
cpp_quote("#endif // !defined(__windows2Eui2Epopups_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

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

        typedef struct Point Point;

        typedef struct Rect Rect;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Popups
        {
            typedef enum Placement Placement;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace StartScreen
        {
            typedef enum TileOptions TileOptions;

            typedef enum TileSize TileSize;

            typedef enum ForegroundText ForegroundText;

            interface ISecondaryTile;

            interface ISecondaryTile2;

            interface ISecondaryTileVisualElements;

            interface ISecondaryTileFactory;

            interface ISecondaryTileFactory2;

            interface ISecondaryTileStatics;

            interface IVisualElementsRequestedEventArgs;

            interface IVisualElementsRequest;

            interface IVisualElementsRequestDeferral;

            runtimeclass SecondaryTileVisualElements;

            runtimeclass SecondaryTile;

            runtimeclass VisualElementsRequestedEventArgs;

            runtimeclass VisualElementsRequest;

            runtimeclass VisualElementsRequestDeferral;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace StartScreen
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.UI.StartScreen.SecondaryTile*>;

                interface Windows.Foundation.Collections.IIterable<Windows.UI.StartScreen.SecondaryTileVisualElements*>;

                interface Windows.Foundation.Collections.IIterator<Windows.UI.StartScreen.SecondaryTile*>;

                interface Windows.Foundation.Collections.IIterator<Windows.UI.StartScreen.SecondaryTileVisualElements*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.UI.StartScreen.SecondaryTile*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.UI.StartScreen.SecondaryTileVisualElements*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.UI.StartScreen.SecondaryTile*>*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.StartScreen.SecondaryTile*, Windows.UI.StartScreen.VisualElementsRequestedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace StartScreen
        {
            [flags]
            [version(0x06020000)]
            enum TileOptions
            {
                [deprecated("TileOptions.None may be altered or unavailable for release after Windows 8.1.", deprecate, 0x06030000)]
                None               = 0x0,
                [deprecated("TileOptions.ShowNameOnLogo may be altered or unavailable for releases after Windows 8.1. Instead, use SecondaryTile.VisualElements.ShowNameOnSquare150x150Logo.", deprecate, 0x06030000)]
                ShowNameOnLogo     = 0x1,
                [deprecated("TileOptions.ShowNameWideOnLogo may be altered or unavailable for releases after Windows 8.1. Instead, use SecondaryTile.VisualElements.ShowNameOnWide310x150Logo.", deprecate, 0x06030000)]
                ShowNameOnWideLogo = 0x2,
                [deprecated("TileOptions.CopyOnDeployment may be altered or unavailable for releases after Windows 8.1. Instead, use SecondaryTile.RoamingEnabled to control roaming behavior.", deprecate, 0x06030000)]
                CopyOnDeployment   = 0x4
            };

            [version(0x06030000)]
            enum TileSize
            {
                Default       = 0,
                Square30x30   = 1,
                Square70x70   = 2,
                Square150x150 = 3,
                Wide310x150   = 4,
                Square310x310 = 5
            };

            [version(0x06020000)]
            enum ForegroundText
            {
                Dark  = 0,
                Light = 1
            };

            [exclusiveto(Windows.UI.StartScreen.SecondaryTile)]
            [uuid(9E9E51E0-2BB5-4BC0-BB8D-42B23ABCC88D)]
            [version(0x06020000)]
            interface ISecondaryTile : IInspectable
            {
                [propput] HRESULT TileId([in] HSTRING value);
                [propget] HRESULT TileId([out] [retval] HSTRING* value);
                [propput] HRESULT Arguments([in] HSTRING value);
                [propget] HRESULT Arguments([out] [retval] HSTRING* value);
                [deprecated("ShortName may be altered or unavailable for releases after Windows 8.1. Instead, use DisplayName.", deprecate, 0x06030000)] [propput] HRESULT ShortName([in] HSTRING value);
                [deprecated("ShortName may be altered or unavailable for releases after Windows 8.1. Instead, use DisplayName.", deprecate, 0x06030000)] [propget] HRESULT ShortName([out] [retval] HSTRING* value);
                [propput] HRESULT DisplayName([in] HSTRING value);
                [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                [deprecated("Logo may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.Square150x150Logo.", deprecate, 0x06030000)] [propput] HRESULT Logo([in] Windows.Foundation.Uri* value);
                [deprecated("Logo may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.Square150x150Logo.", deprecate, 0x06030000)] [propget] HRESULT Logo([out] [retval] Windows.Foundation.Uri** value);
                [deprecated("SmallLogo may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.Square30x30Logo.", deprecate, 0x06030000)] [propput] HRESULT SmallLogo([in] Windows.Foundation.Uri* value);
                [deprecated("SmallLogo may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.Square30x30Logo.", deprecate, 0x06030000)] [propget] HRESULT SmallLogo([out] [retval] Windows.Foundation.Uri** value);
                [deprecated("WideLogo may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.Wide310x150Logo.", deprecate, 0x06030000)] [propput] HRESULT WideLogo([in] Windows.Foundation.Uri* value);
                [deprecated("WideLogo may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.Wide310x150Logo.", deprecate, 0x06030000)] [propget] HRESULT WideLogo([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT LockScreenBadgeLogo([in] Windows.Foundation.Uri* value);
                [propget] HRESULT LockScreenBadgeLogo([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT LockScreenDisplayBadgeAndTileText([in] boolean value);
                [propget] HRESULT LockScreenDisplayBadgeAndTileText([out] [retval] boolean* value);
                [deprecated("TileOptions may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.ShowNameOnSquare150x150Logo, VisualElements.ShowNameOnWide310x150Logo, and RoamingEnabled.", deprecate, 0x06030000)] [propput] HRESULT TileOptions([in] Windows.UI.StartScreen.TileOptions value);
                [deprecated("TileOptions may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.ShowNameOnSquare150x150Logo, VisualElements.ShowNameOnWide310x150Logo, and RoamingEnabled.", deprecate, 0x06030000)] [propget] HRESULT TileOptions([out] [retval] Windows.UI.StartScreen.TileOptions* value);
                [deprecated("ForegroundText may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.ForegroundText.", deprecate, 0x06030000)] [propput] HRESULT ForegroundText([in] Windows.UI.StartScreen.ForegroundText value);
                [deprecated("ForegroundText may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.ForegroundText.", deprecate, 0x06030000)] [propget] HRESULT ForegroundText([out] [retval] Windows.UI.StartScreen.ForegroundText* value);
                [deprecated("BackgroundColor may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.BackgroundColor.", deprecate, 0x06030000)] [propput] HRESULT BackgroundColor([in] Windows.UI.Color value);
                [deprecated("BackgroundColor may be altered or unavailable for releases after Windows 8.1. Instead, use VisualElements.BackgroundColor.", deprecate, 0x06030000)] [propget] HRESULT BackgroundColor([out] [retval] Windows.UI.Color* value);
                [overload("RequestCreateAsync")] HRESULT RequestCreateAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("RequestCreateAsync")] HRESULT RequestCreateAsyncWithPoint([in] Windows.Foundation.Point invocationPoint, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("RequestCreateForSelectionAsync")] HRESULT RequestCreateAsyncWithRect([in] Windows.Foundation.Rect selection, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("RequestCreateForSelectionAsync")] HRESULT RequestCreateAsyncWithRectAndPlacement([in] Windows.Foundation.Rect selection, [in] Windows.UI.Popups.Placement preferredPlacement, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("RequestDeleteAsync")] HRESULT RequestDeleteAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("RequestDeleteAsync")] HRESULT RequestDeleteAsyncWithPoint([in] Windows.Foundation.Point invocationPoint, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("RequestDeleteForSelectionAsync")] HRESULT RequestDeleteAsyncWithRect([in] Windows.Foundation.Rect selection, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("RequestDeleteForSelectionAsync")] HRESULT RequestDeleteAsyncWithRectAndPlacement([in] Windows.Foundation.Rect selection, [in] Windows.UI.Popups.Placement preferredPlacement, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                HRESULT UpdateAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
            }

            [exclusiveto(Windows.UI.StartScreen.SecondaryTile)]
            [uuid(B2F6CC35-3250-4990-923C-294AB4B694DD)]
            [version(0x06030000)]
            interface ISecondaryTile2 : IInspectable
                requires
                    Windows.UI.StartScreen.ISecondaryTile
            {
                [propput] HRESULT PhoneticName([in] HSTRING value);
                [propget] HRESULT PhoneticName([out] [retval] HSTRING* value);
                [propget] HRESULT VisualElements([out] [retval] Windows.UI.StartScreen.SecondaryTileVisualElements** value);
                [propput] HRESULT RoamingEnabled([in] boolean value);
                [propget] HRESULT RoamingEnabled([out] [retval] boolean* value);
                [eventadd] HRESULT VisualElementsRequested([in] Windows.Foundation.TypedEventHandler<Windows.UI.StartScreen.SecondaryTile*, Windows.UI.StartScreen.VisualElementsRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT VisualElementsRequested([in] EventRegistrationToken token);
            }

            [exclusiveto(Windows.UI.StartScreen.SecondaryTileVisualElements)]
            [uuid(1D8DF333-815E-413F-9F50-A81DA70A96B2)]
            [version(0x06030000)]
            interface ISecondaryTileVisualElements : IInspectable
            {
                [propput] HRESULT Square30x30Logo([in] Windows.Foundation.Uri* value);
                [propget] HRESULT Square30x30Logo([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT Square70x70Logo([in] Windows.Foundation.Uri* value);
                [propget] HRESULT Square70x70Logo([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT Square150x150Logo([in] Windows.Foundation.Uri* value);
                [propget] HRESULT Square150x150Logo([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT Wide310x150Logo([in] Windows.Foundation.Uri* value);
                [propget] HRESULT Wide310x150Logo([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT Square310x310Logo([in] Windows.Foundation.Uri* value);
                [propget] HRESULT Square310x310Logo([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT ForegroundText([in] Windows.UI.StartScreen.ForegroundText value);
                [propget] HRESULT ForegroundText([out] [retval] Windows.UI.StartScreen.ForegroundText* value);
                [propput] HRESULT BackgroundColor([in] Windows.UI.Color value);
                [propget] HRESULT BackgroundColor([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT ShowNameOnSquare150x150Logo([in] boolean value);
                [propget] HRESULT ShowNameOnSquare150x150Logo([out] [retval] boolean* value);
                [propput] HRESULT ShowNameOnWide310x150Logo([in] boolean value);
                [propget] HRESULT ShowNameOnWide310x150Logo([out] [retval] boolean* value);
                [propput] HRESULT ShowNameOnSquare310x310Logo([in] boolean value);
                [propget] HRESULT ShowNameOnSquare310x310Logo([out] [retval] boolean* value);
            }

            [exclusiveto(Windows.UI.StartScreen.SecondaryTile)]
            [uuid(57F52CA0-51BC-4ABF-8EBF-627A0398B05A)]
            [version(0x06020000)]
            interface ISecondaryTileFactory : IInspectable
            {
                [deprecated("SecondaryTile(string, string, string, string, Windows.UI.StartScreen.TileOptions, Windows.Foundation.Uri) may be altered or unavailable for releases after Windows 8.1. Instead, use SecondaryTile(string, string, string, Windows.Foundation.Uri, Windows.UI.StartScreen.TileSize).", deprecate, 0x06030000)] HRESULT CreateTile([in] HSTRING tileId, [in] HSTRING shortName, [in] HSTRING displayName, [in] HSTRING arguments, [in] Windows.UI.StartScreen.TileOptions tileOptions, [in] Windows.Foundation.Uri* logoReference, [out] [retval] Windows.UI.StartScreen.SecondaryTile** value);
                [deprecated("SecondaryTile(string, string, string, string, Windows.UI.StartScreen.TileOptions, Windows.Foundation.Uri, Windows.Foundation.Uri) may be altered or unavailable for releases after Windows 8.1. Instead, use SecondaryTile(string, string, string, Windows.Foundation.Uri, Windows.UI.StartScreen.TileSize).", deprecate, 0x06030000)] HRESULT CreateWideTile([in] HSTRING tileId, [in] HSTRING shortName, [in] HSTRING displayName, [in] HSTRING arguments, [in] Windows.UI.StartScreen.TileOptions tileOptions, [in] Windows.Foundation.Uri* logoReference, [in] Windows.Foundation.Uri* wideLogoReference, [out] [retval] Windows.UI.StartScreen.SecondaryTile** value);
                HRESULT CreateWithId([in] HSTRING tileId, [out] [retval] Windows.UI.StartScreen.SecondaryTile** value);
            }

            [exclusiveto(Windows.UI.StartScreen.SecondaryTile)]
            [uuid(274B8A3B-522D-448E-9EB2-D0672AB345C8)]
            [version(0x06030000)]
            interface ISecondaryTileFactory2 : IInspectable
                requires
                    Windows.UI.StartScreen.ISecondaryTileFactory
            {
                HRESULT CreateMinimalTile([in] HSTRING tileId, [in] HSTRING displayName, [in] HSTRING arguments, [in] Windows.Foundation.Uri* square150x150Logo, [in] Windows.UI.StartScreen.TileSize desiredSize, [out] [retval] Windows.UI.StartScreen.SecondaryTile** value);
            }

            [exclusiveto(Windows.UI.StartScreen.SecondaryTile)]
            [uuid(99908DAE-D051-4676-87FE-9EC242D83C74)]
            [version(0x06020000)]
            interface ISecondaryTileStatics : IInspectable
            {
                HRESULT Exists([in] HSTRING tileId, [out] [retval] boolean* exists);
                [overload("FindAllAsync")] HRESULT FindAllAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.UI.StartScreen.SecondaryTile*>*>** operation);
                [overload("FindAllAsync")] HRESULT FindAllForApplicationAsync([in] HSTRING applicationId, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.UI.StartScreen.SecondaryTile*>*>** operation);
                HRESULT FindAllForPackageAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IVectorView<Windows.UI.StartScreen.SecondaryTile*>*>** operation);
            }

            [exclusiveto(Windows.UI.StartScreen.VisualElementsRequestedEventArgs)]
            [uuid(7B6FC982-3A0D-4ECE-AF96-CD17E1B00B2D)]
            [version(0x06030000)]
            interface IVisualElementsRequestedEventArgs : IInspectable
            {
                [propget] HRESULT Request([out] [retval] Windows.UI.StartScreen.VisualElementsRequest** value);
            }

            [exclusiveto(Windows.UI.StartScreen.VisualElementsRequest)]
            [uuid(C138333A-9308-4072-88CC-D068DB347C68)]
            [version(0x06030000)]
            interface IVisualElementsRequest : IInspectable
            {
                [propget] HRESULT VisualElements([out] [retval] Windows.UI.StartScreen.SecondaryTileVisualElements** value);
                [propget] HRESULT AlternateVisualElements([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.StartScreen.SecondaryTileVisualElements*>** value);
                [propget] HRESULT Deadline([out] [retval] Windows.Foundation.DateTime* value);
                HRESULT GetDeferral([out] [retval] Windows.UI.StartScreen.VisualElementsRequestDeferral** deferral);
            }

            [exclusiveto(Windows.UI.StartScreen.VisualElementsRequestDeferral)]
            [uuid(A1656EB0-0126-4357-8204-BD82BB2A046D)]
            [version(0x06030000)]
            interface IVisualElementsRequestDeferral : IInspectable
            {
                HRESULT Complete();
            }

            [marshaling_behavior(standard)]
            [version(0x06030000)]
            runtimeclass SecondaryTileVisualElements
            {
                [default] interface Windows.UI.StartScreen.ISecondaryTileVisualElements;
            }

            [activatable(Windows.UI.StartScreen.ISecondaryTileFactory, 0x06020000)]
            [activatable(Windows.UI.StartScreen.ISecondaryTileFactory2, 0x06030000)]
            [activatable(0x06020000)]
            [static(Windows.UI.StartScreen.ISecondaryTileStatics, 0x06020000)]
            [version(0x06020000)]
            runtimeclass SecondaryTile
            {
                [default] interface Windows.UI.StartScreen.ISecondaryTile;
                [version(0x06030000)] interface Windows.UI.StartScreen.ISecondaryTile2;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass VisualElementsRequestedEventArgs
            {
                [default] interface Windows.UI.StartScreen.IVisualElementsRequestedEventArgs;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass VisualElementsRequest
            {
                [default] interface Windows.UI.StartScreen.IVisualElementsRequest;
            }

            [marshaling_behavior(agile)]
            [version(0x06030000)]
            runtimeclass VisualElementsRequestDeferral
            {
                [default] interface Windows.UI.StartScreen.IVisualElementsRequestDeferral;
            }
        }
    }
}
