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

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 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 ForegroundText ForegroundText;

            interface ISecondaryTile;

            interface ISecondaryTileFactory;

            interface ISecondaryTileStatics;

            runtimeclass SecondaryTile;
        }
    }
}

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

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

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

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

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace StartScreen
        {
            [version(0x06020000)]
            [flags]
            enum TileOptions
            {
                None               = 0x0,
                ShowNameOnLogo     = 0x1,
                ShowNameOnWideLogo = 0x2,
                CopyOnDeployment   = 0x4
            };

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

            [uuid(9E9E51E0-2BB5-4BC0-BB8D-42B23ABCC88D)]
            [exclusiveto(Windows.UI.StartScreen.SecondaryTile)]
            [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);
                [propput] HRESULT ShortName([in] HSTRING value);
                [propget] HRESULT ShortName([out] [retval] HSTRING* value);
                [propput] HRESULT DisplayName([in] HSTRING value);
                [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                [propput] HRESULT Logo([in] Windows.Foundation.Uri* value);
                [propget] HRESULT Logo([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT SmallLogo([in] Windows.Foundation.Uri* value);
                [propget] HRESULT SmallLogo([out] [retval] Windows.Foundation.Uri** value);
                [propput] HRESULT WideLogo([in] Windows.Foundation.Uri* value);
                [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);
                [propput] HRESULT TileOptions([in] Windows.UI.StartScreen.TileOptions value);
                [propget] HRESULT TileOptions([out] [retval] Windows.UI.StartScreen.TileOptions* 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);
                [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);
            }

            [uuid(57F52CA0-51BC-4ABF-8EBF-627A0398B05A)]
            [version(0x06020000)]
            [exclusiveto(Windows.UI.StartScreen.SecondaryTile)]
            interface ISecondaryTileFactory : IInspectable
            {
                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);
                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);
            }

            [uuid(99908DAE-D051-4676-87FE-9EC242D83C74)]
            [exclusiveto(Windows.UI.StartScreen.SecondaryTile)]
            [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);
            }

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