/*** Autogenerated by WIDL 8.5 from include/windows.devices.haptics.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __windows_devices_haptics_h__
#define __windows_devices_haptics_h__

#ifndef __WIDL_INLINE
#if defined(__cplusplus) || defined(_MSC_VER)
#define __WIDL_INLINE inline
#elif defined(__GNUC__)
#define __WIDL_INLINE __inline__
#endif
#endif

/* Forward declarations */

#ifndef ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback ABI::Windows::Devices::Haptics::ISimpleHapticsControllerFeedback
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Haptics {
                interface ISimpleHapticsControllerFeedback;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController ABI::Windows::Devices::Haptics::ISimpleHapticsController
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Haptics {
                interface ISimpleHapticsController;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsControllerFeedback_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsControllerFeedback_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Haptics {
                class SimpleHapticsControllerFeedback;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsControllerFeedback __x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsControllerFeedback;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsControllerFeedback_FWD_DEFINED__ */

#ifndef ____x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsController_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsController_FWD_DEFINED__
#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Haptics {
                class SimpleHapticsController;
            }
        }
    }
}
#else
typedef struct __x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsController __x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsController;
#endif /* defined __cplusplus */
#endif /* defined ____x_ABI_CWindows_CDevices_CHaptics_CSimpleHapticsController_FWD_DEFINED__ */

#ifndef ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController;
#ifdef __cplusplus
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsController* >
#endif /* __cplusplus */
#endif

#ifndef ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback;
#ifdef __cplusplus
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsControllerFeedback* >
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <inspectable.h>
#include <windows.foundation.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback ABI::Windows::Devices::Haptics::ISimpleHapticsControllerFeedback
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Haptics {
                interface ISimpleHapticsControllerFeedback;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_FWD_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController;
#ifdef __cplusplus
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController ABI::Windows::Devices::Haptics::ISimpleHapticsController
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Haptics {
                interface ISimpleHapticsController;
            }
        }
    }
}
#endif /* __cplusplus */
#endif

#ifndef ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController;
#ifdef __cplusplus
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsController* >
#endif /* __cplusplus */
#endif

#ifndef ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_FWD_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_FWD_DEFINED__
typedef interface __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback;
#ifdef __cplusplus
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsControllerFeedback* >
#endif /* __cplusplus */
#endif

