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

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

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            runtimeclass DependencyObject;

            runtimeclass DependencyProperty;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Interop
            {
                typedef struct TypeName TypeName;
            }
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            runtimeclass PropertyPath;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Data
            {
                typedef enum BindingMode BindingMode;

                typedef enum RelativeSourceMode RelativeSourceMode;

                typedef enum UpdateSourceTrigger UpdateSourceTrigger;

                typedef struct LoadMoreItemsResult LoadMoreItemsResult;

                delegate CurrentChangingEventHandler;

                delegate PropertyChangedEventHandler;

                interface IBinding;

                interface IBinding2;

                interface IBindingBase;

                interface IBindingBaseFactory;

                interface IBindingExpression;

                interface IBindingExpressionBase;

                interface IBindingExpressionBaseFactory;

                interface IBindingExpressionFactory;

                interface IBindingFactory;

                interface IBindingOperations;

                interface IBindingOperationsStatics;

                interface ICollectionView;

                interface ICollectionViewFactory;

                interface ICollectionViewGroup;

                interface ICollectionViewSource;

                interface ICollectionViewSourceStatics;

                interface ICurrentChangingEventArgs;

                interface ICurrentChangingEventArgsFactory;

                interface ICustomProperty;

                interface ICustomPropertyProvider;

                interface IItemIndexRange;

                interface IItemIndexRangeFactory;

                interface IItemsRangeInfo;

                interface INotifyPropertyChanged;

                interface IPropertyChangedEventArgs;

                interface IPropertyChangedEventArgsFactory;

                interface IRelativeSource;

                interface IRelativeSourceFactory;

                interface ISelectionInfo;

                interface ISupportIncrementalLoading;

                interface IValueConverter;

                runtimeclass Binding;

                runtimeclass BindingBase;

                runtimeclass BindingExpression;

                runtimeclass BindingExpressionBase;

                runtimeclass BindingOperations;

                runtimeclass CollectionViewSource;

                runtimeclass CurrentChangingEventArgs;

                runtimeclass ItemIndexRange;

                runtimeclass PropertyChangedEventArgs;

                runtimeclass RelativeSource;
            }
        }
    }
}

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

                    interface Windows.Foundation.Collections.IIterator<Windows.UI.Xaml.Data.ItemIndexRange*>;

                    interface Windows.Foundation.Collections.IVectorView<Windows.UI.Xaml.Data.ItemIndexRange*>;

                    interface Windows.Foundation.IAsyncOperation<Windows.UI.Xaml.Data.LoadMoreItemsResult>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Data
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum BindingMode
                {
                    OneWay  = 1,
                    OneTime = 2,
                    TwoWay  = 3
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum RelativeSourceMode
                {
                    None            = 0,
                    TemplatedParent = 1,
                    Self            = 2
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum UpdateSourceTrigger
                {
                    Default         = 0,
                    PropertyChanged = 1,
                    Explicit        = 2,
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                    LostFocus       = 3
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                struct LoadMoreItemsResult
                {
                    UINT32 Count;
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(F3888DB8-139F-4DCE-8DC9-F7F1444D1185)]
                delegate
                    HRESULT CurrentChangingEventHandler([in] IInspectable* sender, [in] Windows.UI.Xaml.Data.CurrentChangingEventArgs* e);

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(50F19C16-0A22-4D8E-A089-1EA9951657D2)]
                delegate
                    HRESULT PropertyChangedEventHandler([in] IInspectable* sender, [in] Windows.UI.Xaml.Data.PropertyChangedEventArgs* e);

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.Binding)]
                [uuid(3F7A0C6B-D00F-4730-8C1D-48E16C46F9CA)]
                interface IBinding : IInspectable
                {
                    [propget] HRESULT Path([out] [retval] Windows.UI.Xaml.PropertyPath** value);
                    [propput] HRESULT Path([in] Windows.UI.Xaml.PropertyPath* value);
                    [propget] HRESULT Mode([out] [retval] Windows.UI.Xaml.Data.BindingMode* value);
                    [propput] HRESULT Mode([in] Windows.UI.Xaml.Data.BindingMode value);
                    [propget] HRESULT Source([out] [retval] IInspectable** value);
                    [propput] HRESULT Source([in] IInspectable* value);
                    [propget] HRESULT RelativeSource([out] [retval] Windows.UI.Xaml.Data.RelativeSource** value);
                    [propput] HRESULT RelativeSource([in] Windows.UI.Xaml.Data.RelativeSource* value);
                    [propget] HRESULT ElementName([out] [retval] HSTRING* value);
                    [propput] HRESULT ElementName([in] HSTRING value);
                    [propget] HRESULT Converter([out] [retval] Windows.UI.Xaml.Data.IValueConverter** value);
                    [propput] HRESULT Converter([in] Windows.UI.Xaml.Data.IValueConverter* value);
                    [propget] HRESULT ConverterParameter([out] [retval] IInspectable** value);
                    [propput] HRESULT ConverterParameter([in] IInspectable* value);
                    [propget] HRESULT ConverterLanguage([out] [retval] HSTRING* value);
                    [propput] HRESULT ConverterLanguage([in] HSTRING value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.Binding)]
                [uuid(34F96FCB-0406-48B3-9E82-F333EC4C6910)]
                interface IBinding2 : IInspectable
                {
                    [propget] HRESULT FallbackValue([out] [retval] IInspectable** value);
                    [propput] HRESULT FallbackValue([in] IInspectable* value);
                    [propget] HRESULT TargetNullValue([out] [retval] IInspectable** value);
                    [propput] HRESULT TargetNullValue([in] IInspectable* value);
                    [propget] HRESULT UpdateSourceTrigger([out] [retval] Windows.UI.Xaml.Data.UpdateSourceTrigger* value);
                    [propput] HRESULT UpdateSourceTrigger([in] Windows.UI.Xaml.Data.UpdateSourceTrigger value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.BindingBase)]
                [uuid(1589A2AB-3D15-49BC-A447-8A5448E58870)]
                interface IBindingBase : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.BindingBase)]
                [uuid(22DAFC3A-7701-4666-A1BA-9859BDCFEC34)]
                interface IBindingBaseFactory : IInspectable
                {
                    HRESULT CreateInstance([in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out] [retval] Windows.UI.Xaml.Data.BindingBase** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.BindingExpression)]
                [uuid(516A19A5-C2FD-4A9E-9FD3-9AA42F995A3C)]
                interface IBindingExpression : IInspectable
                {
                    [propget] HRESULT DataItem([out] [retval] IInspectable** value);
                    [propget] HRESULT ParentBinding([out] [retval] Windows.UI.Xaml.Data.Binding** value);
                    HRESULT UpdateSource();
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.BindingExpressionBase)]
                [uuid(FDED3154-E954-4F67-8FB6-6ED79B3A1CB3)]
                interface IBindingExpressionBase : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.BindingExpressionBase)]
                [uuid(EA7116A7-C2D9-4375-B471-66B9C48C7930)]
                interface IBindingExpressionBaseFactory : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.BindingExpression)]
                [uuid(1CB55CD9-DB72-40B3-A2B5-24EE6EA5C328)]
                interface IBindingExpressionFactory : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.Binding)]
                [uuid(FF42BB08-C39E-4F7E-8434-A1569083883C)]
                interface IBindingFactory : IInspectable
                {
                    HRESULT CreateInstance([in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out] [retval] Windows.UI.Xaml.Data.Binding** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.BindingOperations)]
                [uuid(6FFFD738-9839-419C-A17A-4B3604E1524E)]
                interface IBindingOperations : IInspectable
                {
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.BindingOperations)]
                [uuid(E155EF73-95A0-4AAB-8C7D-2A47DA073C79)]
                interface IBindingOperationsStatics : IInspectable
                {
                    HRESULT SetBinding([in] Windows.UI.Xaml.DependencyObject* target, [in] Windows.UI.Xaml.DependencyProperty* dp, [in] Windows.UI.Xaml.Data.BindingBase* binding);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(8BE8BFE4-DBEF-44DF-8126-A31A89121DDC)]
                interface ICollectionView : IInspectable
                    requires
                        Windows.Foundation.Collections.IObservableVector<IInspectable*>,
                        Windows.Foundation.Collections.IVector<IInspectable*>,
                        Windows.Foundation.Collections.IIterable<IInspectable*>
                {
                    [propget] HRESULT CurrentItem([out] [retval] IInspectable** value);
                    [propget] HRESULT CurrentPosition([out] [retval] INT32* value);
                    [propget] HRESULT IsCurrentAfterLast([out] [retval] boolean* value);
                    [propget] HRESULT IsCurrentBeforeFirst([out] [retval] boolean* value);
                    [propget] HRESULT CollectionGroups([out] [retval] Windows.Foundation.Collections.IObservableVector<IInspectable*>** value);
                    [propget] HRESULT HasMoreItems([out] [retval] boolean* value);
                    [eventadd] HRESULT CurrentChanged([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT CurrentChanged([in] EventRegistrationToken token);
                    [eventadd] HRESULT CurrentChanging([in] Windows.UI.Xaml.Data.CurrentChangingEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT CurrentChanging([in] EventRegistrationToken token);
                    HRESULT MoveCurrentTo([in] IInspectable* item, [out] [retval] boolean* result);
                    HRESULT MoveCurrentToPosition([in] INT32 index, [out] [retval] boolean* result);
                    HRESULT MoveCurrentToFirst([out] [retval] boolean* result);
                    HRESULT MoveCurrentToLast([out] [retval] boolean* result);
                    HRESULT MoveCurrentToNext([out] [retval] boolean* result);
                    HRESULT MoveCurrentToPrevious([out] [retval] boolean* result);
                    HRESULT LoadMoreItemsAsync([in] UINT32 count, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.UI.Xaml.Data.LoadMoreItemsResult>** operation);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(34D4AAF4-8E72-4950-9192-ECD07D399D0A)]
                interface ICollectionViewFactory : IInspectable
                {
                    HRESULT CreateView([out] [retval] Windows.UI.Xaml.Data.ICollectionView** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(7E01B9D8-D7B5-48B6-B31C-5BB5BDF5F09B)]
                interface ICollectionViewGroup : IInspectable
                {
                    [propget] HRESULT Group([out] [retval] IInspectable** value);
                    [propget] HRESULT GroupItems([out] [retval] Windows.Foundation.Collections.IObservableVector<IInspectable*>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.CollectionViewSource)]
                [uuid(A66A1146-D2FB-4EAD-BE9F-3578A466DCFE)]
                interface ICollectionViewSource : IInspectable
                {
                    [propget] HRESULT Source([out] [retval] IInspectable** value);
                    [propput] HRESULT Source([in] IInspectable* value);
                    [propget] HRESULT View([out] [retval] Windows.UI.Xaml.Data.ICollectionView** value);
                    [propget] HRESULT IsSourceGrouped([out] [retval] boolean* value);
                    [propput] HRESULT IsSourceGrouped([in] boolean value);
                    [propget] HRESULT ItemsPath([out] [retval] Windows.UI.Xaml.PropertyPath** value);
                    [propput] HRESULT ItemsPath([in] Windows.UI.Xaml.PropertyPath* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.CollectionViewSource)]
                [uuid(173A0710-46AF-4C0C-818B-21B6EF81BF65)]
                interface ICollectionViewSourceStatics : IInspectable
                {
                    [propget] HRESULT SourceProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                    [propget] HRESULT ViewProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                    [propget] HRESULT IsSourceGroupedProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                    [propget] HRESULT ItemsPathProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.CurrentChangingEventArgs)]
                [uuid(F9891E29-51CC-47DD-A5B9-35DC4914AF69)]
                interface ICurrentChangingEventArgs : IInspectable
                {
                    [propget] HRESULT Cancel([out] [retval] boolean* value);
                    [propput] HRESULT Cancel([in] boolean value);
                    [propget] HRESULT IsCancelable([out] [retval] boolean* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.CurrentChangingEventArgs)]
                [uuid(153BBEEE-62F3-48CF-8183-8BE26DE3A66E)]
                interface ICurrentChangingEventArgsFactory : IInspectable
                {
                    HRESULT CreateInstance([in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out] [retval] Windows.UI.Xaml.Data.CurrentChangingEventArgs** value);
                    HRESULT CreateWithCancelableParameter([in] boolean isCancelable, [in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out] [retval] Windows.UI.Xaml.Data.CurrentChangingEventArgs** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(30DA92C0-23E8-42A0-AE7C-734A0E5D2782)]
                interface ICustomProperty : IInspectable
                {
                    [propget] HRESULT Type([out] [retval] Windows.UI.Xaml.Interop.TypeName* value);
                    [propget] HRESULT Name([out] [retval] HSTRING* value);
                    HRESULT GetValue([in] IInspectable* target, [out] [retval] IInspectable** result);
                    HRESULT SetValue([in] IInspectable* target, [in] IInspectable* value);
                    HRESULT GetIndexedValue([in] IInspectable* target, [in] IInspectable* index, [out] [retval] IInspectable** result);
                    HRESULT SetIndexedValue([in] IInspectable* target, [in] IInspectable* value, [in] IInspectable* index);
                    [propget] HRESULT CanWrite([out] [retval] boolean* value);
                    [propget] HRESULT CanRead([out] [retval] boolean* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(7C925755-3E48-42B4-8677-76372267033F)]
                interface ICustomPropertyProvider : IInspectable
                {
                    HRESULT GetCustomProperty([in] HSTRING name, [out] [retval] Windows.UI.Xaml.Data.ICustomProperty** result);
                    HRESULT GetIndexedProperty([in] HSTRING name, [in] Windows.UI.Xaml.Interop.TypeName type, [out] [retval] Windows.UI.Xaml.Data.ICustomProperty** result);
                    HRESULT GetStringRepresentation([out] [retval] HSTRING* result);
                    [propget] HRESULT Type([out] [retval] Windows.UI.Xaml.Interop.TypeName* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.ItemIndexRange)]
                [uuid(83B834BE-0583-4A26-9B64-8BF4A2F65704)]
                interface IItemIndexRange : IInspectable
                {
                    [propget] HRESULT FirstIndex([out] [retval] INT32* value);
                    [propget] HRESULT Length([out] [retval] UINT32* value);
                    [propget] HRESULT LastIndex([out] [retval] INT32* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.ItemIndexRange)]
                [uuid(86E2C440-2E7A-4C7D-A664-E8ABF07BFC7E)]
                interface IItemIndexRangeFactory : IInspectable
                {
                    HRESULT CreateInstance([in] INT32 firstIndex, [in] UINT32 length, [in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out] [retval] Windows.UI.Xaml.Data.ItemIndexRange** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(F05F5665-71FD-45A2-BE13-A081D294A68D)]
                interface IItemsRangeInfo : IInspectable
                    requires
                        Windows.Foundation.IClosable
                {
                    HRESULT RangesChanged([in] Windows.UI.Xaml.Data.ItemIndexRange* visibleRange, [in] Windows.Foundation.Collections.IVectorView<Windows.UI.Xaml.Data.ItemIndexRange*>* trackedItems);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(CF75D69C-F2F4-486B-B302-BB4C09BAEBFA)]
                interface INotifyPropertyChanged : IInspectable
                {
                    [eventadd] HRESULT PropertyChanged([in] Windows.UI.Xaml.Data.PropertyChangedEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT PropertyChanged([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.PropertyChangedEventArgs)]
                [uuid(4F33A9A0-5CF4-47A4-B16F-D7FAAF17457E)]
                interface IPropertyChangedEventArgs : IInspectable
                {
                    [propget] HRESULT PropertyName([out] [retval] HSTRING* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.PropertyChangedEventArgs)]
                [uuid(6DCC9C03-E0C7-4EEE-8EA9-37E3406EEB1C)]
                interface IPropertyChangedEventArgsFactory : IInspectable
                {
                    HRESULT CreateInstance([in] HSTRING name, [in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out] [retval] Windows.UI.Xaml.Data.PropertyChangedEventArgs** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.RelativeSource)]
                [uuid(2397CE84-2822-483A-B499-D0F031E06C6B)]
                interface IRelativeSource : IInspectable
                {
                    [propget] HRESULT Mode([out] [retval] Windows.UI.Xaml.Data.RelativeSourceMode* value);
                    [propput] HRESULT Mode([in] Windows.UI.Xaml.Data.RelativeSourceMode value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.UI.Xaml.Data.RelativeSource)]
                [uuid(EF8392CD-446E-4F93-AACB-9B1255577460)]
                interface IRelativeSourceFactory : IInspectable
                {
                    HRESULT CreateInstance([in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out] [retval] Windows.UI.Xaml.Data.RelativeSource** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(2E12CA86-E1ED-4245-BE49-207E42AEC524)]
                interface ISelectionInfo : IInspectable
                {
                    HRESULT SelectRange([in] Windows.UI.Xaml.Data.ItemIndexRange* itemIndexRange);
                    HRESULT DeselectRange([in] Windows.UI.Xaml.Data.ItemIndexRange* itemIndexRange);
                    HRESULT IsSelected([in] INT32 index, [out] [retval] boolean* result);
                    HRESULT GetSelectedRanges([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.UI.Xaml.Data.ItemIndexRange*>** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(7F5EE992-7694-4E6C-A51B-E34BF43DE743)]
                interface ISupportIncrementalLoading : IInspectable
                {
                    HRESULT LoadMoreItemsAsync([in] UINT32 count, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.UI.Xaml.Data.LoadMoreItemsResult>** operation);
                    [propget] HRESULT HasMoreItems([out] [retval] boolean* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [uuid(E6F2FEF0-0712-487F-B313-F300B8D79AA1)]
                interface IValueConverter : IInspectable
                {
                    HRESULT Convert([in] IInspectable* value, [in] Windows.UI.Xaml.Interop.TypeName targetType, [in] IInspectable* parameter, [in] HSTRING language, [out] [retval] IInspectable** result);
                    HRESULT ConvertBack([in] IInspectable* value, [in] Windows.UI.Xaml.Interop.TypeName targetType, [in] IInspectable* parameter, [in] HSTRING language, [out] [retval] IInspectable** result);
                }

                [composable(Windows.UI.Xaml.Data.IBindingFactory, public, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass Binding : Windows.UI.Xaml.Data.BindingBase
                {
                    [default] interface Windows.UI.Xaml.Data.IBinding;
                    [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.UI.Xaml.Data.IBinding2;
                }

                [composable(Windows.UI.Xaml.Data.IBindingBaseFactory, public, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BindingBase : Windows.UI.Xaml.DependencyObject
                {
                    [default] interface Windows.UI.Xaml.Data.IBindingBase;
                }

                [composable(Windows.UI.Xaml.Data.IBindingExpressionFactory, public, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BindingExpression : Windows.UI.Xaml.Data.BindingExpressionBase
                {
                    [default] interface Windows.UI.Xaml.Data.IBindingExpression;
                }

                [composable(Windows.UI.Xaml.Data.IBindingExpressionBaseFactory, public, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass BindingExpressionBase
                {
                    [default] interface Windows.UI.Xaml.Data.IBindingExpressionBase;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Data.IBindingOperationsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass BindingOperations
                {
                    [default] interface Windows.UI.Xaml.Data.IBindingOperations;
                }

                [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.UI.Xaml.Data.ICollectionViewSourceStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass CollectionViewSource : Windows.UI.Xaml.DependencyObject
                {
                    [default] interface Windows.UI.Xaml.Data.ICollectionViewSource;
                }

                [composable(Windows.UI.Xaml.Data.ICurrentChangingEventArgsFactory, public, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass CurrentChangingEventArgs
                {
                    [default] interface Windows.UI.Xaml.Data.ICurrentChangingEventArgs;
                }

                [composable(Windows.UI.Xaml.Data.IItemIndexRangeFactory, public, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass ItemIndexRange
                {
                    [default] interface Windows.UI.Xaml.Data.IItemIndexRange;
                }

                [composable(Windows.UI.Xaml.Data.IPropertyChangedEventArgsFactory, public, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass PropertyChangedEventArgs
                {
                    [default] interface Windows.UI.Xaml.Data.IPropertyChangedEventArgs;
                }

                [composable(Windows.UI.Xaml.Data.IRelativeSourceFactory, public, Windows.Foundation.UniversalApiContract, 1.0)]
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass RelativeSource : Windows.UI.Xaml.DependencyObject
                {
                    [default] interface Windows.UI.Xaml.Data.IRelativeSource;
                }
            }
        }
    }
}
