//
// 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.idl";
import "Windows.ApplicationModel.Activation.idl";
import "Windows.Data.Xml.Dom.idl";
import "Windows.Devices.Printers.idl";
import "Windows.Graphics.Printing.PrintTicket.idl";
import "Windows.UI.Shell.idl";

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace Activation
        {
            interface IActivatedEventArgs;

            interface IActivatedEventArgsWithUser;
        }
    }
}
namespace Windows
{
    namespace ApplicationModel
    {
        runtimeclass AppInfo;
    }
}
namespace Windows
{
    namespace Data
    {
        namespace Xml
        {
            namespace Dom
            {
                runtimeclass XmlDocument;
            }
        }
    }
}
namespace Windows
{
    namespace Devices
    {
        namespace Printers
        {
            runtimeclass IppPrintDevice;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        runtimeclass Deferral;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace PrintTicket
            {
                runtimeclass WorkflowPrintTicket;
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Shell
        {
            interface IAdaptiveCard;
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace PrintSupport
            {
                typedef enum SettingsLaunchKind SettingsLaunchKind;

                typedef enum WorkflowPrintTicketValidationStatus WorkflowPrintTicketValidationStatus;

                interface IPrintSupportExtensionSession;

                interface IPrintSupportExtensionSession2;

                interface IPrintSupportExtensionTriggerDetails;

                interface IPrintSupportPrintDeviceCapabilitiesChangedEventArgs;

                interface IPrintSupportPrintDeviceCapabilitiesChangedEventArgs2;

                interface IPrintSupportPrintDeviceCapabilitiesUpdatePolicy;

                interface IPrintSupportPrintDeviceCapabilitiesUpdatePolicyStatics;

                interface IPrintSupportPrintTicketElement;

                interface IPrintSupportPrintTicketValidationRequestedEventArgs;

                interface IPrintSupportPrinterSelectedEventArgs;

                interface IPrintSupportSessionInfo;

                interface IPrintSupportSettingsActivatedEventArgs;

                interface IPrintSupportSettingsUISession;

                runtimeclass PrintSupportExtensionSession;

                runtimeclass PrintSupportExtensionTriggerDetails;

                runtimeclass PrintSupportPrintDeviceCapabilitiesChangedEventArgs;

                runtimeclass PrintSupportPrintDeviceCapabilitiesUpdatePolicy;

                runtimeclass PrintSupportPrintTicketElement;

                runtimeclass PrintSupportPrintTicketValidationRequestedEventArgs;

                runtimeclass PrintSupportPrinterSelectedEventArgs;

                runtimeclass PrintSupportSessionInfo;

                runtimeclass PrintSupportSettingsActivatedEventArgs;

                runtimeclass PrintSupportSettingsUISession;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace PrintSupport
            {
                declare
                {
                    interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing.PrintSupport.PrintSupportPrintTicketElement*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing.PrintSupport.PrintSupportPrintTicketElement*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionSession*, Windows.Graphics.Printing.PrintSupport.PrintSupportPrintDeviceCapabilitiesChangedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionSession*, Windows.Graphics.Printing.PrintSupport.PrintSupportPrintTicketValidationRequestedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionSession*, Windows.Graphics.Printing.PrintSupport.PrintSupportPrinterSelectedEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace PrintSupport
            {
                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                enum SettingsLaunchKind
                {
                    JobPrintTicket         = 0,
                    UserDefaultPrintTicket = 1
                };

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                enum WorkflowPrintTicketValidationStatus
                {
                    Resolved    = 0,
                    Conflicting = 1,
                    Invalid     = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionSession)]
                [uuid(EEA45F1A-F4C6-54B3-A0B8-A559839AA4C3)]
                interface IPrintSupportExtensionSession : IInspectable
                {
                    [propget] HRESULT Printer([out] [retval] Windows.Devices.Printers.IppPrintDevice** value);
                    [eventadd] HRESULT PrintTicketValidationRequested([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionSession*, Windows.Graphics.Printing.PrintSupport.PrintSupportPrintTicketValidationRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT PrintTicketValidationRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT PrintDeviceCapabilitiesChanged([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionSession*, Windows.Graphics.Printing.PrintSupport.PrintSupportPrintDeviceCapabilitiesChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT PrintDeviceCapabilitiesChanged([in] EventRegistrationToken token);
                    HRESULT Start();
                }

                [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionSession)]
                [uuid(10FA8C11-6DE8-5765-8FCF-E716E0F27ED1)]
                interface IPrintSupportExtensionSession2 : IInspectable
                {
                    [eventadd] HRESULT PrinterSelected([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionSession*, Windows.Graphics.Printing.PrintSupport.PrintSupportPrinterSelectedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT PrinterSelected([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionTriggerDetails)]
                [uuid(AE083711-9B09-55D1-A0AE-2A14C5F83D6A)]
                interface IPrintSupportExtensionTriggerDetails : IInspectable
                {
                    [propget] HRESULT Session([out] [retval] Windows.Graphics.Printing.PrintSupport.PrintSupportExtensionSession** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportPrintDeviceCapabilitiesChangedEventArgs)]
                [uuid(15969BF0-9028-5722-8A37-7D7C34B41DD6)]
                interface IPrintSupportPrintDeviceCapabilitiesChangedEventArgs : IInspectable
                {
                    HRESULT GetCurrentPrintDeviceCapabilities([out] [retval] Windows.Data.Xml.Dom.XmlDocument** result);
                    HRESULT UpdatePrintDeviceCapabilities([in] Windows.Data.Xml.Dom.XmlDocument* updatedPdc);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportPrintDeviceCapabilitiesChangedEventArgs)]
                [uuid(469DF9E7-FD07-5EEB-A07D-9FCC67F089BA)]
                interface IPrintSupportPrintDeviceCapabilitiesChangedEventArgs2 : IInspectable
                {
                    HRESULT SetSupportedPdlPassthroughContentTypes([in] Windows.Foundation.Collections.IIterable<HSTRING>* supportedPdlContentTypes);
                    [propget] HRESULT ResourceLanguage([out] [retval] HSTRING* value);
                    HRESULT GetCurrentPrintDeviceResources([out] [retval] Windows.Data.Xml.Dom.XmlDocument** result);
                    HRESULT UpdatePrintDeviceResources([in] Windows.Data.Xml.Dom.XmlDocument* updatedPdr);
                    HRESULT SetPrintDeviceCapabilitiesUpdatePolicy([in] Windows.Graphics.Printing.PrintSupport.PrintSupportPrintDeviceCapabilitiesUpdatePolicy* updatePolicy);
                }

                [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportPrintDeviceCapabilitiesUpdatePolicy)]
                [uuid(5F5FC025-8C35-5529-8038-8CDC3634BBCD)]
                interface IPrintSupportPrintDeviceCapabilitiesUpdatePolicy : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportPrintDeviceCapabilitiesUpdatePolicy)]
                [uuid(3D9E1A70-7C39-551F-AA1F-F8CA35B3119E)]
                interface IPrintSupportPrintDeviceCapabilitiesUpdatePolicyStatics : IInspectable
                {
                    HRESULT CreatePeriodicRefresh([in] Windows.Foundation.TimeSpan updatePeriod, [out] [retval] Windows.Graphics.Printing.PrintSupport.PrintSupportPrintDeviceCapabilitiesUpdatePolicy** result);
                    HRESULT CreatePrintJobRefresh([in] UINT32 numberOfJobs, [out] [retval] Windows.Graphics.Printing.PrintSupport.PrintSupportPrintDeviceCapabilitiesUpdatePolicy** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportPrintTicketElement)]
                [uuid(4B2A4489-730D-5BE7-80E6-8332941ABF13)]
                interface IPrintSupportPrintTicketElement : IInspectable
                {
                    [propget] HRESULT LocalName([out] [retval] HSTRING* value);
                    [propput] HRESULT LocalName([in] HSTRING value);
                    [propget] HRESULT NamespaceUri([out] [retval] HSTRING* value);
                    [propput] HRESULT NamespaceUri([in] HSTRING value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportPrintTicketValidationRequestedEventArgs)]
                [uuid(338E4E69-DB55-55C7-8338-EF64680A8F90)]
                interface IPrintSupportPrintTicketValidationRequestedEventArgs : IInspectable
                {
                    [propget] HRESULT PrintTicket([out] [retval] Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket** value);
                    HRESULT SetPrintTicketValidationStatus([in] Windows.Graphics.Printing.PrintSupport.WorkflowPrintTicketValidationStatus status);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportPrinterSelectedEventArgs)]
                [uuid(7B1CB7D9-A8A4-5C09-ADB2-66165F817977)]
                interface IPrintSupportPrinterSelectedEventArgs : IInspectable
                {
                    [propget] HRESULT SourceAppInfo([out] [retval] Windows.ApplicationModel.AppInfo** value);
                    [propget] HRESULT PrintTicket([out] [retval] Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket** value);
                    [propput] HRESULT PrintTicket([in] Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket* value);
                    HRESULT SetAdditionalFeatures([in] Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing.PrintSupport.PrintSupportPrintTicketElement*>* features);
                    HRESULT SetAdditionalParameters([in] Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing.PrintSupport.PrintSupportPrintTicketElement*>* parameters);
                    [propget] HRESULT AllowedAdditionalFeaturesAndParametersCount([out] [retval] UINT32* value);
                    HRESULT SetAdaptiveCard([in] Windows.UI.Shell.IAdaptiveCard* adaptiveCard);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportSessionInfo)]
                [uuid(852149AF-777D-53E9-9EE9-45D3F4B5BE9C)]
                interface IPrintSupportSessionInfo : IInspectable
                {
                    [propget] HRESULT SourceAppInfo([out] [retval] Windows.ApplicationModel.AppInfo** value);
                    [propget] HRESULT Printer([out] [retval] Windows.Devices.Printers.IppPrintDevice** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportSettingsActivatedEventArgs)]
                [uuid(1E1B565E-A013-55EA-9B8C-EEA39D9FB6C1)]
                interface IPrintSupportSettingsActivatedEventArgs : IInspectable
                {
                    [propget] HRESULT Session([out] [retval] Windows.Graphics.Printing.PrintSupport.PrintSupportSettingsUISession** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintSupport.PrintSupportSettingsUISession)]
                [uuid(C6DA2251-83C3-55E4-A0F8-5DE8B062ADBF)]
                interface IPrintSupportSettingsUISession : IInspectable
                {
                    [propget] HRESULT SessionPrintTicket([out] [retval] Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket** value);
                    [propget] HRESULT DocumentTitle([out] [retval] HSTRING* value);
                    [propget] HRESULT LaunchKind([out] [retval] Windows.Graphics.Printing.PrintSupport.SettingsLaunchKind* value);
                    HRESULT UpdatePrintTicket([in] Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket* printTicket);
                    [propget] HRESULT SessionInfo([out] [retval] Windows.Graphics.Printing.PrintSupport.PrintSupportSessionInfo** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [marshaling_behavior(agile)]
                runtimeclass PrintSupportExtensionSession
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportExtensionSession;
                    [contract(Windows.Foundation.UniversalApiContract, 15.0)] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportExtensionSession2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [marshaling_behavior(agile)]
                runtimeclass PrintSupportExtensionTriggerDetails
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportExtensionTriggerDetails;
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [marshaling_behavior(agile)]
                runtimeclass PrintSupportPrintDeviceCapabilitiesChangedEventArgs
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportPrintDeviceCapabilitiesChangedEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 15.0)] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportPrintDeviceCapabilitiesChangedEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Graphics.Printing.PrintSupport.IPrintSupportPrintDeviceCapabilitiesUpdatePolicyStatics, Windows.Foundation.UniversalApiContract, 15.0)]
                [threading(both)]
                runtimeclass PrintSupportPrintDeviceCapabilitiesUpdatePolicy
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportPrintDeviceCapabilitiesUpdatePolicy;
                }

                [activatable(Windows.Foundation.UniversalApiContract, 15.0)]
                [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintSupportPrintTicketElement
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportPrintTicketElement;
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [marshaling_behavior(agile)]
                runtimeclass PrintSupportPrintTicketValidationRequestedEventArgs
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportPrintTicketValidationRequestedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 15.0)]
                [marshaling_behavior(agile)]
                runtimeclass PrintSupportPrinterSelectedEventArgs
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportPrinterSelectedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [marshaling_behavior(agile)]
                runtimeclass PrintSupportSessionInfo
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportSessionInfo;
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [marshaling_behavior(agile)]
                runtimeclass PrintSupportSettingsActivatedEventArgs
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportSettingsActivatedEventArgs;
                    interface Windows.ApplicationModel.Activation.IActivatedEventArgs;
                    interface Windows.ApplicationModel.Activation.IActivatedEventArgsWithUser;
                }

                [contract(Windows.Foundation.UniversalApiContract, 13.0)]
                [marshaling_behavior(agile)]
                runtimeclass PrintSupportSettingsUISession
                {
                    [default] interface Windows.Graphics.Printing.PrintSupport.IPrintSupportSettingsUISession;
                }
            }
        }
    }
}
