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

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            runtimeclass DependencyProperty;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Interop
            {
                typedef struct TypeName TypeName;
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Media
            {
                namespace Animation
                {
                    runtimeclass NavigationTransitionInfo;
                }
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Navigation
            {
                typedef enum NavigationCacheMode NavigationCacheMode;

                typedef enum NavigationMode NavigationMode;

                delegate LoadCompletedEventHandler;

                delegate NavigatedEventHandler;

                delegate NavigatingCancelEventHandler;

                delegate NavigationFailedEventHandler;

                delegate NavigationStoppedEventHandler;

                interface IFrameNavigationOptions;

                interface IFrameNavigationOptionsFactory;

                interface INavigatingCancelEventArgs;

                interface INavigatingCancelEventArgs2;

                interface INavigationEventArgs;

                interface INavigationEventArgs2;

                interface INavigationFailedEventArgs;

                interface IPageStackEntry;

                interface IPageStackEntryFactory;

                interface IPageStackEntryStatics;

                runtimeclass FrameNavigationOptions;

                runtimeclass NavigatingCancelEventArgs;

                runtimeclass NavigationEventArgs;

                runtimeclass NavigationFailedEventArgs;

                runtimeclass PageStackEntry;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Navigation
            {
                declare
                {
                    interface Windows.Foundation.Collections.IIterable<Windows.UI.Xaml.Navigation.PageStackEntry*>;

                    interface Windows.Foundation.Collections.IIterator<Windows.UI.Xaml.Navigation.PageStackEntry*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.UI.Xaml.Navigation.PageStackEntry*>;

                    interface Windows.Foundation.Collections.IVector<Windows.UI.Xaml.Navigation.PageStackEntry*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Navigation
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum NavigationCacheMode
                {
                    Disabled = 0,
                    Required = 1,
                    Enabled  = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum NavigationMode
                {
                    New     = 0,
                    Back    = 1,
                    Forward = 2,
                    Refresh = 3
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(AEBAF785-43FC-4E2C-95C3-97AE84EABC8E)]
                delegate
                    HRESULT LoadCompletedEventHandler([in] IInspectable* sender, [in] Windows.UI.Xaml.Navigation.NavigationEventArgs* e);

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(7BD1CF54-23CF-4CCE-B2F5-4CE78D96896E)]
                delegate
                    HRESULT NavigatedEventHandler([in] IInspectable* sender, [in] Windows.UI.Xaml.Navigation.NavigationEventArgs* e);

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(75D6A78F-A302-4489-9898-24EA49182910)]
                delegate
                    HRESULT NavigatingCancelEventHandler([in] IInspectable* sender, [in] Windows.UI.Xaml.Navigation.NavigatingCancelEventArgs* e);

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(4DAB4671-12B2-43C7-B892-9BE2DCD3E88D)]
                delegate
                    HRESULT NavigationFailedEventHandler([in] IInspectable* sender, [in] Windows.UI.Xaml.Navigation.NavigationFailedEventArgs* e);

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(F0117DDB-12FA-4D8D-8B26-B383D09C2B3C)]
                delegate
                    HRESULT NavigationStoppedEventHandler([in] IInspectable* sender, [in] Windows.UI.Xaml.Navigation.NavigationEventArgs* e);

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.FrameNavigationOptions)]
                [uuid(B539AD2A-9FB7-520A-8F41-57A50C59CF92)]
                interface IFrameNavigationOptions : IInspectable
                {
                    [propget] HRESULT IsNavigationStackEnabled([out] [retval] boolean* value);
                    [propput] HRESULT IsNavigationStackEnabled([in] boolean value);
                    [propget] HRESULT TransitionInfoOverride([out] [retval] Windows.UI.Xaml.Media.Animation.NavigationTransitionInfo** value);
                    [propput] HRESULT TransitionInfoOverride([in] Windows.UI.Xaml.Media.Animation.NavigationTransitionInfo* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.FrameNavigationOptions)]
                [uuid(D4681E41-7E6D-5C7C-ACA0-478681CC6FCE)]
                interface IFrameNavigationOptionsFactory : IInspectable
                {
                    HRESULT CreateInstance([in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out] [retval] Windows.UI.Xaml.Navigation.FrameNavigationOptions** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.NavigatingCancelEventArgs)]
                [uuid(FD1D67AE-EAFB-4079-BE80-6DC92A03AEDF)]
                interface INavigatingCancelEventArgs : IInspectable
                {
                    [propget] HRESULT Cancel([out] [retval] boolean* value);
                    [propput] HRESULT Cancel([in] boolean value);
                    [propget] HRESULT NavigationMode([out] [retval] Windows.UI.Xaml.Navigation.NavigationMode* value);
                    [propget] HRESULT SourcePageType([out] [retval] Windows.UI.Xaml.Interop.TypeName* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.NavigatingCancelEventArgs)]
                [uuid(5407B704-8147-4343-838F-DD1EE908C137)]
                interface INavigatingCancelEventArgs2 : IInspectable
                {
                    [propget] HRESULT Parameter([out] [retval] IInspectable** value);
                    [propget] HRESULT NavigationTransitionInfo([out] [retval] Windows.UI.Xaml.Media.Animation.NavigationTransitionInfo** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.NavigationEventArgs)]
                [uuid(B6AA9834-6691-44D1-BDF7-58820C27B0D0)]
                interface INavigationEventArgs : IInspectable
                {
                    [propget] HRESULT Content([out] [retval] IInspectable** value);
                    [propget] HRESULT Parameter([out] [retval] IInspectable** value);
                    [propget] HRESULT SourcePageType([out] [retval] Windows.UI.Xaml.Interop.TypeName* value);
                    [propget] HRESULT NavigationMode([out] [retval] Windows.UI.Xaml.Navigation.NavigationMode* value);
                    [propget] HRESULT Uri([out] [retval] Windows.Foundation.Uri** value);
                    [propput] HRESULT Uri([in] Windows.Foundation.Uri* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.NavigationEventArgs)]
                [uuid(DBFF71D9-979A-4B2E-A49B-3BB17FDEF574)]
                interface INavigationEventArgs2 : IInspectable
                {
                    [propget] HRESULT NavigationTransitionInfo([out] [retval] Windows.UI.Xaml.Media.Animation.NavigationTransitionInfo** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.NavigationFailedEventArgs)]
                [uuid(11C1DFF7-36C2-4102-B2EF-0217A97289B3)]
                interface INavigationFailedEventArgs : IInspectable
                {
                    [propget] HRESULT Exception([out] [retval] HRESULT* value);
                    [propget] HRESULT Handled([out] [retval] boolean* value);
                    [propput] HRESULT Handled([in] boolean value);
                    [propget] HRESULT SourcePageType([out] [retval] Windows.UI.Xaml.Interop.TypeName* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.PageStackEntry)]
                [uuid(EF8814A6-9388-4ACA-8572-405194069080)]
                interface IPageStackEntry : IInspectable
                {
                    [propget] HRESULT SourcePageType([out] [retval] Windows.UI.Xaml.Interop.TypeName* value);
                    [propget] HRESULT Parameter([out] [retval] IInspectable** value);
                    [propget] HRESULT NavigationTransitionInfo([out] [retval] Windows.UI.Xaml.Media.Animation.NavigationTransitionInfo** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.PageStackEntry)]
                [uuid(4454048A-A8B9-4F78-9B84-1F51F58851FF)]
                interface IPageStackEntryFactory : IInspectable
                {
                    HRESULT CreateInstance([in] Windows.UI.Xaml.Interop.TypeName sourcePageType, [in] IInspectable* parameter, [in] Windows.UI.Xaml.Media.Animation.NavigationTransitionInfo* navigationTransitionInfo, [out] [retval] Windows.UI.Xaml.Navigation.PageStackEntry** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Navigation.PageStackEntry)]
                [uuid(ACEFF8E3-246C-4033-9F01-01CB0DA5254E)]
                interface IPageStackEntryStatics : IInspectable
                {
                    [propget] HRESULT SourcePageTypeProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                }

                [composable(Windows.UI.Xaml.Navigation.IFrameNavigationOptionsFactory, public, Windows.Foundation.UniversalApiContract, 7.0)]
                [contract(Windows.Foundation.UniversalApiContract, 7.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass FrameNavigationOptions
                {
                    [default] interface Windows.UI.Xaml.Navigation.IFrameNavigationOptions;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass NavigatingCancelEventArgs
                {
                    [default] interface Windows.UI.Xaml.Navigation.INavigatingCancelEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.UI.Xaml.Navigation.INavigatingCancelEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass NavigationEventArgs
                {
                    [default] interface Windows.UI.Xaml.Navigation.INavigationEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.UI.Xaml.Navigation.INavigationEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                runtimeclass NavigationFailedEventArgs
                {
                    [default] interface Windows.UI.Xaml.Navigation.INavigationFailedEventArgs;
                }

                [activatable(Windows.UI.Xaml.Navigation.IPageStackEntryFactory, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Navigation.IPageStackEntryStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass PageStackEntry : Windows.UI.Xaml.DependencyObject
                {
                    [default] interface Windows.UI.Xaml.Navigation.IPageStackEntry;
                }
            }
        }
    }
}
