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

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        interface IClosable;

        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;

                typedef enum DesignerAppViewState DesignerAppViewState;

                interface IDesignerAppExitedEventArgs;

                interface IDesignerAppManager;

                interface IDesignerAppManagerFactory;

                interface IDesignerAppView;

                interface IElementCompositionPreview;

                interface IElementCompositionPreviewStatics;

                interface IElementCompositionPreviewStatics2;

                interface IXamlUIPresenter;

                interface IXamlUIPresenterHost;

                interface IXamlUIPresenterHost2;

                interface IXamlUIPresenterHost3;

                interface IXamlUIPresenterStatics;

                interface IXamlUIPresenterStatics2;

                runtimeclass DesignerAppExitedEventArgs;

                runtimeclass DesignerAppManager;

                runtimeclass DesignerAppView;

                runtimeclass ElementCompositionPreview;

                runtimeclass XamlUIPresenter;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Hosting
            {
                declare
                {
                    interface Windows.Foundation.IAsyncOperation<Windows.UI.Xaml.Hosting.DesignerAppView*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.UI.Xaml.Hosting.DesignerAppManager*, Windows.UI.Xaml.Hosting.DesignerAppExitedEventArgs*>;
                }
            }
        }
    }
}

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

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 2.0)]
                enum DesignerAppViewState
                {
                    Visible = 0,
                    Hidden  = 1
                };

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 2.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.DesignerAppExitedEventArgs)]
                [uuid(F6AAC86A-0CAD-410C-8F62-DC2936151C74)]
                interface IDesignerAppExitedEventArgs : IInspectable
                {
                    [propget] HRESULT ExitCode([out] [retval] UINT32* value);
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 2.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.DesignerAppManager)]
                [uuid(A6272CAA-D5C6-40CB-ABD9-27BA43831BB7)]
                interface IDesignerAppManager : IInspectable
                {
                    [propget] HRESULT AppUserModelId([out] [retval] HSTRING* value);
                    [eventadd] HRESULT DesignerAppExited([in] Windows.Foundation.TypedEventHandler<Windows.UI.Xaml.Hosting.DesignerAppManager*, Windows.UI.Xaml.Hosting.DesignerAppExitedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT DesignerAppExited([in] EventRegistrationToken token);
                    HRESULT CreateNewViewAsync([in] Windows.UI.Xaml.Hosting.DesignerAppViewState initialViewState, [in] Windows.Foundation.Size initialViewSize, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.UI.Xaml.Hosting.DesignerAppView*>** returnValue);
                    HRESULT LoadObjectIntoAppAsync([in] HSTRING dllName, [in] GUID classId, [in] HSTRING initializationData, [out] [retval] Windows.Foundation.IAsyncAction** returnValue);
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 2.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.DesignerAppManager)]
                [uuid(8F9D633B-1266-4C0E-8499-0DB85BBD4C43)]
                interface IDesignerAppManagerFactory : IInspectable
                {
                    HRESULT Create([in] HSTRING appUserModelId, [out] [retval] Windows.UI.Xaml.Hosting.DesignerAppManager** instance);
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 2.0)]
                [exclusiveto(Windows.UI.Xaml.Hosting.DesignerAppView)]
                [uuid(5C777CEA-DD71-4A84-A56F-DACB4B14706F)]
                interface IDesignerAppView : IInspectable
                {
                    [propget] HRESULT ApplicationViewId([out] [retval] INT32* value);
                    [propget] HRESULT AppUserModelId([out] [retval] HSTRING* value);
                    [propget] HRESULT ViewState([out] [retval] Windows.UI.Xaml.Hosting.DesignerAppViewState* value);
                    [propget] HRESULT ViewSize([out] [retval] Windows.Foundation.Size* value);
                    HRESULT UpdateViewAsync([in] Windows.UI.Xaml.Hosting.DesignerAppViewState viewState, [in] Windows.Foundation.Size viewSize, [out] [retval] Windows.Foundation.IAsyncAction** returnValue);
                }

                [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.UI.Xaml.Hosting.HostingContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass DesignerAppExitedEventArgs
                {
                    [default] interface Windows.UI.Xaml.Hosting.IDesignerAppExitedEventArgs;
                }

                [activatable(Windows.UI.Xaml.Hosting.IDesignerAppManagerFactory, Windows.UI.Xaml.Hosting.HostingContract, 2.0)]
                [contract(Windows.UI.Xaml.Hosting.HostingContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass DesignerAppManager
                {
                    [default] interface Windows.UI.Xaml.Hosting.IDesignerAppManager;
                    [contract(Windows.UI.Xaml.Hosting.HostingContract, 2.0)] interface Windows.Foundation.IClosable;
                }

                [contract(Windows.UI.Xaml.Hosting.HostingContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass DesignerAppView
                {
                    [default] interface Windows.UI.Xaml.Hosting.IDesignerAppView;
                    [contract(Windows.UI.Xaml.Hosting.HostingContract, 2.0)] interface Windows.Foundation.IClosable;
                }

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