//
// 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";

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

                runtimeclass XmlDocument;
            }
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Data
    {
        namespace Xml
        {
            namespace Xsl
            {
                interface IXsltProcessor;

                interface IXsltProcessor2;

                interface IXsltProcessorFactory;

                runtimeclass XsltProcessor;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace Data
    {
        namespace Xml
        {
            namespace Xsl
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Data.Xml.Xsl.XsltProcessor)]
                [uuid(7B64703F-550C-48C6-A90F-93A5B964518F)]
                interface IXsltProcessor : IInspectable
                {
                    HRESULT TransformToString([in] Windows.Data.Xml.Dom.IXmlNode* inputNode, [out] [retval] HSTRING* output);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Data.Xml.Xsl.XsltProcessor)]
                [uuid(8DA45C56-97A5-44CB-A8BE-27D86280C70A)]
                interface IXsltProcessor2 : IInspectable
                {
                    HRESULT TransformToDocument([in] Windows.Data.Xml.Dom.IXmlNode* inputNode, [out] [retval] Windows.Data.Xml.Dom.XmlDocument** output);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Data.Xml.Xsl.XsltProcessor)]
                [uuid(274146C0-9A51-4663-BF30-0EF742146F20)]
                interface IXsltProcessorFactory : IInspectable
                {
                    HRESULT CreateInstance([in] Windows.Data.Xml.Dom.XmlDocument* document, [out] [retval] Windows.Data.Xml.Xsl.XsltProcessor** xsltProcessor);
                }

                [activatable(Windows.Data.Xml.Xsl.IXsltProcessorFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass XsltProcessor
                {
                    [default] interface Windows.Data.Xml.Xsl.IXsltProcessor;
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Data.Xml.Xsl.IXsltProcessor2;
                }
            }
        }
    }
}
