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

/* Forward Declarations */
#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2 __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport;

#endif // ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport_FWD_DEFINED__

// Parameterized interface forward declarations (C)

// Collection interface definitions

typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32 __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32;

#if !defined(____x_ABI_C__FIAsyncOperation_1_UINT32_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1_UINT32_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1_UINT32 __x_ABI_C__FIAsyncOperation_1_UINT32;

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

    typedef struct __x_ABI_C__FIAsyncOperation_1_UINT32Vtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1_UINT32* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1_UINT32* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1_UINT32* This,
        UINT32* result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1_UINT32Vtbl;

    interface __x_ABI_C__FIAsyncOperation_1_UINT32
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1_UINT32Vtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1_UINT32_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32 __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32;

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

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32Vtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32* This,
        __x_ABI_C__FIAsyncOperation_1_UINT32* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32Vtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32Vtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1_UINT32_INTERFACE_DEFINED__
    
typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice;

#if !defined(____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice;

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

    typedef struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice** result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDeviceVtbl;

    interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDeviceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice;

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

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDeviceVtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDeviceVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice_INTERFACE_DEFINED__
    
typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport;

#if !defined(____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport;

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

    typedef struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReportVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport** result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReportVtbl;

    interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReportVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport;

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

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReportVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReportVtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReportVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport_INTERFACE_DEFINED__
    
typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport;

