// 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"
// Importing Collections header
#include "Windows.Foundation.Collections.h"

/* Forward Declarations */
#ifndef ____x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities __x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities __x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CIMouseDevice_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIMouseDevice_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIMouseDevice __x_ABI_CWindows_CDevices_CInput_CIMouseDevice;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIMouseDevice_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics __x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs __x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CIPenDevice_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIPenDevice_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIPenDevice __x_ABI_CWindows_CDevices_CInput_CIPenDevice;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIPenDevice_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics __x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CIPointerDevice_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIPointerDevice_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIPointerDevice __x_ABI_CWindows_CDevices_CInput_CIPointerDevice;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIPointerDevice_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CIPointerDevice2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIPointerDevice2_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIPointerDevice2 __x_ABI_CWindows_CDevices_CInput_CIPointerDevice2;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIPointerDevice2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics __x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics;

#endif // ____x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CInput_CITouchCapabilities_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CInput_CITouchCapabilities_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CInput_CITouchCapabilities __x_ABI_CWindows_CDevices_CInput_CITouchCapabilities;

#endif // ____x_ABI_CWindows_CDevices_CInput_CITouchCapabilities_FWD_DEFINED__

// Parameterized interface forward declarations (C)

// Collection interface definitions

#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
        __x_ABI_CWindows_CDevices_CInput_CIPointerDevice** result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CInput_CIPointerDevice** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice_INTERFACE_DEFINED__
    
typedef struct __x_ABI_CWindows_CDevices_CInput_CPointerDeviceUsage __x_ABI_CWindows_CDevices_CInput_CPointerDeviceUsage;

