// WARNING: Please don't edit this file. It was generated by Swift/WinRT v0.0.1

#pragma once
// Header files for imported files
#include <inspectable.h>
#include <EventToken.h>
#include <windowscontracts.h>
#include "Windows.Foundation.h"
#include "Microsoft.UI.Xaml.h"

/* Forward Declarations */
#ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler_FWD_DEFINED__
typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler_FWD_DEFINED__

    #ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler_FWD_DEFINED__
typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler_FWD_DEFINED__

    #ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable_FWD_DEFINED__
    typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable_FWD_DEFINED__

#ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator_FWD_DEFINED__
    typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator_FWD_DEFINED__

#ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector_FWD_DEFINED__
    typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector_FWD_DEFINED__

#ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector_FWD_DEFINED__
    typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector_FWD_DEFINED__

#ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView_FWD_DEFINED__
    typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView_FWD_DEFINED__

#ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged_FWD_DEFINED__
    typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged_FWD_DEFINED__

#ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs_FWD_DEFINED__
    typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory_FWD_DEFINED__
#define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory_FWD_DEFINED__
    typedef interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory;

#endif // ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory_FWD_DEFINED__

// Parameterized interface forward declarations (C)

// Collection interface definitions

typedef enum __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction;

enum __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction
    {
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction_Add = 0,
    __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction_Remove = 1,
    __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction_Replace = 2,
    __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction_Move = 3,
    __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction_Reset = 4,
};

#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler* This,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector* vector,
        IInspectable* e);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandlerVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandlerVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler;
    #endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandlerVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler* This,
        IInspectable* sender,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* e);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandlerVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandlerVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler;
    #endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterableVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* First)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable* This,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator** result);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterableVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterableVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable;
#endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterable_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIteratorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator* This,
        IInspectable** value);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator* This,
        boolean* result);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIteratorVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIteratorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator;
#endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableIterator_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVectorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* add_VectorChanged)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector* This,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorChangedEventHandler* handler,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_VectorChanged)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector* This,
        EventRegistrationToken token);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVectorVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVectorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector;
#endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableObservableVector_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
        UINT32 index,
        IInspectable** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* GetView)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView** result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
        IInspectable* value,
        UINT32* index,
        boolean* returnValue);
    HRESULT (STDMETHODCALLTYPE* SetAt)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
        UINT32 index,
        IInspectable* value);
    HRESULT (STDMETHODCALLTYPE* InsertAt)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
        UINT32 index,
        IInspectable* value);
    HRESULT (STDMETHODCALLTYPE* RemoveAt)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
        UINT32 index);
    HRESULT (STDMETHODCALLTYPE* Append)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This,
        IInspectable* value);
    HRESULT (STDMETHODCALLTYPE* RemoveAtEnd)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This);
    HRESULT (STDMETHODCALLTYPE* Clear)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* This);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector;
#endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorViewVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView* This,
        UINT32 index,
        IInspectable** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView* This,
        IInspectable* value,
        UINT32* index,
        boolean* returnValue);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorViewVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorViewVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView;
#endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVectorView_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* add_CollectionChanged)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged* This,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventHandler* handler,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_CollectionChanged)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged* This,
        EventRegistrationToken token);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged;
#endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChanged_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Action)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This,
        enum __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction* value);
    HRESULT (STDMETHODCALLTYPE* get_NewItems)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector** value);
    HRESULT (STDMETHODCALLTYPE* get_OldItems)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector** value);
    HRESULT (STDMETHODCALLTYPE* get_NewStartingIndex)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_OldStartingIndex)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs* This,
        INT32* value);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs;
#endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory_INTERFACE_DEFINED__)
    #define ____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory_INTERFACE_DEFINED__
    typedef struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactoryVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* CreateInstanceWithAllParameters)(__x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory* This,
        enum __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CNotifyCollectionChangedAction action,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* newItems,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CIBindableVector* oldItems,
        INT32 newIndex,
        INT32 oldIndex,
        IInspectable* baseInterface,
        IInspectable** innerInterface,
        __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgs** value);

        END_INTERFACE
    } __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactoryVtbl;

    interface __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory
    {
        CONST_VTBL struct __x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactoryVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory;
#endif /* !defined(____x_ABI_CMicrosoft_CUI_CXaml_CInterop_CINotifyCollectionChangedEventArgsFactory_INTERFACE_DEFINED__) */
    
