//
// 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.Storage.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(__windows2Estorage_h__)")
cpp_quote("#include <Windows.Storage.h>")
cpp_quote("#endif // !defined(__windows2Estorage_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 Storage
    {
        interface IStorageFile;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Popups
        {
            typedef enum Placement Placement;
        }
    }
}
namespace Windows
{
    namespace System
    {
        typedef enum ProcessorArchitecture ProcessorArchitecture;

        typedef enum VirtualKeyModifiers VirtualKeyModifiers;

        typedef enum VirtualKey VirtualKey;

        interface ILauncherUIOptions;

        interface ILauncherOptions;

        interface ILauncherStatics;

        runtimeclass LauncherUIOptions;

        runtimeclass LauncherOptions;

        runtimeclass Launcher;
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace System
    {
        [version(0x06020000)]
        enum ProcessorArchitecture
        {
            X86     = 0,
            Arm     = 5,
            X64     = 9,
            Neutral = 11,
            Unknown = 65535
        };

        [version(0x06020000)]
        [flags]
        enum VirtualKeyModifiers
        {
            None    = 0x0,
            Control = 0x1,
            Menu    = 0x2,
            Shift   = 0x4,
            Windows = 0x8
        };

        [version(0x06020000)]
        enum VirtualKey
        {
            None          = 0,
            LeftButton    = 1,
            RightButton   = 2,
            Cancel        = 3,
            MiddleButton  = 4,
            XButton1      = 5,
            XButton2      = 6,
            Back          = 8,
            Tab           = 9,
            Clear         = 12,
            Enter         = 13,
            Shift         = 16,
            Control       = 17,
            Menu          = 18,
            Pause         = 19,
            CapitalLock   = 20,
            Kana          = 21,
            Hangul        = 21,
            Junja         = 23,
            Final         = 24,
            Hanja         = 25,
            Kanji         = 25,
            Escape        = 27,
            Convert       = 28,
            NonConvert    = 29,
            Accept        = 30,
            ModeChange    = 31,
            Space         = 32,
            PageUp        = 33,
            PageDown      = 34,
            End           = 35,
            Home          = 36,
            Left          = 37,
            Up            = 38,
            Right         = 39,
            Down          = 40,
            Select        = 41,
            Print         = 42,
            Execute       = 43,
            Snapshot      = 44,
            Insert        = 45,
            Delete        = 46,
            Help          = 47,
            Number0       = 48,
            Number1       = 49,
            Number2       = 50,
            Number3       = 51,
            Number4       = 52,
            Number5       = 53,
            Number6       = 54,
            Number7       = 55,
            Number8       = 56,
            Number9       = 57,
            A             = 65,
            B             = 66,
            C             = 67,
            D             = 68,
            E             = 69,
            F             = 70,
            G             = 71,
            H             = 72,
            I             = 73,
            J             = 74,
            K             = 75,
            L             = 76,
            M             = 77,
            N             = 78,
            O             = 79,
            P             = 80,
            Q             = 81,
            R             = 82,
            S             = 83,
            T             = 84,
            U             = 85,
            V             = 86,
            W             = 87,
            X             = 88,
            Y             = 89,
            Z             = 90,
            LeftWindows   = 91,
            RightWindows  = 92,
            Application   = 93,
            Sleep         = 95,
            NumberPad0    = 96,
            NumberPad1    = 97,
            NumberPad2    = 98,
            NumberPad3    = 99,
            NumberPad4    = 100,
            NumberPad5    = 101,
            NumberPad6    = 102,
            NumberPad7    = 103,
            NumberPad8    = 104,
            NumberPad9    = 105,
            Multiply      = 106,
            Add           = 107,
            Separator     = 108,
            Subtract      = 109,
            Decimal       = 110,
            Divide        = 111,
            F1            = 112,
            F2            = 113,
            F3            = 114,
            F4            = 115,
            F5            = 116,
            F6            = 117,
            F7            = 118,
            F8            = 119,
            F9            = 120,
            F10           = 121,
            F11           = 122,
            F12           = 123,
            F13           = 124,
            F14           = 125,
            F15           = 126,
            F16           = 127,
            F17           = 128,
            F18           = 129,
            F19           = 130,
            F20           = 131,
            F21           = 132,
            F22           = 133,
            F23           = 134,
            F24           = 135,
            NumberKeyLock = 144,
            Scroll        = 145,
            LeftShift     = 160,
            RightShift    = 161,
            LeftControl   = 162,
            RightControl  = 163,
            LeftMenu      = 164,
            RightMenu     = 165
        };

        [uuid(1B25DA6E-8AA6-41E9-8251-4165F5985F49)]
        [version(0x06020000)]
        [exclusiveto(Windows.System.LauncherUIOptions)]
        interface ILauncherUIOptions : IInspectable
        {
            [propget] HRESULT InvocationPoint([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Point>** value);
            [propput] HRESULT InvocationPoint([in] Windows.Foundation.IReference<Windows.Foundation.Point>* value);
            [propget] HRESULT SelectionRect([out] [retval] Windows.Foundation.IReference<Windows.Foundation.Rect>** value);
            [propput] HRESULT SelectionRect([in] Windows.Foundation.IReference<Windows.Foundation.Rect>* value);
            [propget] HRESULT PreferredPlacement([out] [retval] Windows.UI.Popups.Placement* value);
            [propput] HRESULT PreferredPlacement([in] Windows.UI.Popups.Placement value);
        }

        [uuid(BAFA21D8-B071-4CD8-853E-341203E557D3)]
        [exclusiveto(Windows.System.LauncherOptions)]
        [version(0x06020000)]
        interface ILauncherOptions : IInspectable
        {
            [propget] HRESULT TreatAsUntrusted([out] [retval] boolean* value);
            [propput] HRESULT TreatAsUntrusted([in] boolean value);
            [propget] HRESULT DisplayApplicationPicker([out] [retval] boolean* value);
            [propput] HRESULT DisplayApplicationPicker([in] boolean value);
            [propget] HRESULT UI([out] [retval] Windows.System.LauncherUIOptions** value);
            [propget] HRESULT PreferredApplicationPackageFamilyName([out] [retval] HSTRING* value);
            [propput] HRESULT PreferredApplicationPackageFamilyName([in] HSTRING value);
            [propget] HRESULT PreferredApplicationDisplayName([out] [retval] HSTRING* value);
            [propput] HRESULT PreferredApplicationDisplayName([in] HSTRING value);
            [propget] HRESULT FallbackUri([out] [retval] Windows.Foundation.Uri** value);
            [propput] HRESULT FallbackUri([in] Windows.Foundation.Uri* value);
            [propget] HRESULT ContentType([out] [retval] HSTRING* value);
            [propput] HRESULT ContentType([in] HSTRING value);
        }

        [uuid(277151C3-9E3E-42F6-91A4-5DFDEB232451)]
        [exclusiveto(Windows.System.Launcher)]
        [version(0x06020000)]
        interface ILauncherStatics : IInspectable
        {
            [overload("LaunchFileAsync")] HRESULT LaunchFileAsync([in] Windows.Storage.IStorageFile* file, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
            [overload("LaunchFileAsync")] HRESULT LaunchFileWithOptionsAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.System.LauncherOptions* options, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
            [overload("LaunchUriAsync")] HRESULT LaunchUriAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
            [overload("LaunchUriAsync")] HRESULT LaunchUriWithOptionsAsync([in] Windows.Foundation.Uri* uri, [in] Windows.System.LauncherOptions* options, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
        }

        [version(0x06020000)]
        [marshaling_behavior(agile)]
        runtimeclass LauncherUIOptions
        {
            [default] interface Windows.System.ILauncherUIOptions;
        }

        [marshaling_behavior(agile)]
        [version(0x06020000)]
        [activatable(0x06020000)]
        runtimeclass LauncherOptions
        {
            [default] interface Windows.System.ILauncherOptions;
        }

        [marshaling_behavior(standard)]
        [version(0x06020000)]
        [static(Windows.System.ILauncherStatics, 0x06020000)]
        runtimeclass Launcher
        {
        }
    }
}
