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

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

        apicontract UniversalApiContract;

        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 IMarkupExtension;

                interface IMarkupExtensionFactory;

                interface IMarkupExtensionOverrides;

                interface IXamlBinaryWriter;

                interface IXamlBinaryWriterStatics;

                interface IXamlBindingHelper;

                interface IXamlBindingHelperStatics;

                interface IXamlMarkupHelper;

                interface IXamlMarkupHelperStatics;

                interface IXamlMember;

                interface IXamlMetadataProvider;

                interface IXamlReader;

                interface IXamlReaderStatics;

                interface IXamlType;

                runtimeclass MarkupExtension;

                runtimeclass XamlBinaryWriter;

                runtimeclass XamlBindingHelper;

                runtimeclass XamlMarkupHelper;

                runtimeclass XamlReader;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Markup
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                struct XamlBinaryWriterErrorInformation
                {
                    UINT32 InputStreamIndex;
                    UINT32 LineNumber;
                    UINT32 LinePosition;
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                struct XmlnsDefinition
                {
                    HSTRING XmlNamespace;
                    HSTRING Namespace;
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(F6790987-E6E5-47F2-92C6-ECCCE4BA159A)]
                interface IComponentConnector : IInspectable
                {
                    HRESULT Connect([in] INT32 connectionId, [in] IInspectable* target);
                }

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

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(08429DC8-8AB0-4747-AA9A-FEADFC8DA8E1)]
                interface IDataTemplateComponent : IInspectable
                {
                    HRESULT Recycle();
                    HRESULT ProcessBindings([in] IInspectable* item, [in] INT32 itemIndex, [in] INT32 phase, [out] INT32* nextPhase);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.MarkupExtension)]
                [uuid(1EE3416D-562B-486E-9EE5-0F0CBCC8048C)]
                interface IMarkupExtension : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.MarkupExtension)]
                [uuid(65329C05-FB5A-4567-9D55-5CDFBADA2739)]
                interface IMarkupExtensionFactory : IInspectable
                {
                    HRESULT CreateInstance([in] IInspectable* outer, [out] IInspectable** inner, [out] [retval] Windows.UI.Xaml.Markup.MarkupExtension** instance);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.MarkupExtension)]
                [uuid(393779BF-B9C0-4FFB-A57F-58E7356E425F)]
                interface IMarkupExtensionOverrides : IInspectable
                {
                    HRESULT ProvideValue([out] [retval] IInspectable** returnValue);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.XamlBinaryWriter)]
                [uuid(829D2AD3-620A-46F6-845D-436A05927100)]
                interface IXamlBinaryWriter : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.XamlBinaryWriter)]
                [uuid(0D8ED07A-9B82-4AA8-B68B-026F2DE1CC86)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.XamlBindingHelper)]
                [uuid(FAA6FB06-8AB9-4EF7-8AE7-FBD30BBFD06D)]
                interface IXamlBindingHelper : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.XamlBindingHelper)]
                [uuid(F65CFB71-C80C-4FFA-86EE-558754EE336D)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.XamlMarkupHelper)]
                [uuid(D0E6673C-5342-44EF-85A7-ED327A739D9A)]
                interface IXamlMarkupHelper : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.XamlMarkupHelper)]
                [uuid(C9BC3725-F34F-445C-81A2-6B72A5E8F072)]
                interface IXamlMarkupHelperStatics : IInspectable
                {
                    HRESULT UnloadObject([in] Windows.UI.Xaml.DependencyObject* element);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(C541F58C-43A9-4216-B718-E0B11B14E93E)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(B3765D69-68A5-4B32-8861-FDB90C1F5836)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Markup.XamlReader)]
                [uuid(24374CF1-CCEB-48BF-A514-41B0186F84C2)]
                interface IXamlReader : IInspectable
                {
                }

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

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(7920EAB1-A2E5-479A-BD50-6CEF3C0B4970)]
                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();
                }

                [composable(Windows.UI.Xaml.Markup.IMarkupExtensionFactory, public, Windows.Foundation.UniversalApiContract, 5.0)]
                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass MarkupExtension
                {
                    [default] interface Windows.UI.Xaml.Markup.IMarkupExtension;
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)] [overridable] interface Windows.UI.Xaml.Markup.IMarkupExtensionOverrides;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Markup.IXamlBinaryWriterStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass XamlBinaryWriter
                {
                    [default] interface Windows.UI.Xaml.Markup.IXamlBinaryWriter;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Markup.IXamlBindingHelperStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass XamlBindingHelper
                {
                    [default] interface Windows.UI.Xaml.Markup.IXamlBindingHelper;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Markup.IXamlMarkupHelperStatics, Windows.Foundation.UniversalApiContract, 4.0)]
                [threading(both)]
                runtimeclass XamlMarkupHelper
                {
                    [default] interface Windows.UI.Xaml.Markup.IXamlMarkupHelper;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Markup.IXamlReaderStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass XamlReader
                {
                    [default] interface Windows.UI.Xaml.Markup.IXamlReader;
                }
            }
        }
    }
}
