//
// 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.Foundation.Numerics.idl";
import "Windows.Storage.Streams.idl";
import "Windows.UI.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            interface IPropertySet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;
    }
}
namespace Windows
{
    namespace Foundation
    {
        namespace Numerics
        {
            typedef struct Matrix4x4 Matrix4x4;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct TimeSpan TimeSpan;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;

            interface IRandomAccessStream;

            interface IRandomAccessStreamWithContentType;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Printing3D
        {
            apicontract Printing3DContract;

            typedef enum Print3DTaskCompletion Print3DTaskCompletion;

            typedef enum Print3DTaskDetail Print3DTaskDetail;

            typedef enum Printing3DBufferFormat Printing3DBufferFormat;

            typedef enum Printing3DMeshVerificationMode Printing3DMeshVerificationMode;

            typedef enum Printing3DModelUnit Printing3DModelUnit;

            typedef enum Printing3DObjectType Printing3DObjectType;

            typedef enum Printing3DPackageCompression Printing3DPackageCompression;

            typedef enum Printing3DTextureEdgeBehavior Printing3DTextureEdgeBehavior;

            typedef struct Printing3DBufferDescription Printing3DBufferDescription;

            delegate Print3DTaskSourceRequestedHandler;

            interface IPrint3DManager;

            interface IPrint3DManagerStatics;

            interface IPrint3DTask;

            interface IPrint3DTaskCompletedEventArgs;

            interface IPrint3DTaskRequest;

            interface IPrint3DTaskRequestedEventArgs;

            interface IPrint3DTaskSourceChangedEventArgs;

            interface IPrint3DTaskSourceRequestedArgs;

            interface IPrinting3D3MFPackage;

            interface IPrinting3D3MFPackage2;

            interface IPrinting3D3MFPackageStatics;

            interface IPrinting3DBaseMaterial;

            interface IPrinting3DBaseMaterialGroup;

            interface IPrinting3DBaseMaterialGroupFactory;

            interface IPrinting3DBaseMaterialStatics;

            interface IPrinting3DColorMaterial;

            interface IPrinting3DColorMaterial2;

            interface IPrinting3DColorMaterialGroup;

            interface IPrinting3DColorMaterialGroupFactory;

            interface IPrinting3DComponent;

            interface IPrinting3DComponentWithMatrix;

            interface IPrinting3DCompositeMaterial;

            interface IPrinting3DCompositeMaterialGroup;

            interface IPrinting3DCompositeMaterialGroup2;

            interface IPrinting3DCompositeMaterialGroupFactory;

            interface IPrinting3DFaceReductionOptions;

            interface IPrinting3DMaterial;

            interface IPrinting3DMesh;

            interface IPrinting3DMeshVerificationResult;

            interface IPrinting3DModel;

            interface IPrinting3DModel2;

            interface IPrinting3DModelTexture;

            interface IPrinting3DMultiplePropertyMaterial;

            interface IPrinting3DMultiplePropertyMaterialGroup;

            interface IPrinting3DMultiplePropertyMaterialGroupFactory;

            interface IPrinting3DTexture2CoordMaterial;

            interface IPrinting3DTexture2CoordMaterialGroup;

            interface IPrinting3DTexture2CoordMaterialGroup2;

            interface IPrinting3DTexture2CoordMaterialGroupFactory;

            interface IPrinting3DTextureResource;

            runtimeclass Print3DManager;

            runtimeclass Print3DTask;

            runtimeclass Print3DTaskCompletedEventArgs;

            runtimeclass Print3DTaskRequest;

            runtimeclass Print3DTaskRequestedEventArgs;

            runtimeclass Print3DTaskSourceChangedEventArgs;

            runtimeclass Print3DTaskSourceRequestedArgs;

            runtimeclass Printing3D3MFPackage;

            runtimeclass Printing3DBaseMaterial;

            runtimeclass Printing3DBaseMaterialGroup;

            runtimeclass Printing3DColorMaterial;

            runtimeclass Printing3DColorMaterialGroup;

            runtimeclass Printing3DComponent;

            runtimeclass Printing3DComponentWithMatrix;

            runtimeclass Printing3DCompositeMaterial;

            runtimeclass Printing3DCompositeMaterialGroup;

            runtimeclass Printing3DFaceReductionOptions;

            runtimeclass Printing3DMaterial;

            runtimeclass Printing3DMesh;

            runtimeclass Printing3DMeshVerificationResult;

            runtimeclass Printing3DModel;

            runtimeclass Printing3DModelTexture;

            runtimeclass Printing3DMultiplePropertyMaterial;

