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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.UI.Xaml.idl";
import "Windows.UI.Xaml.Controls.Primitives.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(__windows2Eui2Examl_h__)")
cpp_quote("#include <Windows.UI.Xaml.h>")
cpp_quote("#endif // !defined(__windows2Eui2Examl_h__)")
cpp_quote("#if !defined(__windows2Eui2Examl2Econtrols2Eprimitives_h__)")
cpp_quote("#include <Windows.UI.Xaml.Controls.Primitives.h>")
cpp_quote("#endif // !defined(__windows2Eui2Examl2Econtrols2Eprimitives_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

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

        typedef struct Size Size;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Controls
            {
                namespace Primitives
                {
                    typedef enum FlyoutPlacementMode FlyoutPlacementMode;
                }
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            runtimeclass FrameworkElement;

            runtimeclass UIElement;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Hosting
            {
                interface IXamlUIPresenterHost;

                interface IXamlUIPresenterHost2;

                interface IXamlUIPresenter;

                interface IXamlUIPresenterStatics;

                interface IXamlUIPresenterStatics2;

                runtimeclass XamlUIPresenter;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Hosting
            {
                [uuid(AAFB84CD-9F6D-4F80-AC2C-0E6CB9F31659)]
                [version(0x06020000)]
                interface IXamlUIPresenterHost : IInspectable
                {
                    HRESULT ResolveFileResource([in] HSTRING path, [out] [retval] HSTRING* returnValue);
                }

                [uuid(61595672-7CA4-4A21-B56A-88F4812388CA)]
                [version(0x06030000)]
                interface IXamlUIPresenterHost2 : IInspectable
                {
                    HRESULT GetGenericXamlFilePath([out] [retval] HSTRING* returnValue);
                }

                [exclusiveto(Windows.UI.Xaml.Hosting.XamlUIPresenter)]
                [uuid(A714944A-1619-4FC6-B31B-89512EF022A2)]
                [version(0x06020000)]
                interface IXamlUIPresenter : IInspectable
                {
                    [propget] HRESULT RootElement([out] [retval] Windows.UI.Xaml.UIElement** value);
                    [propput] HRESULT RootElement([in] Windows.UI.Xaml.UIElement* value);
                    [propget] HRESULT ThemeKey([out] [retval] HSTRING* value);
                    [propput] HRESULT ThemeKey([in] HSTRING value);
                    [propget] HRESULT ThemeResourcesXaml([out] [retval] HSTRING* value);
                    [propput] HRESULT ThemeResourcesXaml([in] HSTRING value);
                    HRESULT SetSize([in] INT32 width, [in] INT32 height);
                    HRESULT Render();
                    HRESULT Present();
                }

                [exclusiveto(Windows.UI.Xaml.Hosting.XamlUIPresenter)]
                [uuid(71EAEAC8-45E1-4192-85AA-3A422EDD23CF)]
                [version(0x06020000)]
                interface IXamlUIPresenterStatics : IInspectable
                {
                    [propget] HRESULT CompleteTimelinesAutomatically([out] [retval] boolean* value);
                    [propput] HRESULT CompleteTimelinesAutomatically([in] boolean value);
                    HRESULT SetHost([in] Windows.UI.Xaml.Hosting.IXamlUIPresenterHost* host);
                    HRESULT NotifyWindowSizeChanged();
                }

                [exclusiveto(Windows.UI.Xaml.Hosting.XamlUIPresenter)]
                [uuid(5C6B68D2-CF1C-4F53-BF09-6A745F7A9703)]
                [version(0x06030000)]
                interface IXamlUIPresenterStatics2 : IInspectable
                {
                    HRESULT GetFlyoutPlacementTargetInfo([in] Windows.UI.Xaml.FrameworkElement* placementTarget, [in] Windows.UI.Xaml.Controls.Primitives.FlyoutPlacementMode preferredPlacement, [out] Windows.UI.Xaml.Controls.Primitives.FlyoutPlacementMode* targetPreferredPlacement, [out] boolean* allowFallbacks, [out] [retval] Windows.Foundation.Rect* returnValue);
                    HRESULT GetFlyoutPlacement([in] Windows.Foundation.Rect placementTargetBounds, [in] Windows.Foundation.Size controlSize, [in] Windows.Foundation.Size minControlSize, [in] Windows.Foundation.Rect containerRect, [in] Windows.UI.Xaml.Controls.Primitives.FlyoutPlacementMode targetPreferredPlacement, [in] boolean allowFallbacks, [out] Windows.UI.Xaml.Controls.Primitives.FlyoutPlacementMode* chosenPlacement, [out] [retval] Windows.Foundation.Rect* returnValue);
                }

                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Hosting.IXamlUIPresenterStatics, 0x06020000)]
                [static(Windows.UI.Xaml.Hosting.IXamlUIPresenterStatics2, 0x06030000)]
                [threading(both)]
                [version(0x06020000)]
                runtimeclass XamlUIPresenter
                {
                    [default] interface Windows.UI.Xaml.Hosting.IXamlUIPresenter;
                }
            }
        }
    }
}
