//
// 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";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        runtimeclass Deferral;

        typedef struct Rect Rect;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            namespace Preview
            {
                namespace Communications
                {
                    apicontract PreviewCommunicationsContract;

                    typedef enum PreviewMeetingInfoDisplayKind PreviewMeetingInfoDisplayKind;

                    typedef enum PreviewSystemState PreviewSystemState;

                    typedef enum PreviewTeamEndMeetingKind PreviewTeamEndMeetingKind;

                    typedef enum PreviewTeamViewCommand PreviewTeamViewCommand;

                    interface IPreviewTeamCleanupRequestedEventArgs;

                    interface IPreviewTeamCommandInvokedEventArgs;

                    interface IPreviewTeamDeviceCredentials;

                    interface IPreviewTeamEndMeetingRequestedEventArgs;

                    interface IPreviewTeamJoinMeetingRequestedEventArgs;

                    interface IPreviewTeamView;

                    interface IPreviewTeamView2;

                    interface IPreviewTeamViewStatics;

                    runtimeclass PreviewTeamCleanupRequestedEventArgs;

                    runtimeclass PreviewTeamCommandInvokedEventArgs;

                    runtimeclass PreviewTeamDeviceCredentials;

                    runtimeclass PreviewTeamEndMeetingRequestedEventArgs;

                    runtimeclass PreviewTeamJoinMeetingRequestedEventArgs;

                    runtimeclass PreviewTeamView;
                }
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            namespace Preview
            {
                namespace Communications
                {
                    declare
                    {
                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, IInspectable*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, Windows.UI.Core.Preview.Communications.PreviewTeamCleanupRequestedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, Windows.UI.Core.Preview.Communications.PreviewTeamCommandInvokedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, Windows.UI.Core.Preview.Communications.PreviewTeamEndMeetingRequestedEventArgs*>;

                        interface Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, Windows.UI.Core.Preview.Communications.PreviewTeamJoinMeetingRequestedEventArgs*>;
                    }
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            namespace Preview
            {
                namespace Communications
                {
                    [contractversion(1.0)]
                    apicontract PreviewCommunicationsContract
                    {
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    enum PreviewMeetingInfoDisplayKind
                    {
                        OrganizerAndTime      = 0,
                        OrganizerTimeAndTitle = 1
                    };

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    enum PreviewSystemState
                    {
                        Preparing     = 0,
                        Rebooting     = 1,
                        Error         = 2,
                        SessionPaused = 3,
                        Ready         = 4
                    };

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    enum PreviewTeamEndMeetingKind
                    {
                        ShowDefaultView = 0,
                        CloseView       = 1
                    };

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    enum PreviewTeamViewCommand
                    {
                        ToggleCallControl   = 0,
                        ShowPeople          = 1,
                        ShowMessaging       = 2,
                        ShowContent         = 3,
                        ToggleMicrophone    = 4,
                        ToggleCamera        = 5,
                        ShowCalendar        = 6,
                        ToggleScreenSharing = 7,
                        ToggleFullScreen    = 8
                    };

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [exclusiveto(Windows.UI.Core.Preview.Communications.PreviewTeamCleanupRequestedEventArgs)]
                    [uuid(F0190610-05AF-4250-B96A-A74EDEF77A0D)]
                    interface IPreviewTeamCleanupRequestedEventArgs : IInspectable
                    {
                        HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [exclusiveto(Windows.UI.Core.Preview.Communications.PreviewTeamCommandInvokedEventArgs)]
                    [uuid(661F4165-FE71-44AF-9568-6CC7CF29CD4C)]
                    interface IPreviewTeamCommandInvokedEventArgs : IInspectable
                    {
                        [propget] HRESULT Command([out] [retval] Windows.UI.Core.Preview.Communications.PreviewTeamViewCommand* value);
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [exclusiveto(Windows.UI.Core.Preview.Communications.PreviewTeamDeviceCredentials)]
                    [uuid(8959C9B9-02FC-4D1D-8921-D61E7766CB89)]
                    interface IPreviewTeamDeviceCredentials : IInspectable
                    {
                        [propget] HRESULT UserPrincipalName([out] [retval] HSTRING* value);
                        [propget] HRESULT DomainUserName([out] [retval] HSTRING* value);
                        [propget] HRESULT Password([out] [retval] HSTRING* value);
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [exclusiveto(Windows.UI.Core.Preview.Communications.PreviewTeamEndMeetingRequestedEventArgs)]
                    [uuid(10B149E1-B6F1-4CA7-B4CE-2C66A4A64699)]
                    interface IPreviewTeamEndMeetingRequestedEventArgs : IInspectable
                    {
                        HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [exclusiveto(Windows.UI.Core.Preview.Communications.PreviewTeamJoinMeetingRequestedEventArgs)]
                    [uuid(421E6ADB-98D7-41AE-BA49-6CAF559B8F5A)]
                    interface IPreviewTeamJoinMeetingRequestedEventArgs : IInspectable
                    {
                        HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                        [propget] HRESULT MeetingUri([out] [retval] Windows.Foundation.Uri** value);
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [exclusiveto(Windows.UI.Core.Preview.Communications.PreviewTeamView)]
                    [uuid(6F616677-02AE-49A0-AA50-862D078CF9B1)]
                    interface IPreviewTeamView : IInspectable
                    {
                        HRESULT SetTitle([in] HSTRING title);
                        HRESULT EnterFullScreen();
                        HRESULT LeaveFullScreen();
                        HRESULT RequestForeground();
                        HRESULT StartSharingScreen();
                        HRESULT StopSharingScreen();
                        HRESULT NotifyMeetingEnded([in] Windows.UI.Core.Preview.Communications.PreviewTeamEndMeetingKind kind);
                        HRESULT JoinMeetingWithUri([in] Windows.Foundation.Uri* meetingUri);
                        [propget] HRESULT MeetingUri([out] [retval] Windows.Foundation.Uri** value);
                        [propget] HRESULT SharingScreenBounds([out] [retval] Windows.Foundation.Rect* value);
                        [propget] HRESULT IsScreenSharing([out] [retval] boolean* value);
                        [propget] HRESULT IsFullScreen([out] [retval] boolean* value);
                        [propget] HRESULT SystemState([out] [retval] Windows.UI.Core.Preview.Communications.PreviewSystemState* value);
                        [propget] HRESULT MeetingInfoDisplayType([out] [retval] Windows.UI.Core.Preview.Communications.PreviewMeetingInfoDisplayKind* value);
                        [eventadd] HRESULT JoinMeetingRequested([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, Windows.UI.Core.Preview.Communications.PreviewTeamJoinMeetingRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT JoinMeetingRequested([in] EventRegistrationToken token);
                        [eventadd] HRESULT EndMeetingRequested([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, Windows.UI.Core.Preview.Communications.PreviewTeamEndMeetingRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT EndMeetingRequested([in] EventRegistrationToken token);
                        [eventadd] HRESULT CleanupRequested([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, Windows.UI.Core.Preview.Communications.PreviewTeamCleanupRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT CleanupRequested([in] EventRegistrationToken token);
                        [eventadd] HRESULT SharingScreenBoundsChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT SharingScreenBoundsChanged([in] EventRegistrationToken token);
                        [eventadd] HRESULT IsScreenSharingChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT IsScreenSharingChanged([in] EventRegistrationToken token);
                        [eventadd] HRESULT IsFullScreenChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT IsFullScreenChanged([in] EventRegistrationToken token);
                        [eventadd] HRESULT CommandInvoked([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, Windows.UI.Core.Preview.Communications.PreviewTeamCommandInvokedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT CommandInvoked([in] EventRegistrationToken token);
                        [eventadd] HRESULT SystemStateChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.Core.Preview.Communications.PreviewTeamView*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                        [eventremove] HRESULT SystemStateChanged([in] EventRegistrationToken token);
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [exclusiveto(Windows.UI.Core.Preview.Communications.PreviewTeamView)]
                    [uuid(BD44B2A2-0D77-416D-A370-9EA5ECE46229)]
                    interface IPreviewTeamView2 : IInspectable
                    {
                        HRESULT SetButtonLabel([in] HSTRING label);
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [exclusiveto(Windows.UI.Core.Preview.Communications.PreviewTeamView)]
                    [uuid(FE241233-D49C-49EE-B798-EC31D9543938)]
                    interface IPreviewTeamViewStatics : IInspectable
                    {
                        HRESULT GetForCurrentView([out] [retval] Windows.UI.Core.Preview.Communications.PreviewTeamView** result);
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass PreviewTeamCleanupRequestedEventArgs
                    {
                        [default] interface Windows.UI.Core.Preview.Communications.IPreviewTeamCleanupRequestedEventArgs;
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass PreviewTeamCommandInvokedEventArgs
                    {
                        [default] interface Windows.UI.Core.Preview.Communications.IPreviewTeamCommandInvokedEventArgs;
                    }

                    [activatable(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass PreviewTeamDeviceCredentials
                    {
                        [default] interface Windows.UI.Core.Preview.Communications.IPreviewTeamDeviceCredentials;
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass PreviewTeamEndMeetingRequestedEventArgs
                    {
                        [default] interface Windows.UI.Core.Preview.Communications.IPreviewTeamEndMeetingRequestedEventArgs;
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    runtimeclass PreviewTeamJoinMeetingRequestedEventArgs
                    {
                        [default] interface Windows.UI.Core.Preview.Communications.IPreviewTeamJoinMeetingRequestedEventArgs;
                    }

                    [contract(Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [marshaling_behavior(agile)]
                    [static(Windows.UI.Core.Preview.Communications.IPreviewTeamViewStatics, Windows.UI.Core.Preview.Communications.PreviewCommunicationsContract, 1.0)]
                    [threading(both)]
                    runtimeclass PreviewTeamView
                    {
                        [default] interface Windows.UI.Core.Preview.Communications.IPreviewTeamView;
                        interface Windows.UI.Core.Preview.Communications.IPreviewTeamView2;
                    }
                }
            }
        }
    }
}
