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

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Appointments
        {
            runtimeclass Appointment;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Appointments
        {
            namespace AppointmentsProvider
            {
                interface IAddAppointmentOperation;

                interface IAppointmentsProviderLaunchActionVerbsStatics;

                interface IAppointmentsProviderLaunchActionVerbsStatics2;

                interface IRemoveAppointmentOperation;

                interface IReplaceAppointmentOperation;

                runtimeclass AddAppointmentOperation;

                runtimeclass AppointmentsProviderLaunchActionVerbs;

                runtimeclass RemoveAppointmentOperation;

                runtimeclass ReplaceAppointmentOperation;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Appointments
        {
            namespace AppointmentsProvider
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Appointments.AppointmentsProvider.AddAppointmentOperation)]
                [uuid(EC4A9AF3-620D-4C69-ADD7-9794E918081F)]
                interface IAddAppointmentOperation : IInspectable
                {
                    [propget] HRESULT AppointmentInformation([out] [retval] Windows.ApplicationModel.Appointments.Appointment** value);
                    [propget] HRESULT SourcePackageFamilyName([out] [retval] HSTRING* value);
                    HRESULT ReportCompleted([in] HSTRING itemId);
                    HRESULT ReportCanceled();
                    HRESULT ReportError([in] HSTRING value);
                    HRESULT DismissUI();
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Appointments.AppointmentsProvider.AppointmentsProviderLaunchActionVerbs)]
                [uuid(36DBBA28-9E2E-49C6-8EF7-3AB7A5DCC8B8)]
                interface IAppointmentsProviderLaunchActionVerbsStatics : IInspectable
                {
                    [propget] HRESULT AddAppointment([out] [retval] HSTRING* value);
                    [propget] HRESULT ReplaceAppointment([out] [retval] HSTRING* value);
                    [propget] HRESULT RemoveAppointment([out] [retval] HSTRING* value);
                    [propget] HRESULT ShowTimeFrame([out] [retval] HSTRING* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Appointments.AppointmentsProvider.AppointmentsProviderLaunchActionVerbs)]
                [uuid(EF9049A4-AF21-473C-88DC-76CD89F60CA5)]
                interface IAppointmentsProviderLaunchActionVerbsStatics2 : IInspectable
                {
                    [propget] HRESULT ShowAppointmentDetails([out] [retval] HSTRING* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Appointments.AppointmentsProvider.RemoveAppointmentOperation)]
                [uuid(08B66ABA-FE33-46CD-A50C-A8FFB3260537)]
                interface IRemoveAppointmentOperation : IInspectable
                {
                    [propget] HRESULT AppointmentId([out] [retval] HSTRING* value);
                    [propget] HRESULT InstanceStartDate([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                    [propget] HRESULT SourcePackageFamilyName([out] [retval] HSTRING* value);
                    HRESULT ReportCompleted();
                    HRESULT ReportCanceled();
                    HRESULT ReportError([in] HSTRING value);
                    HRESULT DismissUI();
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.ApplicationModel.Appointments.AppointmentsProvider.ReplaceAppointmentOperation)]
                [uuid(F4903D9B-9E61-4DE2-A732-2687C07D1DE8)]
                interface IReplaceAppointmentOperation : IInspectable
                {
                    [propget] HRESULT AppointmentId([out] [retval] HSTRING* value);
                    [propget] HRESULT AppointmentInformation([out] [retval] Windows.ApplicationModel.Appointments.Appointment** value);
                    [propget] HRESULT InstanceStartDate([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                    [propget] HRESULT SourcePackageFamilyName([out] [retval] HSTRING* value);
                    HRESULT ReportCompleted([in] HSTRING itemId);
                    HRESULT ReportCanceled();
                    HRESULT ReportError([in] HSTRING value);
                    HRESULT DismissUI();
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass AddAppointmentOperation
                {
                    [default] interface Windows.ApplicationModel.Appointments.AppointmentsProvider.IAddAppointmentOperation;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.ApplicationModel.Appointments.AppointmentsProvider.IAppointmentsProviderLaunchActionVerbsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [static(Windows.ApplicationModel.Appointments.AppointmentsProvider.IAppointmentsProviderLaunchActionVerbsStatics2, Windows.Foundation.UniversalApiContract, 1.0)]
                runtimeclass AppointmentsProviderLaunchActionVerbs
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass RemoveAppointmentOperation
                {
                    [default] interface Windows.ApplicationModel.Appointments.AppointmentsProvider.IRemoveAppointmentOperation;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass ReplaceAppointmentOperation
                {
                    [default] interface Windows.ApplicationModel.Appointments.AppointmentsProvider.IReplaceAppointmentOperation;
                }
            }
        }
    }
}