#if !defined(____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport;

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

    typedef struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* put_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* handler);
    HRESULT (STDMETHODCALLTYPE* get_Completed)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This,
        __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport** result);
    HRESULT (STDMETHODCALLTYPE* GetResults)(__x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport** result);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportVtbl;

    interface __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport;

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

    typedef struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport* asyncInfo,
        enum __x_ABI_CWindows_CFoundation_CAsyncStatus asyncStatus);

        END_INTERFACE
    } __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportVtbl;

    interface __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport
    {
        CONST_VTBL struct __x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIAsyncOperationCompletedHandler_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl;

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

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl;

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

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription;

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

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescriptionVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescriptionVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescriptionVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription;

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

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescriptionVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescriptionVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescriptionVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection;

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

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollectionVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollectionVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollectionVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection;

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

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollectionVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollectionVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollectionVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription;

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

    typedef struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescriptionVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescriptionVtbl;

    interface __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription
    {
        CONST_VTBL struct __x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescriptionVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterator_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription;

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

    typedef struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescriptionVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescriptionVtbl;

    interface __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription
    {
        CONST_VTBL struct __x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescriptionVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIIterable_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl;

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

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription;

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

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescriptionVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescriptionVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescriptionVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection;

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

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollectionVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollectionVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollectionVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription;

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

    typedef struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescriptionVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescriptionVtbl;

    interface __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription
    {
        CONST_VTBL struct __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescriptionVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription_INTERFACE_DEFINED__
    
#if !defined(____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs_INTERFACE_DEFINED__

    typedef interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs;

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

    typedef struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs* This);
        HRESULT (STDMETHODCALLTYPE* Invoke)(__x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* sender,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs* args);

        END_INTERFACE
    } __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgsVtbl;

    interface __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs
    {
        CONST_VTBL struct __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgsVtbl* lpVtbl;
    };

    
    #endif // ____x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs_INTERFACE_DEFINED__
    
typedef enum __x_ABI_CWindows_CFoundation_CAsyncStatus __x_ABI_CWindows_CFoundation_CAsyncStatus;

#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIAsyncInfo __x_ABI_CWindows_CFoundation_CIAsyncInfo;

#endif // ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__

#ifndef ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
#define ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CFoundation_CIClosable __x_ABI_CWindows_CFoundation_CIClosable;

#endif // ____x_ABI_CWindows_CFoundation_CIClosable_FWD_DEFINED__

typedef enum __x_ABI_CWindows_CStorage_CFileAccessMode __x_ABI_CWindows_CStorage_CFileAccessMode;

#ifndef ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
#define ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__
    typedef interface __x_ABI_CWindows_CStorage_CStreams_CIBuffer __x_ABI_CWindows_CStorage_CStreams_CIBuffer;

#endif // ____x_ABI_CWindows_CStorage_CStreams_CIBuffer_FWD_DEFINED__

typedef enum __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType;

typedef enum __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType;

enum __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType
    {
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType_Physical = 0,
    __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType_Application = 1,
    __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType_Logical = 2,
    __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType_Report = 3,
    __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType_NamedArray = 4,
    __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType_UsageSwitch = 5,
    __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType_UsageModifier = 6,
    __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType_Other = 7,
};

enum __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType
    {
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType_Input = 0,
    __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType_Output = 1,
    __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType_Feature = 2,
};

#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_UsagePage)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_UsageId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_IsActive)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* put_IsActive)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
        boolean value);
    HRESULT (STDMETHODCALLTYPE* get_ControlDescription)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescriptionVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_ReportId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_ReportType)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
        enum __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType* value);
    HRESULT (STDMETHODCALLTYPE* get_UsagePage)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_UsageId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_ParentCollections)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescriptionVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescriptionVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2Vtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2Vtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2Vtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription2_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollectionVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_Type)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This,
        enum __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidCollectionType* value);
    HRESULT (STDMETHODCALLTYPE* get_UsagePage)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_UsageId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection* This,
        UINT32* value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollectionVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollectionVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidCollection_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_VendorId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_ProductId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_Version)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_UsagePage)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_UsageId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* GetInputReportAsync)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport** value);
    HRESULT (STDMETHODCALLTYPE* GetInputReportByIdAsync)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        UINT16 reportId,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReport** value);
    HRESULT (STDMETHODCALLTYPE* GetFeatureReportAsync)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport** value);
    HRESULT (STDMETHODCALLTYPE* GetFeatureReportByIdAsync)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        UINT16 reportId,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidFeatureReport** value);
    HRESULT (STDMETHODCALLTYPE* CreateOutputReport)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport** outputReport);
    HRESULT (STDMETHODCALLTYPE* CreateOutputReportById)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        UINT16 reportId,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport** outputReport);
    HRESULT (STDMETHODCALLTYPE* CreateFeatureReport)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport** featureReport);
    HRESULT (STDMETHODCALLTYPE* CreateFeatureReportById)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        UINT16 reportId,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport** featureReport);
    HRESULT (STDMETHODCALLTYPE* SendOutputReportAsync)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* outputReport,
        __x_ABI_C__FIAsyncOperation_1_UINT32** operation);
    HRESULT (STDMETHODCALLTYPE* SendFeatureReportAsync)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* featureReport,
        __x_ABI_C__FIAsyncOperation_1_UINT32** operation);
    HRESULT (STDMETHODCALLTYPE* GetBooleanControlDescriptions)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        enum __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType reportType,
        UINT16 usagePage,
        UINT16 usageId,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControlDescription** value);
    HRESULT (STDMETHODCALLTYPE* GetNumericControlDescriptions)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        enum __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType reportType,
        UINT16 usagePage,
        UINT16 usageId,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidNumericControlDescription** value);
    HRESULT (STDMETHODCALLTYPE* add_InputReportReceived)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        __x_ABI_C__FITypedEventHandler_2___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidInputReportReceivedEventArgs* reportHandler,
        EventRegistrationToken* token);
    HRESULT (STDMETHODCALLTYPE* remove_InputReportReceived)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice* This,
        EventRegistrationToken token);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDevice_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStaticsVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* GetDeviceSelector)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics* This,
        UINT16 usagePage,
        UINT16 usageId,
        HSTRING* selector);
    HRESULT (STDMETHODCALLTYPE* GetDeviceSelectorVidPid)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics* This,
        UINT16 usagePage,
        UINT16 usageId,
        UINT16 vendorId,
        UINT16 productId,
        HSTRING* selector);
    HRESULT (STDMETHODCALLTYPE* FromIdAsync)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics* This,
        HSTRING deviceId,
        enum __x_ABI_CWindows_CStorage_CFileAccessMode accessMode,
        __x_ABI_C__FIAsyncOperation_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidDevice** hidDevice);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStaticsVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStaticsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidDeviceStatics_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReportVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_Data)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* put_Data)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);
    HRESULT (STDMETHODCALLTYPE* GetBooleanControl)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
        UINT16 usagePage,
        UINT16 usageId,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl** value);
    HRESULT (STDMETHODCALLTYPE* GetBooleanControlByDescription)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* controlDescription,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl** value);
    HRESULT (STDMETHODCALLTYPE* GetNumericControl)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
        UINT16 usagePage,
        UINT16 usageId,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl** value);
    HRESULT (STDMETHODCALLTYPE* GetNumericControlByDescription)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* controlDescription,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReportVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReportVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidFeatureReport_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_Data)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* get_ActivatedBooleanControls)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl** value);
    HRESULT (STDMETHODCALLTYPE* get_TransitionedBooleanControls)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidBooleanControl** value);
    HRESULT (STDMETHODCALLTYPE* GetBooleanControl)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
        UINT16 usagePage,
        UINT16 usageId,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl** value);
    HRESULT (STDMETHODCALLTYPE* GetBooleanControlByDescription)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* controlDescription,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl** value);
    HRESULT (STDMETHODCALLTYPE* GetNumericControl)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
        UINT16 usagePage,
        UINT16 usageId,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl** value);
    HRESULT (STDMETHODCALLTYPE* GetNumericControlByDescription)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* controlDescription,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReport_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgsVtbl
    {
        BEGIN_INTERFACE

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

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgsVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgsVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidInputReportReceivedEventArgs_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_IsGrouped)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_UsagePage)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_UsageId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_Value)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
        INT64* value);
    HRESULT (STDMETHODCALLTYPE* put_Value)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
        INT64 value);
    HRESULT (STDMETHODCALLTYPE* get_ScaledValue)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
        INT64* value);
    HRESULT (STDMETHODCALLTYPE* put_ScaledValue)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
        INT64 value);
    HRESULT (STDMETHODCALLTYPE* get_ControlDescription)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescriptionVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_ReportId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_ReportType)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        enum __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CHidReportType* value);
    HRESULT (STDMETHODCALLTYPE* get_ReportSize)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_ReportCount)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_UsagePage)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_UsageId)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_LogicalMinimum)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_LogicalMaximum)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_PhysicalMinimum)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_PhysicalMaximum)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        INT32* value);
    HRESULT (STDMETHODCALLTYPE* get_UnitExponent)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_Unit)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        UINT32* value);
    HRESULT (STDMETHODCALLTYPE* get_IsAbsolute)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_HasNull)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        boolean* value);
    HRESULT (STDMETHODCALLTYPE* get_ParentCollections)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* This,
        __x_ABI_C__FIVectorView_1___x_ABI_CWindows__CDevices__CHumanInterfaceDevice__CHidCollection** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescriptionVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescriptionVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription_INTERFACE_DEFINED__) */
    