#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage;

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsageVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Current)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
        struct __x_ABI_CWindows_CDevices_CInput_CPointerDeviceUsage* result);
    HRESULT (STDMETHODCALLTYPE* get_HasCurrent)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* MoveNext)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
        UINT32 itemsLength,
        struct __x_ABI_CWindows_CDevices_CInput_CPointerDeviceUsage* items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsageVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsageVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage;

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsageVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsageVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsageVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CInput_CIPointerDevice** result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
        __x_ABI_CWindows_CDevices_CInput_CIPointerDevice* value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        __x_ABI_CWindows_CDevices_CInput_CIPointerDevice** items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage;

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsageVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetAt)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
        UINT32 index,
        struct __x_ABI_CWindows_CDevices_CInput_CPointerDeviceUsage* result);
    HRESULT (STDMETHODCALLTYPE* get_Size)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
        UINT32* result);
    HRESULT (STDMETHODCALLTYPE* IndexOf)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
        struct __x_ABI_CWindows_CDevices_CInput_CPointerDeviceUsage value,
        UINT32* index,
        boolean* result);
    HRESULT (STDMETHODCALLTYPE* GetMany)(__x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage* This,
        UINT32 startIndex,
        UINT32 itemsLength,
        struct __x_ABI_CWindows_CDevices_CInput_CPointerDeviceUsage* items,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsageVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsageVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs;

    //  Declare the parameterized interface IID.
    EXTERN_C const IID IID___x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs;

    typedef struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs* This,
        __x_ABI_CWindows_CDevices_CInput_CIMouseDevice* sender,
        __x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs* args);

        END_INTERFACE
    } __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgsVtbl;

    interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs
    {
        CONST_VTBL struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgsVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs_INTERFACE_DEFINED__
    
typedef struct __x_ABI_CWindows_CFoundation_CRect __x_ABI_CWindows_CFoundation_CRect;

typedef enum __x_ABI_CWindows_CDevices_CInput_CPointerDeviceType __x_ABI_CWindows_CDevices_CInput_CPointerDeviceType;

typedef struct __x_ABI_CWindows_CDevices_CInput_CMouseDelta __x_ABI_CWindows_CDevices_CInput_CMouseDelta;

enum __x_ABI_CWindows_CDevices_CInput_CPointerDeviceType
    {
        __x_ABI_CWindows_CDevices_CInput_CPointerDeviceType_Touch = 0,
    __x_ABI_CWindows_CDevices_CInput_CPointerDeviceType_Pen = 1,
    __x_ABI_CWindows_CDevices_CInput_CPointerDeviceType_Mouse = 2,
};

struct __x_ABI_CWindows_CDevices_CInput_CMouseDelta
    {
        INT32 X;
    INT32 Y;
};

struct __x_ABI_CWindows_CDevices_CInput_CPointerDeviceUsage
    {
        UINT32 UsagePage;
    UINT32 Usage;
    INT32 MinLogical;
    INT32 MaxLogical;
    INT32 MinPhysical;
    INT32 MaxPhysical;
    UINT32 Unit;
    FLOAT PhysicalMultiplier;
};

#if !defined(____x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilitiesVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_KeyboardPresent)(__x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities* This,
        INT32* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilitiesVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilitiesVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIKeyboardCapabilities_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIMouseCapabilitiesVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_MousePresent)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_VerticalWheelPresent)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_HorizontalWheelPresent)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_SwapButtons)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_NumberOfButtons)(__x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities* This,
        UINT32* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIMouseCapabilitiesVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIMouseCapabilitiesVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIMouseCapabilities_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CIMouseDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIMouseDevice_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIMouseDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIMouseDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIMouseDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIMouseDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIMouseDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIMouseDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIMouseDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* add_MouseMoved)(__x_ABI_CWindows_CDevices_CInput_CIMouseDevice* This,
        __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CInput__CMouseDevice___x_ABI_CWindows__CDevices__CInput__CMouseEventArgs* handler,
        EventRegistrationToken* cookie);
    HRESULT (STDMETHODCALLTYPE* remove_MouseMoved)(__x_ABI_CWindows_CDevices_CInput_CIMouseDevice* This,
        EventRegistrationToken cookie);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIMouseDeviceVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIMouseDevice
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIMouseDeviceVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIMouseDevice;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIMouseDevice_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetForCurrentView)(__x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics* This,
        __x_ABI_CWindows_CDevices_CInput_CIMouseDevice** mouseDevice);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIMouseDeviceStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIMouseEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_MouseDelta)(__x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs* This,
        struct __x_ABI_CWindows_CDevices_CInput_CMouseDelta* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIMouseEventArgsVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIMouseEventArgsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIMouseEventArgs_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CIPenDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIPenDevice_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIPenDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIPenDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIPenDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIPenDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIPenDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIPenDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIPenDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_PenId)(__x_ABI_CWindows_CDevices_CInput_CIPenDevice* This,
        GUID* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIPenDeviceVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIPenDevice
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIPenDeviceVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIPenDevice;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIPenDevice_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIPenDeviceStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetFromPointerId)(__x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics* This,
        UINT32 pointerId,
        __x_ABI_CWindows_CDevices_CInput_CIPenDevice** result);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIPenDeviceStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIPenDeviceStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIPenDeviceStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CIPointerDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIPointerDevice_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIPointerDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_PointerDeviceType)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
        enum __x_ABI_CWindows_CDevices_CInput_CPointerDeviceType* value);
    HRESULT (STDMETHODCALLTYPE* get_IsIntegrated)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_MaxContacts)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_PhysicalDeviceRect)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
        struct __x_ABI_CWindows_CFoundation_CRect* value);
    HRESULT (STDMETHODCALLTYPE* get_ScreenRect)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
        struct __x_ABI_CWindows_CFoundation_CRect* value);
    HRESULT (STDMETHODCALLTYPE* get_SupportedUsages)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDeviceUsage** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIPointerDeviceVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIPointerDevice
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIPointerDeviceVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIPointerDevice;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIPointerDevice_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CIPointerDevice2_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIPointerDevice2_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIPointerDevice2Vtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice2* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice2* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice2* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice2* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice2* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice2* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_MaxPointersWithZDistance)(__x_ABI_CWindows_CDevices_CInput_CIPointerDevice2* This,
        UINT32* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIPointerDevice2Vtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIPointerDevice2
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIPointerDevice2Vtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIPointerDevice2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIPointerDevice2_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetPointerDevice)(__x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics* This,
        UINT32 pointerId,
        __x_ABI_CWindows_CDevices_CInput_CIPointerDevice** pointerDevice);
    HRESULT (STDMETHODCALLTYPE* GetPointerDevices)(__x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CInput__CPointerDevice** pointerDevices);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CIPointerDeviceStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CInput_CITouchCapabilities_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CInput_CITouchCapabilities_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CInput_CITouchCapabilitiesVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CInput_CITouchCapabilities* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CInput_CITouchCapabilities* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CInput_CITouchCapabilities* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CInput_CITouchCapabilities* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CInput_CITouchCapabilities* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CInput_CITouchCapabilities* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_TouchPresent)(__x_ABI_CWindows_CDevices_CInput_CITouchCapabilities* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_Contacts)(__x_ABI_CWindows_CDevices_CInput_CITouchCapabilities* This,
        UINT32* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CInput_CITouchCapabilitiesVtbl;

    interface __x_ABI_CWindows_CDevices_CInput_CITouchCapabilities
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CInput_CITouchCapabilitiesVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CInput_CITouchCapabilities;
#endif /* !defined(____x_ABI_CWindows_CDevices_CInput_CITouchCapabilities_INTERFACE_DEFINED__) */
    
