//
// 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.Data.Xml.Dom.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace Data
    {
        namespace Xml
        {
            namespace Dom
            {
                interface IXmlNode;
            }
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IInputStream;
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace PrintTicket
            {
                typedef enum PrintTicketFeatureSelectionType PrintTicketFeatureSelectionType;

                typedef enum PrintTicketParameterDataType PrintTicketParameterDataType;

                typedef enum PrintTicketValueType PrintTicketValueType;

                interface IPrintTicketCapabilities;

                interface IPrintTicketFeature;

                interface IPrintTicketOption;

                interface IPrintTicketParameterDefinition;

                interface IPrintTicketParameterInitializer;

                interface IPrintTicketValue;

                interface IWorkflowPrintTicket;

                interface IWorkflowPrintTicketFactory;

                interface IWorkflowPrintTicketValidationResult;

                runtimeclass PrintTicketCapabilities;

                runtimeclass PrintTicketFeature;

                runtimeclass PrintTicketOption;

                runtimeclass PrintTicketParameterDefinition;

                runtimeclass PrintTicketParameterInitializer;

                runtimeclass PrintTicketValue;

                runtimeclass WorkflowPrintTicket;

                runtimeclass WorkflowPrintTicketValidationResult;
            }
        }
    }
}

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

                    interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing.PrintTicket.PrintTicketOption*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing.PrintTicket.PrintTicketOption*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicketValidationResult*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace PrintTicket
            {
                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                enum PrintTicketFeatureSelectionType
                {
                    PickOne  = 0,
                    PickMany = 1
                };

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                enum PrintTicketParameterDataType
                {
                    Integer       = 0,
                    NumericString = 1,
                    String        = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                enum PrintTicketValueType
                {
                    Integer = 0,
                    String  = 1,
                    Unknown = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintTicket.PrintTicketCapabilities)]
                [uuid(8C45508B-BBDC-4256-A142-2FD615ECB416)]
                interface IPrintTicketCapabilities : IInspectable
                {
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNamespace([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNode([out] [retval] Windows.Data.Xml.Dom.IXmlNode** value);
                    [propget] HRESULT DocumentBindingFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentCollateFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentDuplexFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentHolePunchFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentInputBinFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentNUpFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentStapleFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT JobPasscodeFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageBorderlessFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageMediaSizeFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageMediaTypeFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageOrientationFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageOutputColorFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageOutputQualityFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageResolutionFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    HRESULT GetFeature([in] HSTRING name, [in] HSTRING xmlNamespace, [out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** result);
                    HRESULT GetParameterDefinition([in] HSTRING name, [in] HSTRING xmlNamespace, [out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketParameterDefinition** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintTicket.PrintTicketFeature)]
                [uuid(E7607D6A-59F5-4103-8858-B97710963D39)]
                interface IPrintTicketFeature : IInspectable
                {
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNamespace([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNode([out] [retval] Windows.Data.Xml.Dom.IXmlNode** value);
                    [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                    HRESULT GetOption([in] HSTRING name, [in] HSTRING xmlNamespace, [out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketOption** result);
                    [propget] HRESULT Options([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing.PrintTicket.PrintTicketOption*>** result);
                    HRESULT GetSelectedOption([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketOption** value);
                    HRESULT SetSelectedOption([in] Windows.Graphics.Printing.PrintTicket.PrintTicketOption* value);
                    [propget] HRESULT SelectionType([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeatureSelectionType* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintTicket.PrintTicketOption)]
                [uuid(B086CF90-B367-4E4B-BD48-9C78A0BB31CE)]
                interface IPrintTicketOption : IInspectable
                {
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNamespace([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNode([out] [retval] Windows.Data.Xml.Dom.IXmlNode** value);
                    [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                    HRESULT GetPropertyNode([in] HSTRING name, [in] HSTRING xmlNamespace, [out] [retval] Windows.Data.Xml.Dom.IXmlNode** result);
                    HRESULT GetScoredPropertyNode([in] HSTRING name, [in] HSTRING xmlNamespace, [out] [retval] Windows.Data.Xml.Dom.IXmlNode** result);
                    HRESULT GetPropertyValue([in] HSTRING name, [in] HSTRING xmlNamespace, [out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketValue** result);
                    HRESULT GetScoredPropertyValue([in] HSTRING name, [in] HSTRING xmlNamespace, [out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketValue** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintTicket.PrintTicketParameterDefinition)]
                [uuid(D6BAB4E4-2962-4C01-B7F3-9A9294EB8335)]
                interface IPrintTicketParameterDefinition : IInspectable
                {
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNamespace([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNode([out] [retval] Windows.Data.Xml.Dom.IXmlNode** value);
                    [propget] HRESULT DataType([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketParameterDataType* value);
                    [propget] HRESULT UnitType([out] [retval] HSTRING* value);
                    [propget] HRESULT RangeMin([out] [retval] INT32* value);
                    [propget] HRESULT RangeMax([out] [retval] INT32* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintTicket.PrintTicketParameterInitializer)]
                [uuid(5E3335BB-A0A5-48B1-9D5C-07116DDC597A)]
                interface IPrintTicketParameterInitializer : IInspectable
                {
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNamespace([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNode([out] [retval] Windows.Data.Xml.Dom.IXmlNode** value);
                    [propput] HRESULT Value([in] Windows.Graphics.Printing.PrintTicket.PrintTicketValue* value);
                    [propget] HRESULT Value([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketValue** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintTicket.PrintTicketValue)]
                [uuid(66B30A32-244D-4E22-A98B-BB3CF1F2DD91)]
                interface IPrintTicketValue : IInspectable
                {
                    [propget] HRESULT Type([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketValueType* value);
                    HRESULT GetValueAsInteger([out] [retval] INT32* value);
                    HRESULT GetValueAsString([out] [retval] HSTRING* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket)]
                [uuid(41D52285-35E8-448E-A8C5-E4B6A2CF826C)]
                interface IWorkflowPrintTicket : IInspectable
                {
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNamespace([out] [retval] HSTRING* value);
                    [propget] HRESULT XmlNode([out] [retval] Windows.Data.Xml.Dom.IXmlNode** value);
                    HRESULT GetCapabilities([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketCapabilities** result);
                    [propget] HRESULT DocumentBindingFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentCollateFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentDuplexFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentHolePunchFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentInputBinFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentNUpFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT DocumentStapleFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT JobPasscodeFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageBorderlessFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageMediaSizeFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageMediaTypeFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageOrientationFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageOutputColorFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageOutputQualityFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    [propget] HRESULT PageResolutionFeature([out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** value);
                    HRESULT GetFeature([in] HSTRING name, [in] HSTRING xmlNamespace, [out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketFeature** result);
                    HRESULT NotifyXmlChangedAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
                    HRESULT ValidateAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicketValidationResult*>** operation);
                    HRESULT GetParameterInitializer([in] HSTRING name, [in] HSTRING xmlNamespace, [out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketParameterInitializer** result);
                    HRESULT SetParameterInitializerAsInteger([in] HSTRING name, [in] HSTRING xmlNamespace, [in] INT32 integerValue, [out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketParameterInitializer** result);
                    HRESULT SetParameterInitializerAsString([in] HSTRING name, [in] HSTRING xmlNamespace, [in] HSTRING stringValue, [out] [retval] Windows.Graphics.Printing.PrintTicket.PrintTicketParameterInitializer** result);
                    HRESULT MergeAndValidateTicket([in] Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket* deltaShemaTicket, [out] [retval] Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 19.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket)]
                [experimental]
                [uuid(966D1166-D9C7-569E-B7D8-F2B341C8F976)]
                interface IWorkflowPrintTicketFactory : IInspectable
                {
                    HRESULT CreateInstance([in] HSTRING printerName, [in] Windows.Storage.Streams.IInputStream* printTicketStream, [out] [retval] Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicketValidationResult)]
                [uuid(0AD1F392-DA7B-4A36-BF36-6A99A62E2059)]
                interface IWorkflowPrintTicketValidationResult : IInspectable
                {
                    [propget] HRESULT Validated([out] [retval] boolean* value);
                    [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintTicketCapabilities
                {
                    [default] interface Windows.Graphics.Printing.PrintTicket.IPrintTicketCapabilities;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintTicketFeature
                {
                    [default] interface Windows.Graphics.Printing.PrintTicket.IPrintTicketFeature;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintTicketOption
                {
                    [default] interface Windows.Graphics.Printing.PrintTicket.IPrintTicketOption;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintTicketParameterDefinition
                {
                    [default] interface Windows.Graphics.Printing.PrintTicket.IPrintTicketParameterDefinition;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintTicketParameterInitializer
                {
                    [default] interface Windows.Graphics.Printing.PrintTicket.IPrintTicketParameterInitializer;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintTicketValue
                {
                    [default] interface Windows.Graphics.Printing.PrintTicket.IPrintTicketValue;
                }

                [activatable(Windows.Graphics.Printing.PrintTicket.IWorkflowPrintTicketFactory, Windows.Foundation.UniversalApiContract, 19.0)]
                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass WorkflowPrintTicket
                {
                    [default] interface Windows.Graphics.Printing.PrintTicket.IWorkflowPrintTicket;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass WorkflowPrintTicketValidationResult
                {
                    [default] interface Windows.Graphics.Printing.PrintTicket.IWorkflowPrintTicketValidationResult;
                }
            }
        }
    }
}
