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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.ApplicationModel.Appointments.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(__windows2Eapplicationmodel2Eappointments_h__)")
cpp_quote("#include <Windows.ApplicationModel.Appointments.h>")
cpp_quote("#endif // !defined(__windows2Eapplicationmodel2Eappointments_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

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

                interface IAddAppointmentOperation;

                interface IReplaceAppointmentOperation;

                interface IRemoveAppointmentOperation;

                runtimeclass AppointmentsProviderLaunchActionVerbs;

                runtimeclass AddAppointmentOperation;

                runtimeclass ReplaceAppointmentOperation;

                runtimeclass RemoveAppointmentOperation;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Appointments
        {
            namespace AppointmentsProvider
            {
                [exclusiveto(Windows.ApplicationModel.Appointments.AppointmentsProvider.AppointmentsProviderLaunchActionVerbs)]
                [uuid(36DBBA28-9E2E-49C6-8EF7-3AB7A5DCC8B8)]
                [version(0x06030000)]
                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);
                }

                [exclusiveto(Windows.ApplicationModel.Appointments.AppointmentsProvider.AddAppointmentOperation)]
                [uuid(EC4A9AF3-620D-4C69-ADD7-9794E918081F)]
                [version(0x06030000)]
                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();
                }

                [exclusiveto(Windows.ApplicationModel.Appointments.AppointmentsProvider.ReplaceAppointmentOperation)]
                [uuid(F4903D9B-9E61-4DE2-A732-2687C07D1DE8)]
                [version(0x06030000)]
                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();
                }

                [exclusiveto(Windows.ApplicationModel.Appointments.AppointmentsProvider.RemoveAppointmentOperation)]
                [uuid(08B66ABA-FE33-46CD-A50C-A8FFB3260537)]
                [version(0x06030000)]
                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();
                }

                [marshaling_behavior(standard)]
                [static(Windows.ApplicationModel.Appointments.AppointmentsProvider.IAppointmentsProviderLaunchActionVerbsStatics, 0x06030000)]
                [version(0x06030000)]
                runtimeclass AppointmentsProviderLaunchActionVerbs
                {
                }

                [marshaling_behavior(agile)]
                [version(0x06030000)]
                runtimeclass AddAppointmentOperation
                {
                    [default] interface Windows.ApplicationModel.Appointments.AppointmentsProvider.IAddAppointmentOperation;
                }

                [marshaling_behavior(agile)]
                [version(0x06030000)]
                runtimeclass ReplaceAppointmentOperation
                {
                    [default] interface Windows.ApplicationModel.Appointments.AppointmentsProvider.IReplaceAppointmentOperation;
                }

                [marshaling_behavior(agile)]
                [version(0x06030000)]
                runtimeclass RemoveAppointmentOperation
                {
                    [default] interface Windows.ApplicationModel.Appointments.AppointmentsProvider.IRemoveAppointmentOperation;
                }
            }
        }
    }
}
