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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.ApplicationModel.Activation.idl";
import "Windows.Graphics.Printing.PrintTicket.idl";
import "Windows.Storage.Streams.idl";

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

            interface IActivatedEventArgsWithUser;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        runtimeclass Deferral;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace PrintTicket
            {
                runtimeclass WorkflowPrintTicket;
            }
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IInputStream;

            interface IOutputStream;
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace Workflow
            {
                typedef enum PrintWorkflowSessionStatus PrintWorkflowSessionStatus;

                typedef enum PrintWorkflowSubmittedStatus PrintWorkflowSubmittedStatus;

                interface IPrintWorkflowBackgroundSession;

                interface IPrintWorkflowBackgroundSetupRequestedEventArgs;

                interface IPrintWorkflowConfiguration;

                interface IPrintWorkflowForegroundSession;

                interface IPrintWorkflowForegroundSetupRequestedEventArgs;

                interface IPrintWorkflowObjectModelSourceFileContent;

                interface IPrintWorkflowObjectModelTargetPackage;

                interface IPrintWorkflowSourceContent;

                interface IPrintWorkflowSpoolStreamContent;

                interface IPrintWorkflowStreamTarget;

                interface IPrintWorkflowSubmittedEventArgs;

                interface IPrintWorkflowSubmittedOperation;

                interface IPrintWorkflowTarget;

                interface IPrintWorkflowTriggerDetails;

                interface IPrintWorkflowUIActivatedEventArgs;

                interface IPrintWorkflowXpsDataAvailableEventArgs;

                runtimeclass PrintWorkflowBackgroundSession;

                runtimeclass PrintWorkflowBackgroundSetupRequestedEventArgs;

                runtimeclass PrintWorkflowConfiguration;

                runtimeclass PrintWorkflowForegroundSession;

                runtimeclass PrintWorkflowForegroundSetupRequestedEventArgs;

                runtimeclass PrintWorkflowObjectModelSourceFileContent;

                runtimeclass PrintWorkflowObjectModelTargetPackage;

                runtimeclass PrintWorkflowSourceContent;

                runtimeclass PrintWorkflowSpoolStreamContent;

                runtimeclass PrintWorkflowStreamTarget;

                runtimeclass PrintWorkflowSubmittedEventArgs;

                runtimeclass PrintWorkflowSubmittedOperation;

                runtimeclass PrintWorkflowTarget;

                runtimeclass PrintWorkflowTriggerDetails;

                runtimeclass PrintWorkflowUIActivatedEventArgs;

                runtimeclass PrintWorkflowXpsDataAvailableEventArgs;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace Workflow
            {
                declare
                {
                    interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.Workflow.PrintWorkflowBackgroundSession*, Windows.Graphics.Printing.Workflow.PrintWorkflowBackgroundSetupRequestedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.Workflow.PrintWorkflowBackgroundSession*, Windows.Graphics.Printing.Workflow.PrintWorkflowSubmittedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.Workflow.PrintWorkflowForegroundSession*, Windows.Graphics.Printing.Workflow.PrintWorkflowForegroundSetupRequestedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.Workflow.PrintWorkflowForegroundSession*, Windows.Graphics.Printing.Workflow.PrintWorkflowXpsDataAvailableEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Graphics
    {
        namespace Printing
        {
            namespace Workflow
            {
                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                enum PrintWorkflowSessionStatus
                {
                    Started   = 0,
                    Completed = 1,
                    Aborted   = 2,
                    Closed    = 3
                };

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                enum PrintWorkflowSubmittedStatus
                {
                    Succeeded = 0,
                    Canceled  = 1,
                    Failed    = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowBackgroundSession)]
                [uuid(5B7913BA-0C5E-528A-7458-86A46CBDDC45)]
                interface IPrintWorkflowBackgroundSession : IInspectable
                {
                    [eventadd] HRESULT SetupRequested([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.Workflow.PrintWorkflowBackgroundSession*, Windows.Graphics.Printing.Workflow.PrintWorkflowBackgroundSetupRequestedEventArgs*>* setupEventHandler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SetupRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT Submitted([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.Workflow.PrintWorkflowBackgroundSession*, Windows.Graphics.Printing.Workflow.PrintWorkflowSubmittedEventArgs*>* submittedEventHandler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT Submitted([in] EventRegistrationToken token);
                    [propget] HRESULT Status([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowSessionStatus* value);
                    HRESULT Start();
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowBackgroundSetupRequestedEventArgs)]
                [uuid(43E97342-1750-59C9-61FB-383748A20362)]
                interface IPrintWorkflowBackgroundSetupRequestedEventArgs : IInspectable
                {
                    HRESULT GetUserPrintTicketAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket*>** operation);
                    [propget] HRESULT Configuration([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowConfiguration** configuration);
                    HRESULT SetRequiresUI();
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowConfiguration)]
                [uuid(D0AAC4ED-FD4B-5DF5-4BB6-8D0D159EBE3F)]
                interface IPrintWorkflowConfiguration : IInspectable
                {
                    [propget] HRESULT SourceAppDisplayName([out] [retval] HSTRING* value);
                    [propget] HRESULT JobTitle([out] [retval] HSTRING* value);
                    [propget] HRESULT SessionId([out] [retval] HSTRING* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowForegroundSession)]
                [uuid(C79B63D0-F8EC-4CEB-953A-C8876157DD33)]
                interface IPrintWorkflowForegroundSession : IInspectable
                {
                    [eventadd] HRESULT SetupRequested([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.Workflow.PrintWorkflowForegroundSession*, Windows.Graphics.Printing.Workflow.PrintWorkflowForegroundSetupRequestedEventArgs*>* setupEventHandler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT SetupRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT XpsDataAvailable([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing.Workflow.PrintWorkflowForegroundSession*, Windows.Graphics.Printing.Workflow.PrintWorkflowXpsDataAvailableEventArgs*>* xpsDataAvailableEventHandler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT XpsDataAvailable([in] EventRegistrationToken token);
                    [propget] HRESULT Status([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowSessionStatus* value);
                    HRESULT Start();
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowForegroundSetupRequestedEventArgs)]
                [uuid(BBE38247-9C1B-4DD3-9B2B-C80468D941B3)]
                interface IPrintWorkflowForegroundSetupRequestedEventArgs : IInspectable
                {
                    HRESULT GetUserPrintTicketAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket*>** operation);
                    [propget] HRESULT Configuration([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowConfiguration** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowObjectModelSourceFileContent)]
                [uuid(C36C8A6A-8A2A-419A-B3C3-2090E6BFAB2F)]
                interface IPrintWorkflowObjectModelSourceFileContent : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowObjectModelTargetPackage)]
                [uuid(7D96BC74-9B54-4CA1-AD3A-979C3D44DDAC)]
                interface IPrintWorkflowObjectModelTargetPackage : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowSourceContent)]
                [uuid(1A28C641-CEB1-4533-BB73-FBE63EEFDB18)]
                interface IPrintWorkflowSourceContent : IInspectable
                {
                    HRESULT GetJobPrintTicketAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket*>** operation);
                    HRESULT GetSourceSpoolDataAsStreamContent([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowSpoolStreamContent** result);
                    HRESULT GetSourceSpoolDataAsXpsObjectModel([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowObjectModelSourceFileContent** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowSpoolStreamContent)]
                [uuid(72E55ECE-E406-4B74-84E1-3FF3FDCDAF70)]
                interface IPrintWorkflowSpoolStreamContent : IInspectable
                {
                    HRESULT GetInputStream([out] [retval] Windows.Storage.Streams.IInputStream** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowStreamTarget)]
                [uuid(B23BBA84-8565-488B-9839-1C9E7C7AA916)]
                interface IPrintWorkflowStreamTarget : IInspectable
                {
                    HRESULT GetOutputStream([out] [retval] Windows.Storage.Streams.IOutputStream** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowSubmittedEventArgs)]
                [uuid(3ADD0A41-3794-5569-5C87-40E8FF720F83)]
                interface IPrintWorkflowSubmittedEventArgs : IInspectable
                {
                    [propget] HRESULT Operation([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowSubmittedOperation** value);
                    HRESULT GetTarget([in] Windows.Graphics.Printing.PrintTicket.WorkflowPrintTicket* jobPrintTicket, [out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowTarget** result);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowSubmittedOperation)]
                [uuid(2E4E6216-3BE1-5F0F-5C81-A5A2BD4EAB0E)]
                interface IPrintWorkflowSubmittedOperation : IInspectable
                {
                    HRESULT Complete([in] Windows.Graphics.Printing.Workflow.PrintWorkflowSubmittedStatus status);
                    [propget] HRESULT Configuration([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowConfiguration** value);
                    [propget] HRESULT XpsContent([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowSourceContent** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowTarget)]
                [uuid(29DA276C-0A73-5AED-4F3D-970D3251F057)]
                interface IPrintWorkflowTarget : IInspectable
                {
                    [propget] HRESULT TargetAsStream([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowStreamTarget** value);
                    [propget] HRESULT TargetAsXpsObjectModelPackage([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowObjectModelTargetPackage** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowTriggerDetails)]
                [uuid(5739D868-9D86-4052-B0CB-F310BECD59BB)]
                interface IPrintWorkflowTriggerDetails : IInspectable
                {
                    [propget] HRESULT PrintWorkflowSession([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowBackgroundSession** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowUIActivatedEventArgs)]
                [uuid(BC8A844D-09EB-5746-72A6-8DC8B5EDBE9B)]
                interface IPrintWorkflowUIActivatedEventArgs : IInspectable
                    requires
                        Windows.ApplicationModel.Activation.IActivatedEventArgs,
                        Windows.ApplicationModel.Activation.IActivatedEventArgsWithUser
                {
                    [propget] HRESULT PrintWorkflowSession([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowForegroundSession** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Graphics.Printing.Workflow.PrintWorkflowXpsDataAvailableEventArgs)]
                [uuid(4D11C331-54D1-434E-BE0E-82C5FA58E5B2)]
                interface IPrintWorkflowXpsDataAvailableEventArgs : IInspectable
                {
                    [propget] HRESULT Operation([out] [retval] Windows.Graphics.Printing.Workflow.PrintWorkflowSubmittedOperation** value);
                    HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowBackgroundSession
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowBackgroundSession;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowBackgroundSetupRequestedEventArgs
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowBackgroundSetupRequestedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowConfiguration
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowConfiguration;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowForegroundSession
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowForegroundSession;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowForegroundSetupRequestedEventArgs
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowForegroundSetupRequestedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowObjectModelSourceFileContent
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowObjectModelSourceFileContent;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowObjectModelTargetPackage
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowObjectModelTargetPackage;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowSourceContent
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowSourceContent;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowSpoolStreamContent
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowSpoolStreamContent;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowStreamTarget
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowStreamTarget;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowSubmittedEventArgs
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowSubmittedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowSubmittedOperation
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowSubmittedOperation;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowTarget
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowTarget;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowTriggerDetails
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowTriggerDetails;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowUIActivatedEventArgs
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowUIActivatedEventArgs;
                    interface Windows.ApplicationModel.Activation.IActivatedEventArgsWithUser;
                    interface Windows.ApplicationModel.Activation.IActivatedEventArgs;
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PrintWorkflowXpsDataAvailableEventArgs
                {
                    [default] interface Windows.Graphics.Printing.Workflow.IPrintWorkflowXpsDataAvailableEventArgs;
                }
            }
        }
    }
}
