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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.UI.Composition.idl";
import "Windows.UI.Xaml.idl";
import "Windows.UI.Xaml.Controls.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(__windows2Eui2Ecomposition_h__)")
cpp_quote("#include <Windows.UI.Composition.h>")
cpp_quote("#endif // !defined(__windows2Eui2Ecomposition_h__)")
cpp_quote("#if !defined(__windows2Eui2Examl_h__)")
cpp_quote("#include <Windows.UI.Xaml.h>")
cpp_quote("#endif // !defined(__windows2Eui2Examl_h__)")
cpp_quote("#if !defined(__windows2Eui2Examl2Econtrols_h__)")
cpp_quote("#include <Windows.UI.Xaml.Controls.h>")
cpp_quote("#endif // !defined(__windows2Eui2Examl2Econtrols_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;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Composition
        {
            runtimeclass CompositionPropertySet;

            interface ICompositionAnimationBase;

            runtimeclass Visual;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Controls
            {
                namespace Primitives
                {
                    typedef enum FlyoutPlacementMode FlyoutPlacementMode;
                }
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Controls
            {
                runtimeclass ScrollViewer;
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            runtimeclass FrameworkElement;

            runtimeclass ResourceDictionary;

            runtimeclass UIElement;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Hosting
            {
                apicontract HostingContract;

                interface IElementCompositionPreview;

                interface IElementCompositionPreviewStatics;

                interface IElementCompositionPreviewStatics2;

                interface IXamlUIPresenter;

                interface IXamlUIPresenterHost;

                interface IXamlUIPresenterHost2;

                interface IXamlUIPresenterHost3;

                interface IXamlUIPresenterStatics;

                interface IXamlUIPresenterStatics2;

                runtimeclass ElementCompositionPreview;

                runtimeclass XamlUIPresenter;
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Hosting
            {
                [contractversion(1.0)]
                apicontract HostingContract
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.ElementCompositionPreview)]
                [uuid(B6F1A676-CFE6-46AC-ACF6-C4687BB65E60)]
                interface IElementCompositionPreview : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.ElementCompositionPreview)]
                [uuid(08C92B38-EC99-4C55-BC85-A1C180B27646)]
                interface IElementCompositionPreviewStatics : IInspectable
                {
                    HRESULT GetElementVisual([in] Windows.UI.Xaml.UIElement* element, [out] [retval] Windows.UI.Composition.Visual** result);
                    HRESULT GetElementChildVisual([in] Windows.UI.Xaml.UIElement* element, [out] [retval] Windows.UI.Composition.Visual** result);
                    HRESULT SetElementChildVisual([in] Windows.UI.Xaml.UIElement* element, [in] Windows.UI.Composition.Visual* visual);
                    HRESULT GetScrollViewerManipulationPropertySet([in] Windows.UI.Xaml.Controls.ScrollViewer* scrollViewer, [out] [retval] Windows.UI.Composition.CompositionPropertySet** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.ElementCompositionPreview)]
                [uuid(24148FBB-23D6-4F37-BA0C-0733E799722D)]
                interface IElementCompositionPreviewStatics2 : IInspectable
                {
                    HRESULT SetImplicitShowAnimation([in] Windows.UI.Xaml.UIElement* element, [in] Windows.UI.Composition.ICompositionAnimationBase* animation);
                    HRESULT SetImplicitHideAnimation([in] Windows.UI.Xaml.UIElement* element, [in] Windows.UI.Composition.ICompositionAnimationBase* animation);
                    HRESULT SetIsTranslationEnabled([in] Windows.UI.Xaml.UIElement* element, [in] boolean value);
                    HRESULT GetPointerPositionPropertySet([in] Windows.UI.Xaml.UIElement* targetElement, [out] [retval] Windows.UI.Composition.CompositionPropertySet** result);
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.XamlUIPresenter)]
                [uuid(A714944A-1619-4FC6-B31B-89512EF022A2)]
                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();
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 1.0)]
                [uuid(AAFB84CD-9F6D-4F80-AC2C-0E6CB9F31659)]
                interface IXamlUIPresenterHost : IInspectable
                {
                    HRESULT ResolveFileResource([in] HSTRING path, [out] [retval] HSTRING* returnValue);
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 1.0)]
                [uuid(61595672-7CA4-4A21-B56A-88F4812388CA)]
                interface IXamlUIPresenterHost2 : IInspectable
                {
                    HRESULT GetGenericXamlFilePath([out] [retval] HSTRING* returnValue);
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 1.0)]
                [uuid(B14292BF-7320-41BB-9F26-4D6FD34DB45A)]
                interface IXamlUIPresenterHost3 : IInspectable
                {
                    HRESULT ResolveDictionaryResource([in] Windows.UI.Xaml.ResourceDictionary* dictionary, [in] IInspectable* dictionaryKey, [in] IInspectable* suggestedValue, [out] [retval] IInspectable** returnValue);
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.XamlUIPresenter)]
                [uuid(71EAEAC8-45E1-4192-85AA-3A422EDD23CF)]
                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();
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.XamlUIPresenter)]
                [uuid(5C6B68D2-CF1C-4F53-BF09-6A745F7A9703)]
                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);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Hosting.IElementCompositionPreviewStatics, Windows.Foundation.UniversalApiContract, 2.0)]
                [static(Windows.UI.Xaml.Hosting.IElementCompositionPreviewStatics2, Windows.Foundation.UniversalApiContract, 4.0)]
                [threading(both)]
                runtimeclass ElementCompositionPreview
                {
                    [default] interface Windows.UI.Xaml.Hosting.IElementCompositionPreview;
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Hosting.IXamlUIPresenterStatics, Windows.UI.Xaml.Hosting.HostingContract, 1.0)]
                [static(Windows.UI.Xaml.Hosting.IXamlUIPresenterStatics2, Windows.UI.Xaml.Hosting.HostingContract, 1.0)]
                [threading(both)]
                runtimeclass XamlUIPresenter
                {
                    [default] interface Windows.UI.Xaml.Hosting.IXamlUIPresenter;
                }
            }
        }
    }
}
