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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.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(__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 UI
    {
        namespace Xaml
        {
            namespace Interop
            {
                typedef struct TypeName TypeName;
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Markup
            {
                typedef struct XmlnsDefinition XmlnsDefinition;

                interface IXamlReader;

                interface IXamlReaderStatics;

                interface IComponentConnector;

                interface IXamlType;

                interface IXamlMember;

                interface IXamlMetadataProvider;

                runtimeclass XamlReader;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Markup
            {
                [version(0x06020000)]
                struct XmlnsDefinition
                {
                    HSTRING XmlNamespace;
                    HSTRING Namespace;
                };

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

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

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

                [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();
                }

                [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);
                }

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