            runtimeclass Printing3DMultiplePropertyMaterialGroup;

            runtimeclass Printing3DTexture2CoordMaterial;

            runtimeclass Printing3DTexture2CoordMaterialGroup;

            runtimeclass Printing3DTextureResource;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Graphics
    {
        namespace Printing3D
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DBaseMaterial*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DColorMaterial*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DColorMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DComponent*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DComponentWithMatrix*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DCompositeMaterial*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DMesh*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DModelTexture*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterial*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Printing3D.Printing3DTextureResource*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DBaseMaterial*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DColorMaterial*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DColorMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DComponent*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DComponentWithMatrix*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DCompositeMaterial*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DMesh*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DModelTexture*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterial*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Printing3D.Printing3DTextureResource*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DBaseMaterial*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DColorMaterial*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DColorMaterialGroup*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DComponent*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DComponentWithMatrix*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DCompositeMaterial*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DMesh*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DModelTexture*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterial*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Printing3D.Printing3DTextureResource*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DBaseMaterial*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DColorMaterial*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DColorMaterialGroup*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DComponent*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DComponentWithMatrix*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DCompositeMaterial*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DMesh*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DModelTexture*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterial*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DTextureResource*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing3D.Printing3D3MFPackage*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing3D.Printing3DMeshVerificationResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing3D.Printing3DModel*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing3D.Print3DManager*, Windows.Graphics.Printing3D.Print3DTaskRequestedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing3D.Print3DTask*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing3D.Print3DTask*, Windows.Graphics.Printing3D.Print3DTaskCompletedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing3D.Print3DTask*, Windows.Graphics.Printing3D.Print3DTaskSourceChangedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Graphics
    {
        namespace Printing3D
        {
            [contractversion(4.0)]
            apicontract Printing3DContract
            {
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            enum Print3DTaskCompletion
            {
                Abandoned = 0,
                Canceled  = 1,
                Failed    = 2,
                Slicing   = 3,
                Submitted = 4
            };

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            enum Print3DTaskDetail
            {
                Unknown                  = 0,
                ModelExceedsPrintBed     = 1,
                UploadFailed             = 2,
                InvalidMaterialSelection = 3,
                InvalidModel             = 4,
                ModelNotManifold         = 5,
                InvalidPrintTicket       = 6
            };

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            enum Printing3DBufferFormat
            {
                Unknown           = 0,
                R32G32B32A32Float = 2,
                R32G32B32A32UInt  = 3,
                R32G32B32Float    = 6,
                R32G32B32UInt     = 7,
                [contract(Windows.Graphics.Printing3D.Printing3DContract, 2.0)]
                Printing3DDouble  = 500,
                [contract(Windows.Graphics.Printing3D.Printing3DContract, 2.0)]
                Printing3DUInt    = 501
            };

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            enum Printing3DMeshVerificationMode
            {
                FindFirstError = 0,
                FindAllErrors  = 1
            };

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            enum Printing3DModelUnit
            {
                Meter      = 0,
                Micron     = 1,
                Millimeter = 2,
                Centimeter = 3,
                Inch       = 4,
                Foot       = 5
            };

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            enum Printing3DObjectType
            {
                Model   = 0,
                Support = 1,
                Others  = 2
            };

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 4.0)]
            enum Printing3DPackageCompression
            {
                Low    = 0,
                Medium = 1,
                High   = 2
            };

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            enum Printing3DTextureEdgeBehavior
            {
                None   = 0,
                Wrap   = 1,
                Mirror = 2,
                Clamp  = 3
            };

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            struct Printing3DBufferDescription
            {
                Windows.Graphics.Printing3D.Printing3DBufferFormat Format;
                UINT32 Stride;
            };

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [uuid(E9175E70-C917-46DE-BB51-D9A94DB3711F)]
            delegate
                HRESULT Print3DTaskSourceRequestedHandler([in] Windows.Graphics.Printing3D.Print3DTaskSourceRequestedArgs* args);

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Print3DManager)]
            [uuid(4D2FCB0A-7366-4971-8BD5-17C4E3E8C6C0)]
            interface IPrint3DManager : IInspectable
            {
                [eventadd] HRESULT TaskRequested([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing3D.Print3DManager*, Windows.Graphics.Printing3D.Print3DTaskRequestedEventArgs*>* eventHandler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT TaskRequested([in] EventRegistrationToken token);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Print3DManager)]
            [uuid(0EF1CAFE-A9AD-4C08-A917-1D1F863EABCB)]
            interface IPrint3DManagerStatics : IInspectable
            {
                HRESULT GetForCurrentView([out] [retval] Windows.Graphics.Printing3D.Print3DManager** result);
                HRESULT ShowPrintUIAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** result);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Print3DTask)]
            [uuid(8CE3D080-2118-4C28-80DE-F426D70191AE)]
            interface IPrint3DTask : IInspectable
            {
                [propget] HRESULT Source([out] [retval] Windows.Graphics.Printing3D.Printing3D3MFPackage** value);
                [eventadd] HRESULT Submitting([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing3D.Print3DTask*, IInspectable*>* eventHandler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT Submitting([in] EventRegistrationToken eventCookie);
                [eventadd] HRESULT Completed([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing3D.Print3DTask*, Windows.Graphics.Printing3D.Print3DTaskCompletedEventArgs*>* eventHandler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT Completed([in] EventRegistrationToken eventCookie);
                [eventadd] HRESULT SourceChanged([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Printing3D.Print3DTask*, Windows.Graphics.Printing3D.Print3DTaskSourceChangedEventArgs*>* eventHandler, [out] [retval] EventRegistrationToken* eventCookie);
                [eventremove] HRESULT SourceChanged([in] EventRegistrationToken eventCookie);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Print3DTaskCompletedEventArgs)]
            [uuid(CC1914AF-2614-4F1D-ACCC-D6FC4FDA5455)]
            interface IPrint3DTaskCompletedEventArgs : IInspectable
            {
                [propget] HRESULT Completion([out] [retval] Windows.Graphics.Printing3D.Print3DTaskCompletion* value);
                [propget] HRESULT ExtendedStatus([out] [retval] Windows.Graphics.Printing3D.Print3DTaskDetail* value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Print3DTaskRequest)]
            [uuid(2595C46F-2245-4C5A-8731-0D604DC6BC3C)]
            interface IPrint3DTaskRequest : IInspectable
            {
                HRESULT CreateTask([in] HSTRING title, [in] HSTRING printerId, [in] Windows.Graphics.Printing3D.Print3DTaskSourceRequestedHandler* handler, [out] [retval] Windows.Graphics.Printing3D.Print3DTask** result);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Print3DTaskRequestedEventArgs)]
            [uuid(150CB77F-18C5-40D7-9F40-FAB3096E05A9)]
            interface IPrint3DTaskRequestedEventArgs : IInspectable
            {
                [propget] HRESULT Request([out] [retval] Windows.Graphics.Printing3D.Print3DTaskRequest** value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Print3DTaskSourceChangedEventArgs)]
            [uuid(5BCD34AF-24E9-4C10-8D07-14C346BA3FCF)]
            interface IPrint3DTaskSourceChangedEventArgs : IInspectable
            {
                [propget] HRESULT Source([out] [retval] Windows.Graphics.Printing3D.Printing3D3MFPackage** value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Print3DTaskSourceRequestedArgs)]
            [uuid(C77C9ABA-24AF-424D-A3BF-92250C355602)]
            interface IPrint3DTaskSourceRequestedArgs : IInspectable
            {
                HRESULT SetSource([in] Windows.Graphics.Printing3D.Printing3D3MFPackage* source);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3D3MFPackage)]
            [uuid(F64DD5C8-2AB7-45A9-A1B7-267E948D5B18)]
            interface IPrinting3D3MFPackage : IInspectable
            {
                HRESULT SaveAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Storage.Streams.IRandomAccessStream*>** operation);
                [propget] HRESULT PrintTicket([out] [retval] Windows.Storage.Streams.IRandomAccessStream** value);
                [propput] HRESULT PrintTicket([in] Windows.Storage.Streams.IRandomAccessStream* value);
                [propget] HRESULT ModelPart([out] [retval] Windows.Storage.Streams.IRandomAccessStream** value);
                [propput] HRESULT ModelPart([in] Windows.Storage.Streams.IRandomAccessStream* value);
                [propget] HRESULT Thumbnail([out] [retval] Windows.Graphics.Printing3D.Printing3DTextureResource** value);
                [propput] HRESULT Thumbnail([in] Windows.Graphics.Printing3D.Printing3DTextureResource* value);
                [propget] HRESULT Textures([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DTextureResource*>** value);
                HRESULT LoadModelFromPackageAsync([in] Windows.Storage.Streams.IRandomAccessStream* value, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing3D.Printing3DModel*>** operation);
                HRESULT SaveModelToPackageAsync([in] Windows.Graphics.Printing3D.Printing3DModel* value, [out] [retval] Windows.Foundation.IAsyncAction** operation);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 4.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3D3MFPackage)]
            [uuid(965C7AC4-93CB-4430-92B8-789CD454F883)]
            interface IPrinting3D3MFPackage2 : IInspectable
            {
                [propget] HRESULT Compression([out] [retval] Windows.Graphics.Printing3D.Printing3DPackageCompression* value);
                [propput] HRESULT Compression([in] Windows.Graphics.Printing3D.Printing3DPackageCompression value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3D3MFPackage)]
            [uuid(7058D9AF-7A9A-4787-B817-F6F459214823)]
            interface IPrinting3D3MFPackageStatics : IInspectable
            {
                HRESULT LoadAsync([in] Windows.Storage.Streams.IRandomAccessStream* value, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing3D.Printing3D3MFPackage*>** operation);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DBaseMaterial)]
            [uuid(D0F0E743-C50C-4BCB-9D04-FC16ADCEA2C9)]
            interface IPrinting3DBaseMaterial : IInspectable
            {
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propput] HRESULT Name([in] HSTRING value);
                [propget] HRESULT Color([out] [retval] Windows.Graphics.Printing3D.Printing3DColorMaterial** value);
                [propput] HRESULT Color([in] Windows.Graphics.Printing3D.Printing3DColorMaterial* value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup)]
            [uuid(94F070B8-2515-4A8D-A1F0-D0FC13D06021)]
            interface IPrinting3DBaseMaterialGroup : IInspectable
            {
                [propget] HRESULT Bases([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DBaseMaterial*>** value);
                [propget] HRESULT MaterialGroupId([out] [retval] UINT32* value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup)]
            [uuid(5C1546DC-8697-4193-976B-84BB4116E5BF)]
            interface IPrinting3DBaseMaterialGroupFactory : IInspectable
            {
                HRESULT Create([in] UINT32 MaterialGroupId, [out] [retval] Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup** result);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DBaseMaterial)]
            [uuid(815A47BC-374A-476D-BE92-3ECFD1CB9776)]
            interface IPrinting3DBaseMaterialStatics : IInspectable
            {
                [propget] HRESULT Abs([out] [retval] HSTRING* value);
                [propget] HRESULT Pla([out] [retval] HSTRING* value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DColorMaterial)]
            [uuid(E1899928-7CE7-4285-A35D-F145C9510C7B)]
            interface IPrinting3DColorMaterial : IInspectable
            {
                [propget] HRESULT Value([out] [retval] UINT32* value);
                [propput] HRESULT Value([in] UINT32 value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 2.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DColorMaterial)]
            [uuid(FAB0E852-0AEF-44E9-9DDD-36EEEA5ACD44)]
            interface IPrinting3DColorMaterial2 : IInspectable
            {
                [propget] HRESULT Color([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT Color([in] Windows.UI.Color value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DColorMaterialGroup)]
            [uuid(001A6BD0-AADF-4226-AFE9-F369A0B45004)]
            interface IPrinting3DColorMaterialGroup : IInspectable
            {
                [propget] HRESULT Colors([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DColorMaterial*>** value);
                [propget] HRESULT MaterialGroupId([out] [retval] UINT32* value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DColorMaterialGroup)]
            [uuid(71D38D6D-B1EA-4A5B-BC54-19C65F3DF044)]
            interface IPrinting3DColorMaterialGroupFactory : IInspectable
            {
                HRESULT Create([in] UINT32 MaterialGroupId, [out] [retval] Windows.Graphics.Printing3D.Printing3DColorMaterialGroup** result);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DComponent)]
            [uuid(7E287845-BF7F-4CDB-A27F-30A01437FEDE)]
            interface IPrinting3DComponent : IInspectable
            {
                [propget] HRESULT Mesh([out] [retval] Windows.Graphics.Printing3D.Printing3DMesh** value);
                [propput] HRESULT Mesh([in] Windows.Graphics.Printing3D.Printing3DMesh* value);
                [propget] HRESULT Components([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DComponentWithMatrix*>** value);
                [propget] HRESULT Thumbnail([out] [retval] Windows.Graphics.Printing3D.Printing3DTextureResource** value);
                [propput] HRESULT Thumbnail([in] Windows.Graphics.Printing3D.Printing3DTextureResource* value);
                [propget] HRESULT Type([out] [retval] Windows.Graphics.Printing3D.Printing3DObjectType* value);
                [propput] HRESULT Type([in] Windows.Graphics.Printing3D.Printing3DObjectType value);
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propput] HRESULT Name([in] HSTRING value);
                [propget] HRESULT PartNumber([out] [retval] HSTRING* value);
                [propput] HRESULT PartNumber([in] HSTRING value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DComponentWithMatrix)]
            [uuid(3279F335-0EF0-456B-9A21-49BEBE8B51C2)]
            interface IPrinting3DComponentWithMatrix : IInspectable
            {
                [propget] HRESULT Component([out] [retval] Windows.Graphics.Printing3D.Printing3DComponent** value);
                [propput] HRESULT Component([in] Windows.Graphics.Printing3D.Printing3DComponent* value);
                [propget] HRESULT Matrix([out] [retval] Windows.Foundation.Numerics.Matrix4x4* value);
                [propput] HRESULT Matrix([in] Windows.Foundation.Numerics.Matrix4x4 value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DCompositeMaterial)]
            [uuid(462238DD-562E-4F6C-882D-F4D841FD63C7)]
            interface IPrinting3DCompositeMaterial : IInspectable
            {
                [propget] HRESULT Values([out] [retval] Windows.Foundation.Collections.IVector<DOUBLE>** value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup)]
            [uuid(8D946A5B-40F1-496D-A5FB-340A5A678E30)]
            interface IPrinting3DCompositeMaterialGroup : IInspectable
            {
                [propget] HRESULT Composites([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DCompositeMaterial*>** value);
                [propget] HRESULT MaterialGroupId([out] [retval] UINT32* value);
                [propget] HRESULT MaterialIndices([out] [retval] Windows.Foundation.Collections.IVector<UINT32>** value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 3.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup)]
            [uuid(06E86D62-7D3B-41E1-944C-BAFDE4555483)]
            interface IPrinting3DCompositeMaterialGroup2 : IInspectable
            {
                [propget] HRESULT BaseMaterialGroup([out] [retval] Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup** value);
                [propput] HRESULT BaseMaterialGroup([in] Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup* value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup)]
            [uuid(D08ECD13-92FF-43AA-A627-8D43C22C817E)]
            interface IPrinting3DCompositeMaterialGroupFactory : IInspectable
            {
                HRESULT Create([in] UINT32 MaterialGroupId, [out] [retval] Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup** result);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 3.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DFaceReductionOptions)]
            [uuid(BBFED397-2D74-46F7-BE85-99A67BBB6629)]
            interface IPrinting3DFaceReductionOptions : IInspectable
            {
                [propget] HRESULT MaxReductionArea([out] [retval] DOUBLE* value);
                [propput] HRESULT MaxReductionArea([in] DOUBLE value);
                [propget] HRESULT TargetTriangleCount([out] [retval] UINT32* value);
                [propput] HRESULT TargetTriangleCount([in] UINT32 value);
                [propget] HRESULT MaxEdgeLength([out] [retval] DOUBLE* value);
                [propput] HRESULT MaxEdgeLength([in] DOUBLE value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DMaterial)]
            [uuid(378DB256-ED62-4952-B85B-03567D7C465E)]
            interface IPrinting3DMaterial : IInspectable
            {
                [propget] HRESULT BaseGroups([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DBaseMaterialGroup*>** value);
                [propget] HRESULT ColorGroups([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DColorMaterialGroup*>** value);
                [propget] HRESULT Texture2CoordGroups([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup*>** value);
                [propget] HRESULT CompositeGroups([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DCompositeMaterialGroup*>** value);
                [propget] HRESULT MultiplePropertyGroups([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup*>** value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DMesh)]
            [uuid(192E90DC-0228-2E01-BC20-C5290CBF32C4)]
            interface IPrinting3DMesh : IInspectable
            {
                [propget] HRESULT VertexCount([out] [retval] UINT32* value);
                [propput] HRESULT VertexCount([in] UINT32 value);
                [propget] HRESULT IndexCount([out] [retval] UINT32* value);
                [propput] HRESULT IndexCount([in] UINT32 value);
                [propget] HRESULT VertexPositionsDescription([out] [retval] Windows.Graphics.Printing3D.Printing3DBufferDescription* value);
                [propput] HRESULT VertexPositionsDescription([in] Windows.Graphics.Printing3D.Printing3DBufferDescription value);
                [propget] HRESULT VertexNormalsDescription([out] [retval] Windows.Graphics.Printing3D.Printing3DBufferDescription* value);
                [propput] HRESULT VertexNormalsDescription([in] Windows.Graphics.Printing3D.Printing3DBufferDescription value);
                [propget] HRESULT TriangleIndicesDescription([out] [retval] Windows.Graphics.Printing3D.Printing3DBufferDescription* value);
                [propput] HRESULT TriangleIndicesDescription([in] Windows.Graphics.Printing3D.Printing3DBufferDescription value);
                [propget] HRESULT TriangleMaterialIndicesDescription([out] [retval] Windows.Graphics.Printing3D.Printing3DBufferDescription* value);
                [propput] HRESULT TriangleMaterialIndicesDescription([in] Windows.Graphics.Printing3D.Printing3DBufferDescription value);
                HRESULT GetVertexPositions([out] [retval] Windows.Storage.Streams.IBuffer** buffer);
                HRESULT CreateVertexPositions([in] UINT32 value);
                HRESULT GetVertexNormals([out] [retval] Windows.Storage.Streams.IBuffer** buffer);
                HRESULT CreateVertexNormals([in] UINT32 value);
                HRESULT GetTriangleIndices([out] [retval] Windows.Storage.Streams.IBuffer** buffer);
                HRESULT CreateTriangleIndices([in] UINT32 value);
                HRESULT GetTriangleMaterialIndices([out] [retval] Windows.Storage.Streams.IBuffer** buffer);
                HRESULT CreateTriangleMaterialIndices([in] UINT32 value);
                [propget] HRESULT BufferDescriptionSet([out] [retval] Windows.Foundation.Collections.IPropertySet** value);
                [propget] HRESULT BufferSet([out] [retval] Windows.Foundation.Collections.IPropertySet** value);
                HRESULT VerifyAsync([in] Windows.Graphics.Printing3D.Printing3DMeshVerificationMode value, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Graphics.Printing3D.Printing3DMeshVerificationResult*>** operation);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DMeshVerificationResult)]
            [uuid(195671BA-E93A-4E8A-A46F-DEA8E852197E)]
            interface IPrinting3DMeshVerificationResult : IInspectable
            {
                [propget] HRESULT IsValid([out] [retval] boolean* value);
                [propget] HRESULT NonmanifoldTriangles([out] [retval] Windows.Foundation.Collections.IVectorView<UINT32>** value);
                [propget] HRESULT ReversedNormalTriangles([out] [retval] Windows.Foundation.Collections.IVectorView<UINT32>** value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DModel)]
            [uuid(2D012EF0-52FB-919A-77B0-4B1A3B80324F)]
            interface IPrinting3DModel : IInspectable
            {
                [propget] HRESULT Unit([out] [retval] Windows.Graphics.Printing3D.Printing3DModelUnit* value);
                [propput] HRESULT Unit([in] Windows.Graphics.Printing3D.Printing3DModelUnit value);
                [propget] HRESULT Textures([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DModelTexture*>** value);
                [propget] HRESULT Meshes([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DMesh*>** value);
                [propget] HRESULT Components([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DComponent*>** value);
                [propget] HRESULT Material([out] [retval] Windows.Graphics.Printing3D.Printing3DMaterial** value);
                [propput] HRESULT Material([in] Windows.Graphics.Printing3D.Printing3DMaterial* value);
                [propget] HRESULT Build([out] [retval] Windows.Graphics.Printing3D.Printing3DComponent** value);
                [propput] HRESULT Build([in] Windows.Graphics.Printing3D.Printing3DComponent* value);
                [propget] HRESULT Version([out] [retval] HSTRING* value);
                [propput] HRESULT Version([in] HSTRING value);
                [propget] HRESULT RequiredExtensions([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
                [propget] HRESULT Metadata([out] [retval] Windows.Foundation.Collections.IMap<HSTRING, HSTRING>** value);
                HRESULT RepairAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT Clone([out] [retval] Windows.Graphics.Printing3D.Printing3DModel** value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 3.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DModel)]
            [uuid(C92069C7-C841-47F3-A84E-A149FD08B657)]
            interface IPrinting3DModel2 : IInspectable
            {
                [overload("TryPartialRepairAsync")] HRESULT TryPartialRepairAsync([out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("TryPartialRepairAsync")] HRESULT TryPartialRepairWithTimeAsync([in] Windows.Foundation.TimeSpan maxWaitTime, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
                [overload("TryReduceFacesAsync")] HRESULT TryReduceFacesAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<boolean, DOUBLE>** operation);
                [overload("TryReduceFacesAsync")] HRESULT TryReduceFacesWithOptionsAsync([in] Windows.Graphics.Printing3D.Printing3DFaceReductionOptions* printing3DFaceReductionOptions, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<boolean, DOUBLE>** operation);
                [overload("TryReduceFacesAsync")] HRESULT TryReduceFacesWithOptionsAndTimeAsync([in] Windows.Graphics.Printing3D.Printing3DFaceReductionOptions* printing3DFaceReductionOptions, [in] Windows.Foundation.TimeSpan maxWait, [out] [retval] Windows.Foundation.IAsyncOperationWithProgress<boolean, DOUBLE>** operation);
                HRESULT RepairWithProgressAsync([out] [retval] Windows.Foundation.IAsyncOperationWithProgress<boolean, DOUBLE>** operation);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DModelTexture)]
            [uuid(5DAFCF01-B59D-483C-97BB-A4D546D1C75C)]
            interface IPrinting3DModelTexture : IInspectable
            {
                [propget] HRESULT TextureResource([out] [retval] Windows.Graphics.Printing3D.Printing3DTextureResource** value);
                [propput] HRESULT TextureResource([in] Windows.Graphics.Printing3D.Printing3DTextureResource* value);
                [propget] HRESULT TileStyleU([out] [retval] Windows.Graphics.Printing3D.Printing3DTextureEdgeBehavior* value);
                [propput] HRESULT TileStyleU([in] Windows.Graphics.Printing3D.Printing3DTextureEdgeBehavior value);
                [propget] HRESULT TileStyleV([out] [retval] Windows.Graphics.Printing3D.Printing3DTextureEdgeBehavior* value);
                [propput] HRESULT TileStyleV([in] Windows.Graphics.Printing3D.Printing3DTextureEdgeBehavior value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterial)]
            [uuid(25A6254B-C6E9-484D-A214-A25E5776BA62)]
            interface IPrinting3DMultiplePropertyMaterial : IInspectable
            {
                [propget] HRESULT MaterialIndices([out] [retval] Windows.Foundation.Collections.IVector<UINT32>** value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup)]
            [uuid(F0950519-AEB9-4515-A39B-A088FBBB277C)]
            interface IPrinting3DMultiplePropertyMaterialGroup : IInspectable
            {
                [propget] HRESULT MultipleProperties([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterial*>** value);
                [propget] HRESULT MaterialGroupIndices([out] [retval] Windows.Foundation.Collections.IVector<UINT32>** value);
                [propget] HRESULT MaterialGroupId([out] [retval] UINT32* value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup)]
            [uuid(323E196E-D4C6-451E-A814-4D78A210FE53)]
            interface IPrinting3DMultiplePropertyMaterialGroupFactory : IInspectable
            {
                HRESULT Create([in] UINT32 MaterialGroupId, [out] [retval] Windows.Graphics.Printing3D.Printing3DMultiplePropertyMaterialGroup** result);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial)]
            [uuid(8D844BFB-07E9-4986-9833-8DD3D48C6859)]
            interface IPrinting3DTexture2CoordMaterial : IInspectable
            {
                [propget] HRESULT Texture([out] [retval] Windows.Graphics.Printing3D.Printing3DModelTexture** value);
                [propput] HRESULT Texture([in] Windows.Graphics.Printing3D.Printing3DModelTexture* value);
                [propget] HRESULT U([out] [retval] DOUBLE* value);
                [propput] HRESULT U([in] DOUBLE value);
                [propget] HRESULT V([out] [retval] DOUBLE* value);
                [propput] HRESULT V([in] DOUBLE value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup)]
            [uuid(627D7CA7-6D90-4FB9-9FC4-9FEFF3DFA892)]
            interface IPrinting3DTexture2CoordMaterialGroup : IInspectable
            {
                [propget] HRESULT Texture2Coords([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterial*>** value);
                [propget] HRESULT MaterialGroupId([out] [retval] UINT32* value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 2.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup)]
            [uuid(69FBDBBA-B12E-429B-8386-DF5284F6E80F)]
            interface IPrinting3DTexture2CoordMaterialGroup2 : IInspectable
            {
                [propget] HRESULT Texture([out] [retval] Windows.Graphics.Printing3D.Printing3DModelTexture** value);
                [propput] HRESULT Texture([in] Windows.Graphics.Printing3D.Printing3DModelTexture* value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup)]
            [uuid(CBB049B0-468A-4C6F-B2A2-8EB8BA8DEA48)]
            interface IPrinting3DTexture2CoordMaterialGroupFactory : IInspectable
            {
                HRESULT Create([in] UINT32 MaterialGroupId, [out] [retval] Windows.Graphics.Printing3D.Printing3DTexture2CoordMaterialGroup** result);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [exclusiveto(Windows.Graphics.Printing3D.Printing3DTextureResource)]
            [uuid(A70DF32D-6AB1-44AE-BC45-A27382C0D38C)]
            interface IPrinting3DTextureResource : IInspectable
            {
                [propget] HRESULT TextureData([out] [retval] Windows.Storage.Streams.IRandomAccessStreamWithContentType** value);
                [propput] HRESULT TextureData([in] Windows.Storage.Streams.IRandomAccessStreamWithContentType* value);
                [propget] HRESULT Name([out] [retval] HSTRING* value);
                [propput] HRESULT Name([in] HSTRING value);
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Graphics.Printing3D.IPrint3DManagerStatics, Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [threading(both)]
            runtimeclass Print3DManager
            {
                [default] interface Windows.Graphics.Printing3D.IPrint3DManager;
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Print3DTask
            {
                [default] interface Windows.Graphics.Printing3D.IPrint3DTask;
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Print3DTaskCompletedEventArgs
            {
                [default] interface Windows.Graphics.Printing3D.IPrint3DTaskCompletedEventArgs;
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Print3DTaskRequest
            {
                [default] interface Windows.Graphics.Printing3D.IPrint3DTaskRequest;
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass Print3DTaskRequestedEventArgs
            {
                [default] interface Windows.Graphics.Printing3D.IPrint3DTaskRequestedEventArgs;
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Print3DTaskSourceChangedEventArgs
            {
                [default] interface Windows.Graphics.Printing3D.IPrint3DTaskSourceChangedEventArgs;
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Print3DTaskSourceRequestedArgs
            {
                [default] interface Windows.Graphics.Printing3D.IPrint3DTaskSourceRequestedArgs;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Graphics.Printing3D.IPrinting3D3MFPackageStatics, Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [threading(both)]
            runtimeclass Printing3D3MFPackage
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3D3MFPackage;
                [contract(Windows.Graphics.Printing3D.Printing3DContract, 4.0)] interface Windows.Graphics.Printing3D.IPrinting3D3MFPackage2;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Graphics.Printing3D.IPrinting3DBaseMaterialStatics, Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [threading(both)]
            runtimeclass Printing3DBaseMaterial
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DBaseMaterial;
            }

            [activatable(Windows.Graphics.Printing3D.IPrinting3DBaseMaterialGroupFactory, Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DBaseMaterialGroup
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DBaseMaterialGroup;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DColorMaterial
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DColorMaterial;
                [contract(Windows.Graphics.Printing3D.Printing3DContract, 2.0)] interface Windows.Graphics.Printing3D.IPrinting3DColorMaterial2;
            }

            [activatable(Windows.Graphics.Printing3D.IPrinting3DColorMaterialGroupFactory, Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DColorMaterialGroup
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DColorMaterialGroup;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DComponent
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DComponent;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DComponentWithMatrix
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DComponentWithMatrix;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DCompositeMaterial
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DCompositeMaterial;
            }

            [activatable(Windows.Graphics.Printing3D.IPrinting3DCompositeMaterialGroupFactory, Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DCompositeMaterialGroup
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DCompositeMaterialGroup;
                [contract(Windows.Graphics.Printing3D.Printing3DContract, 3.0)] interface Windows.Graphics.Printing3D.IPrinting3DCompositeMaterialGroup2;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 3.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DFaceReductionOptions
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DFaceReductionOptions;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DMaterial
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DMaterial;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DMesh
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DMesh;
            }

            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DMeshVerificationResult
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DMeshVerificationResult;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DModel
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DModel;
                [contract(Windows.Graphics.Printing3D.Printing3DContract, 3.0)] interface Windows.Graphics.Printing3D.IPrinting3DModel2;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DModelTexture
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DModelTexture;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DMultiplePropertyMaterial
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DMultiplePropertyMaterial;
            }

            [activatable(Windows.Graphics.Printing3D.IPrinting3DMultiplePropertyMaterialGroupFactory, Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DMultiplePropertyMaterialGroup
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DMultiplePropertyMaterialGroup;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DTexture2CoordMaterial
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DTexture2CoordMaterial;
            }

            [activatable(Windows.Graphics.Printing3D.IPrinting3DTexture2CoordMaterialGroupFactory, Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DTexture2CoordMaterialGroup
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DTexture2CoordMaterialGroup;
                [contract(Windows.Graphics.Printing3D.Printing3DContract, 2.0)] interface Windows.Graphics.Printing3D.IPrinting3DTexture2CoordMaterialGroup2;
            }

            [activatable(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [contract(Windows.Graphics.Printing3D.Printing3DContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Printing3DTextureResource
            {
                [default] interface Windows.Graphics.Printing3D.IPrinting3DTextureResource;
            }
        }
    }
}
