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

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

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace WebUI
        {
            namespace Core
            {
                apicontract WebUICommandBarContract;

                typedef enum WebUICommandBarClosedDisplayMode WebUICommandBarClosedDisplayMode;

                delegate MenuClosedEventHandler;

                delegate MenuOpenedEventHandler;

                delegate SizeChangedEventHandler;

                interface IWebUICommandBar;

                interface IWebUICommandBarBitmapIcon;

                interface IWebUICommandBarBitmapIconFactory;

                interface IWebUICommandBarConfirmationButton;

                interface IWebUICommandBarElement;

                interface IWebUICommandBarIcon;

                interface IWebUICommandBarIconButton;

                interface IWebUICommandBarItemInvokedEventArgs;

                interface IWebUICommandBarSizeChangedEventArgs;

                interface IWebUICommandBarStatics;

                interface IWebUICommandBarSymbolIcon;

                interface IWebUICommandBarSymbolIconFactory;

                runtimeclass WebUICommandBar;

                runtimeclass WebUICommandBarBitmapIcon;

                runtimeclass WebUICommandBarConfirmationButton;

                runtimeclass WebUICommandBarIconButton;

                runtimeclass WebUICommandBarItemInvokedEventArgs;

                runtimeclass WebUICommandBarSizeChangedEventArgs;

                runtimeclass WebUICommandBarSymbolIcon;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace WebUI
        {
            namespace Core
            {
                declare
                {
                    interface Windows.Foundation.Collections.IIterable<Windows.UI.WebUI.Core.IWebUICommandBarElement*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.UI.WebUI.Core.IWebUICommandBarElement*>;

                    interface Windows.Foundation.Collections.IObservableVector<Windows.UI.WebUI.Core.IWebUICommandBarElement*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.UI.WebUI.Core.IWebUICommandBarElement*>;

                    interface Windows.Foundation.Collections.IVector<Windows.UI.WebUI.Core.IWebUICommandBarElement*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.WebUI.Core.WebUICommandBarConfirmationButton*, Windows.UI.WebUI.Core.WebUICommandBarItemInvokedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.WebUI.Core.WebUICommandBarIconButton*, Windows.UI.WebUI.Core.WebUICommandBarItemInvokedEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace WebUI
        {
            namespace Core
            {

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                enum WebUICommandBarClosedDisplayMode
                {
                    Default = 0,
                    Minimal = 1,
                    Compact = 2
                };

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [uuid(435387C8-4DD0-4C52-9489-D390CE7721D2)]
                delegate
                    HRESULT MenuClosedEventHandler();

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [uuid(18DC0AD3-678F-4C19-8963-CC1C49A5EF9E)]
                delegate
                    HRESULT MenuOpenedEventHandler();

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [uuid(D49CFE3C-DD2E-4C28-B627-303A7F911AF5)]
                delegate
                    HRESULT SizeChangedEventHandler([in] Windows.UI.WebUI.Core.WebUICommandBarSizeChangedEventArgs* eventArgs);

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBar)]
                [uuid(A4FC0016-DBE5-41AD-8D7B-14698BD6911D)]
                interface IWebUICommandBar : IInspectable
                {
                    [propget] HRESULT Visible([out] [retval] boolean* value);
                    [propput] HRESULT Visible([in] boolean value);
                    [propget] HRESULT Opacity([out] [retval] DOUBLE* value);
                    [propput] HRESULT Opacity([in] DOUBLE value);
                    [propget] HRESULT ForegroundColor([out] [retval] Windows.UI.Color* value);
                    [propput] HRESULT ForegroundColor([in] Windows.UI.Color value);
                    [propget] HRESULT BackgroundColor([out] [retval] Windows.UI.Color* value);
                    [propput] HRESULT BackgroundColor([in] Windows.UI.Color value);
                    [propget] HRESULT ClosedDisplayMode([out] [retval] Windows.UI.WebUI.Core.WebUICommandBarClosedDisplayMode* value);
                    [propput] HRESULT ClosedDisplayMode([in] Windows.UI.WebUI.Core.WebUICommandBarClosedDisplayMode value);
                    [propget] HRESULT IsOpen([out] [retval] boolean* value);
                    [propput] HRESULT IsOpen([in] boolean value);
                    [propget] HRESULT Size([out] [retval] Windows.Foundation.Size* value);
                    [propget] HRESULT PrimaryCommands([out] [retval] Windows.Foundation.Collections.IObservableVector<Windows.UI.WebUI.Core.IWebUICommandBarElement*>** value);
                    [propget] HRESULT SecondaryCommands([out] [retval] Windows.Foundation.Collections.IObservableVector<Windows.UI.WebUI.Core.IWebUICommandBarElement*>** value);
                    [eventadd] HRESULT MenuOpened([in] Windows.UI.WebUI.Core.MenuOpenedEventHandler* handler, [out] [retval] EventRegistrationToken* value);
                    [eventremove] HRESULT MenuOpened([in] EventRegistrationToken value);
                    [eventadd] HRESULT MenuClosed([in] Windows.UI.WebUI.Core.MenuClosedEventHandler* handler, [out] [retval] EventRegistrationToken* value);
                    [eventremove] HRESULT MenuClosed([in] EventRegistrationToken value);
                    [eventadd] HRESULT SizeChanged([in] Windows.UI.WebUI.Core.SizeChangedEventHandler* handler, [out] [retval] EventRegistrationToken* value);
                    [eventremove] HRESULT SizeChanged([in] EventRegistrationToken value);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBarBitmapIcon)]
                [uuid(858F4F45-08D8-4A46-81EC-00015B0B1C6C)]
                interface IWebUICommandBarBitmapIcon : IInspectable
                    requires
                        Windows.UI.WebUI.Core.IWebUICommandBarIcon
                {
                    [propget] HRESULT Uri([out] [retval] Windows.Foundation.Uri** value);
                    [propput] HRESULT Uri([in] Windows.Foundation.Uri* value);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBarBitmapIcon)]
                [uuid(F3F7D78A-7673-444A-BE62-AC12D31C2231)]
                interface IWebUICommandBarBitmapIconFactory : IInspectable
                {
                    HRESULT Create([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.UI.WebUI.Core.WebUICommandBarBitmapIcon** instance);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBarConfirmationButton)]
                [uuid(86E7824A-E3D5-4EB6-B2FF-8F018A172105)]
                interface IWebUICommandBarConfirmationButton : IInspectable
                    requires
                        Windows.UI.WebUI.Core.IWebUICommandBarElement
                {
                    [propget] HRESULT Text([out] [retval] HSTRING* value);
                    [propput] HRESULT Text([in] HSTRING value);
                    [eventadd] HRESULT ItemInvoked([in] Windows.Foundation.TypedEventHandler<Windows.UI.WebUI.Core.WebUICommandBarConfirmationButton*, Windows.UI.WebUI.Core.WebUICommandBarItemInvokedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT ItemInvoked([in] EventRegistrationToken token);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [uuid(C9069EC2-284A-4633-8AAD-637A27E282C3)]
                interface IWebUICommandBarElement : IInspectable
                {
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [uuid(D587655D-2014-42BE-969A-7D14CA6C8A49)]
                interface IWebUICommandBarIcon : IInspectable
                {
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBarIconButton)]
                [uuid(8F1BC93A-3A7C-4842-A0CF-AFF6EA308586)]
                interface IWebUICommandBarIconButton : IInspectable
                    requires
                        Windows.UI.WebUI.Core.IWebUICommandBarElement
                {
                    [propget] HRESULT Enabled([out] [retval] boolean* value);
                    [propput] HRESULT Enabled([in] boolean value);
                    [propget] HRESULT Label([out] [retval] HSTRING* value);
                    [propput] HRESULT Label([in] HSTRING value);
                    [propget] HRESULT IsToggleButton([out] [retval] boolean* value);
                    [propput] HRESULT IsToggleButton([in] boolean value);
                    [propget] HRESULT IsChecked([out] [retval] boolean* value);
                    [propput] HRESULT IsChecked([in] boolean value);
                    [propget] HRESULT Icon([out] [retval] Windows.UI.WebUI.Core.IWebUICommandBarIcon** value);
                    [propput] HRESULT Icon([in] Windows.UI.WebUI.Core.IWebUICommandBarIcon* value);
                    [eventadd] HRESULT ItemInvoked([in] Windows.Foundation.TypedEventHandler<Windows.UI.WebUI.Core.WebUICommandBarIconButton*, Windows.UI.WebUI.Core.WebUICommandBarItemInvokedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT ItemInvoked([in] EventRegistrationToken token);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBarItemInvokedEventArgs)]
                [uuid(304EDBDD-E741-41EF-BDC4-A45CEA2A4F70)]
                interface IWebUICommandBarItemInvokedEventArgs : IInspectable
                {
                    [propget] HRESULT IsPrimaryCommand([out] [retval] boolean* value);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBarSizeChangedEventArgs)]
                [uuid(FBF1E2F6-3029-4719-8378-92F82B87AF1E)]
                interface IWebUICommandBarSizeChangedEventArgs : IInspectable
                {
                    [propget] HRESULT Size([out] [retval] Windows.Foundation.Size* value);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBar)]
                [uuid(1449CDB9-A506-45BE-8F42-B2837E2FE0C9)]
                interface IWebUICommandBarStatics : IInspectable
                {
                    HRESULT GetForCurrentView([out] [retval] Windows.UI.WebUI.Core.WebUICommandBar** commandBar);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBarSymbolIcon)]
                [uuid(D4935477-FD26-46ED-8658-1A3F4400E7B3)]
                interface IWebUICommandBarSymbolIcon : IInspectable
                    requires
                        Windows.UI.WebUI.Core.IWebUICommandBarIcon
                {
                    [propget] HRESULT Symbol([out] [retval] HSTRING* value);
                    [propput] HRESULT Symbol([in] HSTRING value);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [exclusiveto(Windows.UI.WebUI.Core.WebUICommandBarSymbolIcon)]
                [uuid(51BE1A1F-3730-429E-B622-14E2B7BF6A07)]
                interface IWebUICommandBarSymbolIconFactory : IInspectable
                {
                    HRESULT Create([in] HSTRING symbol, [out] [retval] Windows.UI.WebUI.Core.WebUICommandBarSymbolIcon** instance);
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.WebUI.Core.IWebUICommandBarStatics, Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                runtimeclass WebUICommandBar
                {
                    [default] interface Windows.UI.WebUI.Core.IWebUICommandBar;
                }

                [activatable(Windows.UI.WebUI.Core.IWebUICommandBarBitmapIconFactory, Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [activatable(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass WebUICommandBarBitmapIcon
                {
                    [default] interface Windows.UI.WebUI.Core.IWebUICommandBarBitmapIcon;
                    interface Windows.UI.WebUI.Core.IWebUICommandBarIcon;
                }

                [activatable(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass WebUICommandBarConfirmationButton
                {
                    [default] interface Windows.UI.WebUI.Core.IWebUICommandBarConfirmationButton;
                    interface Windows.UI.WebUI.Core.IWebUICommandBarElement;
                }

                [activatable(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass WebUICommandBarIconButton
                {
                    [default] interface Windows.UI.WebUI.Core.IWebUICommandBarIconButton;
                    interface Windows.UI.WebUI.Core.IWebUICommandBarElement;
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass WebUICommandBarItemInvokedEventArgs
                {
                    [default] interface Windows.UI.WebUI.Core.IWebUICommandBarItemInvokedEventArgs;
                }

                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass WebUICommandBarSizeChangedEventArgs
                {
                    [default] interface Windows.UI.WebUI.Core.IWebUICommandBarSizeChangedEventArgs;
                }

                [activatable(Windows.UI.WebUI.Core.IWebUICommandBarSymbolIconFactory, Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [activatable(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [contract(Windows.UI.WebUI.Core.WebUICommandBarContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass WebUICommandBarSymbolIcon
                {
                    [default] interface Windows.UI.WebUI.Core.IWebUICommandBarSymbolIcon;
                    interface Windows.UI.WebUI.Core.IWebUICommandBarIcon;
                }
            }
        }
    }
}