/*****************************************************************************
 * ISimpleHapticsControllerFeedback interface
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
#ifndef ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback, 0x3d577ef8, 0x4cee, 0x11e6, 0xb5,0x35, 0x00,0x1b,0xdc,0x06,0xab,0x3b);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Haptics {
                MIDL_INTERFACE("3d577ef8-4cee-11e6-b535-001bdc06ab3b")
                ISimpleHapticsControllerFeedback : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE get_Waveform(
                        UINT16 *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_Duration(
                        struct TimeSpan *value) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback, 0x3d577ef8, 0x4cee, 0x11e6, 0xb5,0x35, 0x00,0x1b,0xdc,0x06,0xab,0x3b)
#endif
#else
typedef struct __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedbackVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *This,
        TrustLevel *trustLevel);

    /*** ISimpleHapticsControllerFeedback methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Waveform)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *This,
        UINT16 *value);

    HRESULT (STDMETHODCALLTYPE *get_Duration)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *This,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan *value);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedbackVtbl;

interface __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback {
    CONST_VTBL __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedbackVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** ISimpleHapticsControllerFeedback methods ***/
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_get_Waveform(This,value) (This)->lpVtbl->get_Waveform(This,value)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_get_Duration(This,value) (This)->lpVtbl->get_Duration(This,value)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_QueryInterface(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_AddRef(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_Release(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_GetIids(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_GetTrustLevel(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** ISimpleHapticsControllerFeedback methods ***/
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_get_Waveform(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback* This,UINT16 *value) {
    return This->lpVtbl->get_Waveform(This,value);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_get_Duration(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback* This,struct __x_ABI_CWindows_CFoundation_CTimeSpan *value) {
    return This->lpVtbl->get_Duration(This,value);
}
#endif
#ifdef WIDL_using_Windows_Devices_Haptics
#define IID_ISimpleHapticsControllerFeedback IID___x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback
#define ISimpleHapticsControllerFeedbackVtbl __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedbackVtbl
#define ISimpleHapticsControllerFeedback __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback
#define ISimpleHapticsControllerFeedback_QueryInterface __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_QueryInterface
#define ISimpleHapticsControllerFeedback_AddRef __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_AddRef
#define ISimpleHapticsControllerFeedback_Release __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_Release
#define ISimpleHapticsControllerFeedback_GetIids __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_GetIids
#define ISimpleHapticsControllerFeedback_GetRuntimeClassName __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_GetRuntimeClassName
#define ISimpleHapticsControllerFeedback_GetTrustLevel __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_GetTrustLevel
#define ISimpleHapticsControllerFeedback_get_Waveform __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_get_Waveform
#define ISimpleHapticsControllerFeedback_get_Duration __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_get_Duration
#endif /* WIDL_using_Windows_Devices_Haptics */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */

/*****************************************************************************
 * ISimpleHapticsController interface
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
#ifndef ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_INTERFACE_DEFINED__

DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController, 0x3d577ef9, 0x4cee, 0x11e6, 0xb5,0x35, 0x00,0x1b,0xdc,0x06,0xab,0x3b);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Devices {
            namespace Haptics {
                MIDL_INTERFACE("3d577ef9-4cee-11e6-b535-001bdc06ab3b")
                ISimpleHapticsController : public IInspectable
                {
                    virtual HRESULT STDMETHODCALLTYPE get_Id(
                        HSTRING *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_SupportedFeedback(
                        ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsControllerFeedback* > **value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_IsIntensitySupported(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_IsPlayCountSupported(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_IsPlayDurationSupported(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE get_IsReplayPauseIntervalSupported(
                        boolean *value) = 0;

                    virtual HRESULT STDMETHODCALLTYPE StopFeedback(
                        ) = 0;

                    virtual HRESULT STDMETHODCALLTYPE SendHapticFeedback(
                        ABI::Windows::Devices::Haptics::ISimpleHapticsControllerFeedback *feedback) = 0;

                    virtual HRESULT STDMETHODCALLTYPE SendHapticFeedbackWithIntensity(
                        ABI::Windows::Devices::Haptics::ISimpleHapticsControllerFeedback *feedback,
                        DOUBLE intensity) = 0;

                    virtual HRESULT STDMETHODCALLTYPE SendHapticFeedbackForDuration(
                        ABI::Windows::Devices::Haptics::ISimpleHapticsControllerFeedback *feedback,
                        DOUBLE intensity,
                        struct TimeSpan duration) = 0;

                    virtual HRESULT STDMETHODCALLTYPE SendHapticFeedbackForPlayCount(
                        ABI::Windows::Devices::Haptics::ISimpleHapticsControllerFeedback *feedback,
                        DOUBLE intensity,
                        INT32 count,
                        struct TimeSpan interval) = 0;

                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController, 0x3d577ef9, 0x4cee, 0x11e6, 0xb5,0x35, 0x00,0x1b,0xdc,0x06,0xab,0x3b)
#endif
#else
typedef struct __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        TrustLevel *trustLevel);

    /*** ISimpleHapticsController methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Id)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        HSTRING *value);

    HRESULT (STDMETHODCALLTYPE *get_SupportedFeedback)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback **value);

    HRESULT (STDMETHODCALLTYPE *get_IsIntensitySupported)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *get_IsPlayCountSupported)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *get_IsPlayDurationSupported)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *get_IsReplayPauseIntervalSupported)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        boolean *value);

    HRESULT (STDMETHODCALLTYPE *StopFeedback)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This);

    HRESULT (STDMETHODCALLTYPE *SendHapticFeedback)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *feedback);

    HRESULT (STDMETHODCALLTYPE *SendHapticFeedbackWithIntensity)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *feedback,
        DOUBLE intensity);

    HRESULT (STDMETHODCALLTYPE *SendHapticFeedbackForDuration)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *feedback,
        DOUBLE intensity,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan duration);

    HRESULT (STDMETHODCALLTYPE *SendHapticFeedbackForPlayCount)(
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *This,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *feedback,
        DOUBLE intensity,
        INT32 count,
        struct __x_ABI_CWindows_CFoundation_CTimeSpan interval);

    END_INTERFACE
} __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerVtbl;

interface __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController {
    CONST_VTBL __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** ISimpleHapticsController methods ***/
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_Id(This,value) (This)->lpVtbl->get_Id(This,value)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_SupportedFeedback(This,value) (This)->lpVtbl->get_SupportedFeedback(This,value)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsIntensitySupported(This,value) (This)->lpVtbl->get_IsIntensitySupported(This,value)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsPlayCountSupported(This,value) (This)->lpVtbl->get_IsPlayCountSupported(This,value)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsPlayDurationSupported(This,value) (This)->lpVtbl->get_IsPlayDurationSupported(This,value)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsReplayPauseIntervalSupported(This,value) (This)->lpVtbl->get_IsReplayPauseIntervalSupported(This,value)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_StopFeedback(This) (This)->lpVtbl->StopFeedback(This)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedback(This,feedback) (This)->lpVtbl->SendHapticFeedback(This,feedback)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedbackWithIntensity(This,feedback,intensity) (This)->lpVtbl->SendHapticFeedbackWithIntensity(This,feedback,intensity)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedbackForDuration(This,feedback,intensity,duration) (This)->lpVtbl->SendHapticFeedbackForDuration(This,feedback,intensity,duration)
#define __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedbackForPlayCount(This,feedback,intensity,count,interval) (This)->lpVtbl->SendHapticFeedbackForPlayCount(This,feedback,intensity,count,interval)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_QueryInterface(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_AddRef(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_Release(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_GetIids(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_GetTrustLevel(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** ISimpleHapticsController methods ***/
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_Id(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,HSTRING *value) {
    return This->lpVtbl->get_Id(This,value);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_SupportedFeedback(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback **value) {
    return This->lpVtbl->get_SupportedFeedback(This,value);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsIntensitySupported(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,boolean *value) {
    return This->lpVtbl->get_IsIntensitySupported(This,value);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsPlayCountSupported(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,boolean *value) {
    return This->lpVtbl->get_IsPlayCountSupported(This,value);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsPlayDurationSupported(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,boolean *value) {
    return This->lpVtbl->get_IsPlayDurationSupported(This,value);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsReplayPauseIntervalSupported(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,boolean *value) {
    return This->lpVtbl->get_IsReplayPauseIntervalSupported(This,value);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_StopFeedback(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This) {
    return This->lpVtbl->StopFeedback(This);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedback(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *feedback) {
    return This->lpVtbl->SendHapticFeedback(This,feedback);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedbackWithIntensity(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *feedback,DOUBLE intensity) {
    return This->lpVtbl->SendHapticFeedbackWithIntensity(This,feedback,intensity);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedbackForDuration(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *feedback,DOUBLE intensity,struct __x_ABI_CWindows_CFoundation_CTimeSpan duration) {
    return This->lpVtbl->SendHapticFeedbackForDuration(This,feedback,intensity,duration);
}
static __WIDL_INLINE HRESULT __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedbackForPlayCount(__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController* This,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *feedback,DOUBLE intensity,INT32 count,struct __x_ABI_CWindows_CFoundation_CTimeSpan interval) {
    return This->lpVtbl->SendHapticFeedbackForPlayCount(This,feedback,intensity,count,interval);
}
#endif
#ifdef WIDL_using_Windows_Devices_Haptics
#define IID_ISimpleHapticsController IID___x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController
#define ISimpleHapticsControllerVtbl __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerVtbl
#define ISimpleHapticsController __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController
#define ISimpleHapticsController_QueryInterface __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_QueryInterface
#define ISimpleHapticsController_AddRef __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_AddRef
#define ISimpleHapticsController_Release __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_Release
#define ISimpleHapticsController_GetIids __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_GetIids
#define ISimpleHapticsController_GetRuntimeClassName __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_GetRuntimeClassName
#define ISimpleHapticsController_GetTrustLevel __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_GetTrustLevel
#define ISimpleHapticsController_get_Id __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_Id
#define ISimpleHapticsController_get_SupportedFeedback __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_SupportedFeedback
#define ISimpleHapticsController_get_IsIntensitySupported __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsIntensitySupported
#define ISimpleHapticsController_get_IsPlayCountSupported __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsPlayCountSupported
#define ISimpleHapticsController_get_IsPlayDurationSupported __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsPlayDurationSupported
#define ISimpleHapticsController_get_IsReplayPauseIntervalSupported __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_get_IsReplayPauseIntervalSupported
#define ISimpleHapticsController_StopFeedback __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_StopFeedback
#define ISimpleHapticsController_SendHapticFeedback __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedback
#define ISimpleHapticsController_SendHapticFeedbackWithIntensity __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedbackWithIntensity
#define ISimpleHapticsController_SendHapticFeedbackForDuration __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedbackForDuration
#define ISimpleHapticsController_SendHapticFeedbackForPlayCount __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_SendHapticFeedbackForPlayCount
#endif /* WIDL_using_Windows_Devices_Haptics */
#endif

#endif

#endif  /* ____x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController_INTERFACE_DEFINED__ */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */

/*
 * Class Windows.Devices.Haptics.SimpleHapticsControllerFeedback
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_Haptics_SimpleHapticsControllerFeedback_DEFINED
#define RUNTIMECLASS_Windows_Devices_Haptics_SimpleHapticsControllerFeedback_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Devices_Haptics_SimpleHapticsControllerFeedback[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','H','a','p','t','i','c','s','.','S','i','m','p','l','e','H','a','p','t','i','c','s','C','o','n','t','r','o','l','l','e','r','F','e','e','d','b','a','c','k',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Haptics_SimpleHapticsControllerFeedback[] = L"Windows.Devices.Haptics.SimpleHapticsControllerFeedback";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Haptics_SimpleHapticsControllerFeedback[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','H','a','p','t','i','c','s','.','S','i','m','p','l','e','H','a','p','t','i','c','s','C','o','n','t','r','o','l','l','e','r','F','e','e','d','b','a','c','k',0};
#endif
#endif /* RUNTIMECLASS_Windows_Devices_Haptics_SimpleHapticsControllerFeedback_DEFINED */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */

/*
 * Class Windows.Devices.Haptics.SimpleHapticsController
 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
#ifndef RUNTIMECLASS_Windows_Devices_Haptics_SimpleHapticsController_DEFINED
#define RUNTIMECLASS_Windows_Devices_Haptics_SimpleHapticsController_DEFINED
#if !defined(_MSC_VER) && !defined(__MINGW32__)
static const WCHAR RuntimeClass_Windows_Devices_Haptics_SimpleHapticsController[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','H','a','p','t','i','c','s','.','S','i','m','p','l','e','H','a','p','t','i','c','s','C','o','n','t','r','o','l','l','e','r',0};
#elif defined(__GNUC__) && !defined(__cplusplus)
const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Haptics_SimpleHapticsController[] = L"Windows.Devices.Haptics.SimpleHapticsController";
#else
extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Haptics_SimpleHapticsController[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','H','a','p','t','i','c','s','.','S','i','m','p','l','e','H','a','p','t','i','c','s','C','o','n','t','r','o','l','l','e','r',0};
#endif
#endif /* RUNTIMECLASS_Windows_Devices_Haptics_SimpleHapticsController_DEFINED */
#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */

/*****************************************************************************
 * IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsController* > interface
 */
#ifndef ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController, 0x5390f01e, 0xc701, 0x5382, 0x97,0xcc, 0x94,0xea,0xac,0x4b,0x6c,0xbf);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("5390f01e-c701-5382-97cc-94eaac4b6cbf")
                IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsController* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Haptics::SimpleHapticsController*, ABI::Windows::Devices::Haptics::ISimpleHapticsController* > >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController, 0x5390f01e, 0xc701, 0x5382, 0x97,0xcc, 0x94,0xea,0xac,0x4b,0x6c,0xbf)
#endif
#else
typedef struct __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This,
        TrustLevel *trustLevel);

    /*** IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsController* > methods ***/
    HRESULT (STDMETHODCALLTYPE *GetAt)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController **value);

    HRESULT (STDMETHODCALLTYPE *get_Size)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This,
        UINT32 *value);

    HRESULT (STDMETHODCALLTYPE *IndexOf)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *element,
        UINT32 *index,
        BOOLEAN *value);

    HRESULT (STDMETHODCALLTYPE *GetMany)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController *This,
        UINT32 start_index,
        UINT32 items_size,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController **items,
        UINT32 *value);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerVtbl;

interface __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController {
    CONST_VTBL __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsController* > methods ***/
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_QueryInterface(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_AddRef(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_Release(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetIids(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetRuntimeClassName(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetTrustLevel(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsController* > methods ***/
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetAt(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This,UINT32 index,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController **value) {
    return This->lpVtbl->GetAt(This,index,value);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_get_Size(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This,UINT32 *value) {
    return This->lpVtbl->get_Size(This,value);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_IndexOf(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController *element,UINT32 *index,BOOLEAN *value) {
    return This->lpVtbl->IndexOf(This,element,index,value);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetMany(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsController **items,UINT32 *value) {
    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IVectorView_SimpleHapticsController IID___FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController
#define IVectorView_SimpleHapticsControllerVtbl __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerVtbl
#define IVectorView_SimpleHapticsController __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController
#define IVectorView_SimpleHapticsController_QueryInterface __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_QueryInterface
#define IVectorView_SimpleHapticsController_AddRef __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_AddRef
#define IVectorView_SimpleHapticsController_Release __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_Release
#define IVectorView_SimpleHapticsController_GetIids __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetIids
#define IVectorView_SimpleHapticsController_GetRuntimeClassName __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetRuntimeClassName
#define IVectorView_SimpleHapticsController_GetTrustLevel __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetTrustLevel
#define IVectorView_SimpleHapticsController_GetAt __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetAt
#define IVectorView_SimpleHapticsController_get_Size __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_get_Size
#define IVectorView_SimpleHapticsController_IndexOf __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_IndexOf
#define IVectorView_SimpleHapticsController_GetMany __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_GetMany
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsController_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsControllerFeedback* > interface
 */
#ifndef ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_INTERFACE_DEFINED__
#define ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback, 0x51f54b04, 0xbb9d, 0x5c7b, 0x8f,0x5f, 0x67,0xf8,0xca,0xf4,0xb0,0x03);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Collections {
                template<>
                MIDL_INTERFACE("51f54b04-bb9d-5c7b-8f5f-67f8caf4b003")
                IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsControllerFeedback* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Haptics::SimpleHapticsControllerFeedback*, ABI::Windows::Devices::Haptics::ISimpleHapticsControllerFeedback* > >
                {
                };
            }
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback, 0x51f54b04, 0xbb9d, 0x5c7b, 0x8f,0x5f, 0x67,0xf8,0xca,0xf4,0xb0,0x03)
#endif
#else
typedef struct __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedbackVtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This,
        TrustLevel *trustLevel);

    /*** IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsControllerFeedback* > methods ***/
    HRESULT (STDMETHODCALLTYPE *GetAt)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This,
        UINT32 index,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback **value);

    HRESULT (STDMETHODCALLTYPE *get_Size)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This,
        UINT32 *value);

    HRESULT (STDMETHODCALLTYPE *IndexOf)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *element,
        UINT32 *index,
        BOOLEAN *value);

    HRESULT (STDMETHODCALLTYPE *GetMany)(
        __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback *This,
        UINT32 start_index,
        UINT32 items_size,
        __x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback **items,
        UINT32 *value);

    END_INTERFACE
} __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedbackVtbl;

interface __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback {
    CONST_VTBL __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedbackVtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsControllerFeedback* > methods ***/
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
#define __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_QueryInterface(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_AddRef(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_Release(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetIids(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetRuntimeClassName(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetTrustLevel(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IVectorView<ABI::Windows::Devices::Haptics::SimpleHapticsControllerFeedback* > methods ***/
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetAt(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This,UINT32 index,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback **value) {
    return This->lpVtbl->GetAt(This,index,value);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_get_Size(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This,UINT32 *value) {
    return This->lpVtbl->get_Size(This,value);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_IndexOf(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback *element,UINT32 *index,BOOLEAN *value) {
    return This->lpVtbl->IndexOf(This,element,index,value);
}
static __WIDL_INLINE HRESULT __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetMany(__FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CDevices_CHaptics_CISimpleHapticsControllerFeedback **items,UINT32 *value) {
    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation_Collections
#define IID_IVectorView_SimpleHapticsControllerFeedback IID___FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback
#define IVectorView_SimpleHapticsControllerFeedbackVtbl __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedbackVtbl
#define IVectorView_SimpleHapticsControllerFeedback __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback
#define IVectorView_SimpleHapticsControllerFeedback_QueryInterface __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_QueryInterface
#define IVectorView_SimpleHapticsControllerFeedback_AddRef __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_AddRef
#define IVectorView_SimpleHapticsControllerFeedback_Release __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_Release
#define IVectorView_SimpleHapticsControllerFeedback_GetIids __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetIids
#define IVectorView_SimpleHapticsControllerFeedback_GetRuntimeClassName __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetRuntimeClassName
#define IVectorView_SimpleHapticsControllerFeedback_GetTrustLevel __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetTrustLevel
#define IVectorView_SimpleHapticsControllerFeedback_GetAt __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetAt
#define IVectorView_SimpleHapticsControllerFeedback_get_Size __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_get_Size
#define IVectorView_SimpleHapticsControllerFeedback_IndexOf __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_IndexOf
#define IVectorView_SimpleHapticsControllerFeedback_GetMany __FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_GetMany
#endif /* WIDL_using_Windows_Foundation_Collections */
#endif

#endif

#endif  /* ____FIVectorView_1_Windows__CDevices__CHaptics__CSimpleHapticsControllerFeedback_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */

ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);

/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __windows_devices_haptics_h__ */