#if !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport_INTERFACE_DEFINED__)
    #define ____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport_INTERFACE_DEFINED__
    typedef struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReportVtbl
    {
        BEGIN_INTERFACE

        HRESULT (STDMETHODCALLTYPE* QueryInterface)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
            REFIID riid,
            void** ppvObject);
        ULONG (STDMETHODCALLTYPE* AddRef)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This);
        ULONG (STDMETHODCALLTYPE* Release)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This);
        HRESULT (STDMETHODCALLTYPE* GetIids)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
            ULONG* iidCount,
            IID** iids);
        HRESULT (STDMETHODCALLTYPE* GetRuntimeClassName)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
            HSTRING* className);
        HRESULT (STDMETHODCALLTYPE* GetTrustLevel)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
            TrustLevel* trustLevel);
        HRESULT (STDMETHODCALLTYPE* get_Id)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
        UINT16* value);
    HRESULT (STDMETHODCALLTYPE* get_Data)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer** value);
    HRESULT (STDMETHODCALLTYPE* put_Data)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
        __x_ABI_CWindows_CStorage_CStreams_CIBuffer* value);
    HRESULT (STDMETHODCALLTYPE* GetBooleanControl)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
        UINT16 usagePage,
        UINT16 usageId,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl** value);
    HRESULT (STDMETHODCALLTYPE* GetBooleanControlByDescription)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControlDescription* controlDescription,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidBooleanControl** value);
    HRESULT (STDMETHODCALLTYPE* GetNumericControl)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
        UINT16 usagePage,
        UINT16 usageId,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl** value);
    HRESULT (STDMETHODCALLTYPE* GetNumericControlByDescription)(__x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport* This,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControlDescription* controlDescription,
        __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidNumericControl** value);

        END_INTERFACE
    } __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReportVtbl;

    interface __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport
    {
        CONST_VTBL struct __x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReportVtbl* lpVtbl;
    };

    
    EXTERN_C const IID IID___x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport;
#endif /* !defined(____x_ABI_CWindows_CDevices_CHumanInterfaceDevice_CIHidOutputReport_INTERFACE_DEFINED__) */
    
