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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.Streams.idl";
import "Windows.UI.Xaml.idl";
import "Windows.UI.Xaml.Interop.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#include <Windows.Storage.Streams.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#if !defined(__windows2Eui2Examl_h__)")
cpp_quote("#include <Windows.UI.Xaml.h>")
cpp_quote("#endif // !defined(__windows2Eui2Examl_h__)")
cpp_quote("#if !defined(__windows2Eui2Examl2Einterop_h__)")
cpp_quote("#include <Windows.UI.Xaml.Interop.h>")
cpp_quote("#endif // !defined(__windows2Eui2Examl2Einterop_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        typedef struct Point Point;

        typedef struct Rect Rect;

        typedef struct Size Size;

        typedef struct TimeSpan TimeSpan;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStream;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            runtimeclass DependencyObject;

            runtimeclass DependencyProperty;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Interop
            {
                typedef struct TypeName TypeName;
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            runtimeclass UIElement;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Markup
            {
                typedef struct XamlBinaryWriterErrorInformation XamlBinaryWriterErrorInformation;

                typedef struct XmlnsDefinition XmlnsDefinition;

                interface IComponentConnector;

                interface IComponentConnector2;

                interface IDataTemplateComponent;

                interface IXamlBinaryWriter;

                interface IXamlBinaryWriterStatics;

                interface IXamlBindingHelper;

                interface IXamlBindingHelperStatics;

                interface IXamlMember;

                interface IXamlMetadataProvider;

                interface IXamlReader;

                interface IXamlReaderStatics;

                interface IXamlType;

                runtimeclass XamlBinaryWriter;

                runtimeclass XamlBindingHelper;

                runtimeclass XamlReader;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Markup
            {
                [version(0x06030000)]
                struct XamlBinaryWriterErrorInformation
                {
                    UINT32 InputStreamIndex;
                    UINT32 LineNumber;
                    UINT32 LinePosition;
                };

                [version(0x06020000)]
                struct XmlnsDefinition
                {
                    HSTRING XmlNamespace;
                    HSTRING Namespace;
                };

                [uuid(F6790987-E6E5-47F2-92C6-ECCCE4BA159A)]
                [version(0x06020000)]
                interface IComponentConnector : IInspectable
                {
                    HRESULT Connect([in] INT32 connectionId, [in] IInspectable* target);
                }

                [uuid(DC8F368B-ECCC-498E-B139-91142254D7AE)]
                [version(0x0A000000)]
                interface IComponentConnector2 : IInspectable
                {
                    HRESULT GetBindingConnector([in] INT32 connectionId, [in] IInspectable* target, [out] [retval] Windows.UI.Xaml.Markup.IComponentConnector** returnValue);
                }

                [uuid(08429DC8-8AB0-4747-AA9A-FEADFC8DA8E1)]
                [version(0x0A000000)]
                interface IDataTemplateComponent : IInspectable
                {
                    HRESULT Recycle();
                    HRESULT ProcessBindings([in] IInspectable* item, [in] INT32 itemIndex, [in] INT32 phase, [out] INT32* nextPhase);
                }

                [exclusiveto(Windows.UI.Xaml.Markup.XamlBinaryWriter)]
                [uuid(829D2AD3-620A-46F6-845D-436A05927100)]
                [version(0x06030000)]
                interface IXamlBinaryWriter : IInspectable
                {
                }

                [exclusiveto(Windows.UI.Xaml.Markup.XamlBinaryWriter)]
                [uuid(0D8ED07A-9B82-4AA8-B68B-026F2DE1CC86)]
                [version(0x06030000)]
                interface IXamlBinaryWriterStatics : IInspectable
                {
                    HRESULT Write([in] Windows.Foundation.Collections.IVector<Windows.Storage.Streams.IRandomAccessStream*>* inputStreams, [in] Windows.Foundation.Collections.IVector<Windows.Storage.Streams.IRandomAccessStream*>* outputStreams, [in] Windows.UI.Xaml.Markup.IXamlMetadataProvider* xamlMetadataProvider, [out] [retval] Windows.UI.Xaml.Markup.XamlBinaryWriterErrorInformation* returnValue);
                }

                [exclusiveto(Windows.UI.Xaml.Markup.XamlBindingHelper)]
                [uuid(FAA6FB06-8AB9-4EF7-8AE7-FBD30BBFD06D)]
                [version(0x0A000000)]
                interface IXamlBindingHelper : IInspectable
                {
                }

                [exclusiveto(Windows.UI.Xaml.Markup.XamlBindingHelper)]
                [uuid(F65CFB71-C80C-4FFA-86EE-558754EE336D)]
                [version(0x0A000000)]
                interface IXamlBindingHelperStatics : IInspectable
                {
                    [propget] HRESULT DataTemplateComponentProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                    HRESULT GetDataTemplateComponent([in] Windows.UI.Xaml.DependencyObject* element, [out] [retval] Windows.UI.Xaml.Markup.IDataTemplateComponent** value);
                    HRESULT SetDataTemplateComponent([in] Windows.UI.Xaml.DependencyObject* element, [in] Windows.UI.Xaml.Markup.IDataTemplateComponent* value);
                    HRESULT SuspendRendering([in] Windows.UI.Xaml.UIElement* target);
                    HRESULT ResumeRendering([in] Windows.UI.Xaml.UIElement* target);
                    HRESULT ConvertValue([in] Windows.UI.Xaml.Interop.TypeName type, [in] IInspectable* value, [out] [retval] IInspectable** returnValue);
                    HRESULT SetPropertyFromString([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] HSTRING value);
                    HRESULT SetPropertyFromBoolean([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] boolean value);
                    HRESULT SetPropertyFromChar16([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] WCHAR value);
                    HRESULT SetPropertyFromDateTime([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] Windows.Foundation.DateTime value);
                    HRESULT SetPropertyFromDouble([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] DOUBLE value);
                    HRESULT SetPropertyFromInt32([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] INT32 value);
                    HRESULT SetPropertyFromUInt32([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] UINT32 value);
                    HRESULT SetPropertyFromInt64([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] INT64 value);
                    HRESULT SetPropertyFromUInt64([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] UINT64 value);
                    HRESULT SetPropertyFromSingle([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] FLOAT value);
                    HRESULT SetPropertyFromPoint([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] Windows.Foundation.Point value);
                    HRESULT SetPropertyFromRect([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] Windows.Foundation.Rect value);
                    HRESULT SetPropertyFromSize([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] Windows.Foundation.Size value);
                    HRESULT SetPropertyFromTimeSpan([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] Windows.Foundation.TimeSpan value);
                    HRESULT SetPropertyFromByte([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] BYTE value);
                    HRESULT SetPropertyFromUri([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] Windows.Foundation.Uri* value);
                    HRESULT SetPropertyFromObject([in] IInspectable* dependencyObject, [in] Windows.UI.Xaml.DependencyProperty* propertyToSet, [in] IInspectable* value);
                }

                [uuid(C541F58C-43A9-4216-B718-E0B11B14E93E)]
                [version(0x06020000)]
                interface IXamlMember : IInspectable
                {
                    [propget] HRESULT IsAttachable([out] [retval] boolean* value);
                    [propget] HRESULT IsDependencyProperty([out] [retval] boolean* value);
                    [propget] HRESULT IsReadOnly([out] [retval] boolean* value);
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                    [propget] HRESULT TargetType([out] [retval] Windows.UI.Xaml.Markup.IXamlType** value);
                    [propget] HRESULT Type([out] [retval] Windows.UI.Xaml.Markup.IXamlType** value);
                    HRESULT GetValue([in] IInspectable* instance, [out] [retval] IInspectable** value);
                    HRESULT SetValue([in] IInspectable* instance, [in] IInspectable* value);
                }

                [uuid(B3765D69-68A5-4B32-8861-FDB90C1F5836)]
                [version(0x06020000)]
                interface IXamlMetadataProvider : IInspectable
                {
                    [default_overload] [overload("GetXamlType")] HRESULT GetXamlType([in] Windows.UI.Xaml.Interop.TypeName type, [out] [retval] Windows.UI.Xaml.Markup.IXamlType** xamlType);
                    [overload("GetXamlType")] HRESULT GetXamlTypeByFullName([in] HSTRING fullName, [out] [retval] Windows.UI.Xaml.Markup.IXamlType** xamlType);
                    HRESULT GetXmlnsDefinitions([out] UINT32* __definitionsSize, [out] [retval] [size_is(, *__definitionsSize)] Windows.UI.Xaml.Markup.XmlnsDefinition** definitions);
                }

                [exclusiveto(Windows.UI.Xaml.Markup.XamlReader)]
                [uuid(24374CF1-CCEB-48BF-A514-41B0186F84C2)]
                [version(0x06020000)]
                interface IXamlReader : IInspectable
                {
                }

                [exclusiveto(Windows.UI.Xaml.Markup.XamlReader)]
                [uuid(9891C6BD-534F-4955-B85A-8A8DC0DCA602)]
                [version(0x06020000)]
                interface IXamlReaderStatics : IInspectable
                {
                    HRESULT Load([in] HSTRING xaml, [out] [retval] IInspectable** returnValue);
                    HRESULT LoadWithInitialTemplateValidation([in] HSTRING xaml, [out] [retval] IInspectable** returnValue);
                }

                [uuid(7920EAB1-A2E5-479A-BD50-6CEF3C0B4970)]
                [version(0x06020000)]
                interface IXamlType : IInspectable
                {
                    [propget] HRESULT BaseType([out] [retval] Windows.UI.Xaml.Markup.IXamlType** value);
                    [propget] HRESULT ContentProperty([out] [retval] Windows.UI.Xaml.Markup.IXamlMember** value);
                    [propget] HRESULT FullName([out] [retval] HSTRING* value);
                    [propget] HRESULT IsArray([out] [retval] boolean* value);
                    [propget] HRESULT IsCollection([out] [retval] boolean* value);
                    [propget] HRESULT IsConstructible([out] [retval] boolean* value);
                    [propget] HRESULT IsDictionary([out] [retval] boolean* value);
                    [propget] HRESULT IsMarkupExtension([out] [retval] boolean* value);
                    [propget] HRESULT IsBindable([out] [retval] boolean* value);
                    [propget] HRESULT ItemType([out] [retval] Windows.UI.Xaml.Markup.IXamlType** value);
                    [propget] HRESULT KeyType([out] [retval] Windows.UI.Xaml.Markup.IXamlType** value);
                    [propget] HRESULT UnderlyingType([out] [retval] Windows.UI.Xaml.Interop.TypeName* value);
                    HRESULT ActivateInstance([out] [retval] IInspectable** instance);
                    HRESULT CreateFromString([in] HSTRING value, [out] [retval] IInspectable** instance);
                    HRESULT GetMember([in] HSTRING name, [out] [retval] Windows.UI.Xaml.Markup.IXamlMember** xamlMember);
                    HRESULT AddToVector([in] IInspectable* instance, [in] IInspectable* value);
                    HRESULT AddToMap([in] IInspectable* instance, [in] IInspectable* key, [in] IInspectable* value);
                    HRESULT RunInitializer();
                }

                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Markup.IXamlBinaryWriterStatics, 0x06030000)]
                [threading(both)]
                [version(0x06030000)]
                runtimeclass XamlBinaryWriter
                {
                    [default] interface Windows.UI.Xaml.Markup.IXamlBinaryWriter;
                }

                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Markup.IXamlBindingHelperStatics, 0x0A000000)]
                [threading(both)]
                [version(0x0A000000)]
                runtimeclass XamlBindingHelper
                {
                    [default] interface Windows.UI.Xaml.Markup.IXamlBindingHelper;
                }

                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Markup.IXamlReaderStatics, 0x06020000)]
                [threading(both)]
                [version(0x06020000)]
                runtimeclass XamlReader
                {
                    [default] interface Windows.UI.Xaml.Markup.IXamlReader;
                }
            }
        }
    }
}
