

/* this ALWAYS GENERATED file contains the definitions for the interfaces */


 /* File created by MIDL compiler version 8.01.0622 */
/* @@MIDL_FILE_HEADING(  ) */



/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 500
#endif

/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif

#include "rpc.h"
#include "rpcndr.h"

#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif /* __RPCNDR_H_VERSION__ */

#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/

#ifndef __windows2Egaming2Einput2Ecustom_h__
#define __windows2Egaming2Einput2Ecustom_h__

#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif

/* Forward Declarations */ 

#ifndef ____FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__
#define ____FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__
typedef interface __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress;

#endif 	/* ____FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__ */


#ifndef ____FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__
#define ____FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__
typedef interface __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress;

#endif 	/* ____FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__ */


#ifndef ____FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__
#define ____FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__
typedef interface __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress;

#endif 	/* ____FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface ICustomGameControllerFactory;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IGameControllerFactoryManagerStatics;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2 __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IGameControllerFactoryManagerStatics2;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IGameControllerInputSink;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IGameControllerProvider;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IGipFirmwareUpdateResult;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IGipGameControllerInputSink;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IGipGameControllerProvider;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IHidGameControllerInputSink;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IHidGameControllerProvider;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IXusbGameControllerInputSink;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_FWD_DEFINED__ */


#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_FWD_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_FWD_DEFINED__
typedef interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider;

#ifdef __cplusplus
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    interface IXusbGameControllerProvider;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

#endif /* __cplusplus */

#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_FWD_DEFINED__ */


/* header files for imported files */
#include "inspectable.h"
#include "AsyncInfo.h"
#include "EventToken.h"
#include "Windows.Foundation.h"
#include "Windows.Gaming.Input.h"

#ifdef __cplusplus
extern "C"{
#endif 


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0000 */
/* [local] */ 

#ifdef __cplusplus
} /*extern "C"*/ 
#endif
#include <windows.foundation.collections.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Gaming {
namespace Input {
namespace Custom {
class GipFirmwareUpdateResult;
} /*Custom*/
} /*Input*/
} /*Gaming*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Gaming {
namespace Input {
namespace Custom {
interface IGipFirmwareUpdateResult;
} /*Custom*/
} /*Input*/
} /*Gaming*/
} /*Windows*/
}
#endif

#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Gaming {
namespace Input {
namespace Custom {
struct GipFirmwareUpdateProgress;
} /*Custom*/
} /*Input*/
} /*Gaming*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0000 */
/* [local] */ 





extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0000_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4660 */




/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4660 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4660_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4660_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0001 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_USE
#define DEF___FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("065c16af-49dc-5c94-afe2-9385937facc9"))
IAsyncOperationProgressHandler<ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateResult*,struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress> : IAsyncOperationProgressHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateResult*, ABI::Windows::Gaming::Input::Custom::IGipFirmwareUpdateResult*>,struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationProgressHandler`2<Windows.Gaming.Input.Custom.GipFirmwareUpdateResult, Windows.Gaming.Input.Custom.GipFirmwareUpdateProgress>"; }
};
typedef IAsyncOperationProgressHandler<ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateResult*,struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress> __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_t;
#define ____FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__
#define __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress ABI::Windows::Foundation::__FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_USE */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0001 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0001_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4661 */




/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4661 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4661_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4661_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0002 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_USE
#define DEF___FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("61b95949-a027-51d8-9f33-37927451502b"))
IAsyncOperationWithProgressCompletedHandler<ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateResult*,struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress> : IAsyncOperationWithProgressCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateResult*, ABI::Windows::Gaming::Input::Custom::IGipFirmwareUpdateResult*>,struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.AsyncOperationWithProgressCompletedHandler`2<Windows.Gaming.Input.Custom.GipFirmwareUpdateResult, Windows.Gaming.Input.Custom.GipFirmwareUpdateProgress>"; }
};
typedef IAsyncOperationWithProgressCompletedHandler<ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateResult*,struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress> __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_t;
#define ____FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__
#define __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress ABI::Windows::Foundation::__FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_USE */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0002 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0002_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0002_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4662 */




/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4662 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4662_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4662_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0003 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_USE
#define DEF___FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_USE
#if defined(__cplusplus) && !defined(RO_NO_TEMPLATE_NAME)
} /*extern "C"*/ 
namespace ABI { namespace Windows { namespace Foundation {
template <>
struct __declspec(uuid("bfaa48bd-155f-5112-bd86-e01d6f7cd405"))
IAsyncOperationWithProgress<ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateResult*,struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress> : IAsyncOperationWithProgress_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateResult*, ABI::Windows::Gaming::Input::Custom::IGipFirmwareUpdateResult*>,struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress> {
static const wchar_t* z_get_rc_name_impl() {
return L"Windows.Foundation.IAsyncOperationWithProgress`2<Windows.Gaming.Input.Custom.GipFirmwareUpdateResult, Windows.Gaming.Input.Custom.GipFirmwareUpdateProgress>"; }
};
typedef IAsyncOperationWithProgress<ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateResult*,struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress> __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_t;
#define ____FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_FWD_DEFINED__
#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress ABI::Windows::Foundation::__FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_t

/* ABI */ } /* Windows */ } /* Foundation */ }
extern "C" {
#endif //__cplusplus
#endif /* DEF___FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_USE */
#if defined(__cplusplus)
}
#endif // defined(__cplusplus)
#include <Windows.Foundation.h>
#if !defined(__windows2Egaming2Einput_h__)
#include <Windows.Gaming.Input.h>
#endif // !defined(__windows2Egaming2Einput_h__)
#if !defined(__windows2Estorage2Estreams_h__)
#include <Windows.Storage.Streams.h>
#endif // !defined(__windows2Estorage2Estreams_h__)
#if defined(__cplusplus)
extern "C" {
#endif // defined(__cplusplus)


#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CGaming_CInput_CCustom_CGipFirmwareUpdateStatus __x_ABI_CWindows_CGaming_CInput_CCustom_CGipFirmwareUpdateStatus;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CGaming_CInput_CCustom_CGipMessageClass __x_ABI_CWindows_CGaming_CInput_CCustom_CGipMessageClass;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CGaming_CInput_CCustom_CXusbDeviceSubtype __x_ABI_CWindows_CGaming_CInput_CCustom_CXusbDeviceSubtype;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
#if !defined(__cplusplus)

typedef enum __x_ABI_CWindows_CGaming_CInput_CCustom_CXusbDeviceType __x_ABI_CWindows_CGaming_CInput_CCustom_CXusbDeviceType;


#endif /* end if !defined(__cplusplus) */


#endif
#if !defined(__cplusplus)
typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CGameControllerVersionInfo __x_ABI_CWindows_CGaming_CInput_CCustom_CGameControllerVersionInfo;

#endif
#if !defined(__cplusplus)
typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CGipFirmwareUpdateProgress __x_ABI_CWindows_CGaming_CInput_CCustom_CGipFirmwareUpdateProgress;

#endif











#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Gaming {
namespace Input {
namespace Custom {
class GipGameControllerProvider;
} /*Custom*/
} /*Input*/
} /*Gaming*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Gaming {
namespace Input {
namespace Custom {
class HidGameControllerProvider;
} /*Custom*/
} /*Input*/
} /*Gaming*/
} /*Windows*/
}
#endif
#ifdef __cplusplus
namespace ABI {
namespace Windows {
namespace Gaming {
namespace Input {
namespace Custom {
class XusbGameControllerProvider;
} /*Custom*/
} /*Input*/
} /*Gaming*/
} /*Windows*/
}
#endif


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0003 */
/* [local] */ 




#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    typedef enum GipFirmwareUpdateStatus GipFirmwareUpdateStatus;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    typedef enum GipMessageClass GipMessageClass;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    typedef enum XusbDeviceSubtype XusbDeviceSubtype;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    typedef enum XusbDeviceType XusbDeviceType;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    typedef struct GameControllerVersionInfo GameControllerVersionInfo;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus

} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    typedef struct GipFirmwareUpdateProgress GipFirmwareUpdateProgress;
                    
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif














extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0003_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0003_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4663 */




/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4663 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4663_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4663_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0004 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress
#define DEF___FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)



/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0004 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0004_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0004_v0_0_s_ifspec;

#ifndef ____FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_INTERFACE_DEFINED__
#define ____FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_INTERFACE_DEFINED__

/* interface __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("065c16af-49dc-5c94-afe2-9385937facc9")
    __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress *asyncInfo,
            /* [in] */ struct ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateProgress progressInfo) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgressVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress *asyncInfo,
            /* [in] */ struct __x_ABI_CWindows_CGaming_CInput_CCustom_CGipFirmwareUpdateProgress progressInfo);
        
        END_INTERFACE
    } __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgressVtbl;

    interface __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress
    {
        CONST_VTBL struct __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgressVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_Invoke(This,asyncInfo,progressInfo)	\
    ( (This)->lpVtbl -> Invoke(This,asyncInfo,progressInfo) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0005 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0005 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0005_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0005_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4664 */




/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4664 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4664_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4664_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0006 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress
#define DEF___FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)



/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0006 */
/* [local] */ 




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0006_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0006_v0_0_s_ifspec;

#ifndef ____FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_INTERFACE_DEFINED__
#define ____FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_INTERFACE_DEFINED__

/* interface __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("61b95949-a027-51d8-9f33-37927451502b")
    __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress : public IUnknown
    {
    public:
        virtual HRESULT STDMETHODCALLTYPE Invoke( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress *asyncInfo,
            /* [in] */ AsyncStatus status) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgressVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This);
        
        HRESULT ( STDMETHODCALLTYPE *Invoke )( 
            __RPC__in __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress *asyncInfo,
            /* [in] */ AsyncStatus status);
        
        END_INTERFACE
    } __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgressVtbl;

    interface __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress
    {
        CONST_VTBL struct __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgressVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_Invoke(This,asyncInfo,status)	\
    ( (This)->lpVtbl -> Invoke(This,asyncInfo,status) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0007 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0007 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0007_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0007_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4665 */




/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4665 */




extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4665_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom2Eidl_0000_4665_v0_0_s_ifspec;

/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0008 */
/* [local] */ 

#ifndef DEF___FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress
#define DEF___FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress
#if !defined(__cplusplus) || defined(RO_NO_TEMPLATE_NAME)


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0008 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0008_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0008_v0_0_s_ifspec;

#ifndef ____FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_INTERFACE_DEFINED__
#define ____FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_INTERFACE_DEFINED__

/* interface __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress */
/* [unique][uuid][object] */ 



/* interface __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress */
/* [unique][uuid][object] */ 


EXTERN_C const IID IID___FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress;

#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("bfaa48bd-155f-5112-bd86-e01d6f7cd405")
    __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress : public IInspectable
    {
    public:
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Progress( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress *handler) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Progress( 
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress **handler) = 0;
        
        virtual /* [propput] */ HRESULT STDMETHODCALLTYPE put_Completed( 
            /* [in] */ __RPC__in_opt __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress *handler) = 0;
        
        virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Completed( 
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress **handler) = 0;
        
        virtual HRESULT STDMETHODCALLTYPE GetResults( 
            /* [retval][out] */ __RPC__deref_out_opt ABI::Windows::Gaming::Input::Custom::IGipFirmwareUpdateResult **results) = 0;
        
    };
    
    
#else 	/* C style interface */

    typedef struct __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgressVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Progress )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress *handler);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Progress )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationProgressHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress **handler);
        
        /* [propput] */ HRESULT ( STDMETHODCALLTYPE *put_Completed )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [in] */ __RPC__in_opt __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress *handler);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Completed )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [retval][out] */ __RPC__deref_out_opt __FIAsyncOperationWithProgressCompletedHandler_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress **handler);
        
        HRESULT ( STDMETHODCALLTYPE *GetResults )( 
            __RPC__in __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress * This,
            /* [retval][out] */ __RPC__deref_out_opt __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult **results);
        
        END_INTERFACE
    } __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgressVtbl;

    interface __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress
    {
        CONST_VTBL struct __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgressVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_put_Progress(This,handler)	\
    ( (This)->lpVtbl -> put_Progress(This,handler) ) 

#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_get_Progress(This,handler)	\
    ( (This)->lpVtbl -> get_Progress(This,handler) ) 

#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_put_Completed(This,handler)	\
    ( (This)->lpVtbl -> put_Completed(This,handler) ) 

#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_get_Completed(This,handler)	\
    ( (This)->lpVtbl -> get_Completed(This,handler) ) 

#define __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_GetResults(This,results)	\
    ( (This)->lpVtbl -> GetResults(This,results) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0009 */
/* [local] */ 

#endif /* pinterface */
#endif /* DEF___FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress */
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CGaming_CInput_CCustom_CGipFirmwareUpdateStatus
    {
        GipFirmwareUpdateStatus_Completed	= 0,
        GipFirmwareUpdateStatus_UpToDate	= 1,
        GipFirmwareUpdateStatus_Failed	= 2
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CGaming_CInput_CCustom_CGipMessageClass
    {
        GipMessageClass_Command	= 0,
        GipMessageClass_LowLatency	= 1,
        GipMessageClass_StandardLatency	= 2
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CGaming_CInput_CCustom_CXusbDeviceSubtype
    {
        XusbDeviceSubtype_Unknown	= 0,
        XusbDeviceSubtype_Gamepad	= 1,
        XusbDeviceSubtype_ArcadePad	= 2,
        XusbDeviceSubtype_ArcadeStick	= 3,
        XusbDeviceSubtype_FlightStick	= 4,
        XusbDeviceSubtype_Wheel	= 5,
        XusbDeviceSubtype_Guitar	= 6,
        XusbDeviceSubtype_GuitarAlternate	= 7,
        XusbDeviceSubtype_GuitarBass	= 8,
        XusbDeviceSubtype_DrumKit	= 9,
        XusbDeviceSubtype_DancePad	= 10
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)

#if !defined(__cplusplus)
/* [v1_enum] */ 
enum __x_ABI_CWindows_CGaming_CInput_CCustom_CXusbDeviceType
    {
        XusbDeviceType_Unknown	= 0,
        XusbDeviceType_Gamepad	= 1
    } ;
#endif /* end if !defined(__cplusplus) */

#endif
#if !defined(__cplusplus)
struct __x_ABI_CWindows_CGaming_CInput_CCustom_CGameControllerVersionInfo
    {
    UINT16 Major;
    UINT16 Minor;
    UINT16 Build;
    UINT16 Revision;
    } ;
#endif
#if !defined(__cplusplus)
struct __x_ABI_CWindows_CGaming_CInput_CCustom_CGipFirmwareUpdateProgress
    {
    DOUBLE PercentCompleted;
    UINT32 CurrentComponentId;
    } ;
#endif
#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_ICustomGameControllerFactory[] = L"Windows.Gaming.Input.Custom.ICustomGameControllerFactory";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0009 */
/* [local] */ 

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    /* [v1_enum] */ 
                    enum GipFirmwareUpdateStatus
                        {
                            GipFirmwareUpdateStatus_Completed	= 0,
                            GipFirmwareUpdateStatus_UpToDate	= 1,
                            GipFirmwareUpdateStatus_Failed	= 2
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    /* [v1_enum] */ 
                    enum GipMessageClass
                        {
                            GipMessageClass_Command	= 0,
                            GipMessageClass_LowLatency	= 1,
                            GipMessageClass_StandardLatency	= 2
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    /* [v1_enum] */ 
                    enum XusbDeviceSubtype
                        {
                            XusbDeviceSubtype_Unknown	= 0,
                            XusbDeviceSubtype_Gamepad	= 1,
                            XusbDeviceSubtype_ArcadePad	= 2,
                            XusbDeviceSubtype_ArcadeStick	= 3,
                            XusbDeviceSubtype_FlightStick	= 4,
                            XusbDeviceSubtype_Wheel	= 5,
                            XusbDeviceSubtype_Guitar	= 6,
                            XusbDeviceSubtype_GuitarAlternate	= 7,
                            XusbDeviceSubtype_GuitarBass	= 8,
                            XusbDeviceSubtype_DrumKit	= 9,
                            XusbDeviceSubtype_DancePad	= 10
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    /* [v1_enum] */ 
                    enum XusbDeviceType
                        {
                            XusbDeviceType_Unknown	= 0,
                            XusbDeviceType_Gamepad	= 1
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    struct GameControllerVersionInfo
                        {
                        UINT16 Major;
                        UINT16 Minor;
                        UINT16 Build;
                        UINT16 Revision;
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif

#ifdef __cplusplus
} /* end extern "C" */
namespace ABI {
    namespace Windows {
        namespace Gaming {
            namespace Input {
                namespace Custom {
                    
                    struct GipFirmwareUpdateProgress
                        {
                        DOUBLE PercentCompleted;
                        UINT32 CurrentComponentId;
                        } ;
                } /* end namespace */
            } /* end namespace */
        } /* end namespace */
    } /* end namespace */
} /* end namespace */

extern "C" { 
#endif



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0009_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0009_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::ICustomGameControllerFactory */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("69A0AE5E-758E-4CBE-ACE6-62155FE9126F")
                        ICustomGameControllerFactory : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE CreateGameController( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Gaming::Input::Custom::IGameControllerProvider *provider,
                                /* [out][retval] */ __RPC__deref_out_opt IInspectable **value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE OnGameControllerAdded( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Gaming::Input::IGameController *value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE OnGameControllerRemoved( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Gaming::Input::IGameController *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_ICustomGameControllerFactory = __uuidof(ICustomGameControllerFactory);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactoryVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *CreateGameController )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider *provider,
            /* [out][retval] */ __RPC__deref_out_opt IInspectable **value);
        
        HRESULT ( STDMETHODCALLTYPE *OnGameControllerAdded )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CGaming_CInput_CIGameController *value);
        
        HRESULT ( STDMETHODCALLTYPE *OnGameControllerRemoved )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CGaming_CInput_CIGameController *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactoryVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactoryVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_CreateGameController(This,provider,value)	\
    ( (This)->lpVtbl -> CreateGameController(This,provider,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_OnGameControllerAdded(This,value)	\
    ( (This)->lpVtbl -> OnGameControllerAdded(This,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_OnGameControllerRemoved(This,value)	\
    ( (This)->lpVtbl -> OnGameControllerRemoved(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0010 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IGameControllerFactoryManagerStatics[] = L"Windows.Gaming.Input.Custom.IGameControllerFactoryManagerStatics";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0010 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0010_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0010_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IGameControllerFactoryManagerStatics */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("36CB66E3-D0A1-4986-A24C-40B137DEBA9E")
                        IGameControllerFactoryManagerStatics : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE RegisterCustomFactoryForGipInterface( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Gaming::Input::Custom::ICustomGameControllerFactory *factory,
                                /* [in] */ GUID interfaceId) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE RegisterCustomFactoryForHardwareId( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Gaming::Input::Custom::ICustomGameControllerFactory *factory,
                                /* [in] */ UINT16 hardwareVendorId,
                                /* [in] */ UINT16 hardwareProductId) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE RegisterCustomFactoryForXusbType( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Gaming::Input::Custom::ICustomGameControllerFactory *factory,
                                /* [in] */ ABI::Windows::Gaming::Input::Custom::XusbDeviceType xusbType,
                                /* [in] */ ABI::Windows::Gaming::Input::Custom::XusbDeviceSubtype xusbSubtype) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IGameControllerFactoryManagerStatics = __uuidof(IGameControllerFactoryManagerStatics);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStaticsVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterCustomFactoryForGipInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory *factory,
            /* [in] */ GUID interfaceId);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterCustomFactoryForHardwareId )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory *factory,
            /* [in] */ UINT16 hardwareVendorId,
            /* [in] */ UINT16 hardwareProductId);
        
        HRESULT ( STDMETHODCALLTYPE *RegisterCustomFactoryForXusbType )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory *factory,
            /* [in] */ __x_ABI_CWindows_CGaming_CInput_CCustom_CXusbDeviceType xusbType,
            /* [in] */ __x_ABI_CWindows_CGaming_CInput_CCustom_CXusbDeviceSubtype xusbSubtype);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStaticsVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStaticsVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_RegisterCustomFactoryForGipInterface(This,factory,interfaceId)	\
    ( (This)->lpVtbl -> RegisterCustomFactoryForGipInterface(This,factory,interfaceId) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_RegisterCustomFactoryForHardwareId(This,factory,hardwareVendorId,hardwareProductId)	\
    ( (This)->lpVtbl -> RegisterCustomFactoryForHardwareId(This,factory,hardwareVendorId,hardwareProductId) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_RegisterCustomFactoryForXusbType(This,factory,xusbType,xusbSubtype)	\
    ( (This)->lpVtbl -> RegisterCustomFactoryForXusbType(This,factory,xusbType,xusbSubtype) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0011 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IGameControllerFactoryManagerStatics2[] = L"Windows.Gaming.Input.Custom.IGameControllerFactoryManagerStatics2";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0011 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0011_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0011_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2 */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IGameControllerFactoryManagerStatics2 */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("EACE5644-19DF-4115-B32A-2793E2AEA3BB")
                        IGameControllerFactoryManagerStatics2 : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE TryGetFactoryControllerFromGameController( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Gaming::Input::Custom::ICustomGameControllerFactory *factory,
                                /* [in] */ __RPC__in_opt ABI::Windows::Gaming::Input::IGameController *gameController,
                                /* [out][retval] */ __RPC__deref_out_opt ABI::Windows::Gaming::Input::IGameController **factoryController) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IGameControllerFactoryManagerStatics2 = __uuidof(IGameControllerFactoryManagerStatics2);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2Vtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2 * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2 * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2 * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2 * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2 * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2 * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *TryGetFactoryControllerFromGameController )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2 * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CGaming_CInput_CCustom_CICustomGameControllerFactory *factory,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CGaming_CInput_CIGameController *gameController,
            /* [out][retval] */ __RPC__deref_out_opt __x_ABI_CWindows_CGaming_CInput_CIGameController **factoryController);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2Vtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2Vtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_TryGetFactoryControllerFromGameController(This,factory,gameController,factoryController)	\
    ( (This)->lpVtbl -> TryGetFactoryControllerFromGameController(This,factory,gameController,factoryController) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerFactoryManagerStatics2_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0012 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IGameControllerInputSink[] = L"Windows.Gaming.Input.Custom.IGameControllerInputSink";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0012 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0012_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0012_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IGameControllerInputSink */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("1FF6F922-C640-4C78-A820-9A715C558BCB")
                        IGameControllerInputSink : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OnInputResumed( 
                                /* [in] */ UINT64 timestamp) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE OnInputSuspended( 
                                /* [in] */ UINT64 timestamp) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IGameControllerInputSink = __uuidof(IGameControllerInputSink);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSinkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OnInputResumed )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink * This,
            /* [in] */ UINT64 timestamp);
        
        HRESULT ( STDMETHODCALLTYPE *OnInputSuspended )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink * This,
            /* [in] */ UINT64 timestamp);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSinkVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSinkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_OnInputResumed(This,timestamp)	\
    ( (This)->lpVtbl -> OnInputResumed(This,timestamp) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_OnInputSuspended(This,timestamp)	\
    ( (This)->lpVtbl -> OnInputSuspended(This,timestamp) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerInputSink_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0013 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IGameControllerProvider[] = L"Windows.Gaming.Input.Custom.IGameControllerProvider";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0013 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0013_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0013_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IGameControllerProvider */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("E6D73982-2996-4559-B16C-3E57D46E58D6")
                        IGameControllerProvider : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FirmwareVersionInfo( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Gaming::Input::Custom::GameControllerVersionInfo *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HardwareProductId( 
                                /* [out][retval] */ __RPC__out UINT16 *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HardwareVendorId( 
                                /* [out][retval] */ __RPC__out UINT16 *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_HardwareVersionInfo( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Gaming::Input::Custom::GameControllerVersionInfo *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_IsConnected( 
                                /* [out][retval] */ __RPC__out boolean *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IGameControllerProvider = __uuidof(IGameControllerProvider);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FirmwareVersionInfo )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CGaming_CInput_CCustom_CGameControllerVersionInfo *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HardwareProductId )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This,
            /* [out][retval] */ __RPC__out UINT16 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HardwareVendorId )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This,
            /* [out][retval] */ __RPC__out UINT16 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_HardwareVersionInfo )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CGaming_CInput_CCustom_CGameControllerVersionInfo *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsConnected )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider * This,
            /* [out][retval] */ __RPC__out boolean *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProviderVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_get_FirmwareVersionInfo(This,value)	\
    ( (This)->lpVtbl -> get_FirmwareVersionInfo(This,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_get_HardwareProductId(This,value)	\
    ( (This)->lpVtbl -> get_HardwareProductId(This,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_get_HardwareVendorId(This,value)	\
    ( (This)->lpVtbl -> get_HardwareVendorId(This,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_get_HardwareVersionInfo(This,value)	\
    ( (This)->lpVtbl -> get_HardwareVersionInfo(This,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_get_IsConnected(This,value)	\
    ( (This)->lpVtbl -> get_IsConnected(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGameControllerProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0014 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IGipFirmwareUpdateResult[] = L"Windows.Gaming.Input.Custom.IGipFirmwareUpdateResult";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0014 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0014_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0014_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IGipFirmwareUpdateResult */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("6B794D32-8553-4292-8E03-E16651A2F8BC")
                        IGipFirmwareUpdateResult : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_ExtendedErrorCode( 
                                /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_FinalComponentId( 
                                /* [out][retval] */ __RPC__out UINT32 *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_Status( 
                                /* [out][retval] */ __RPC__out ABI::Windows::Gaming::Input::Custom::GipFirmwareUpdateStatus *value) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IGipFirmwareUpdateResult = __uuidof(IGipFirmwareUpdateResult);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResultVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_ExtendedErrorCode )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_FinalComponentId )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult * This,
            /* [out][retval] */ __RPC__out UINT32 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_Status )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult * This,
            /* [out][retval] */ __RPC__out __x_ABI_CWindows_CGaming_CInput_CCustom_CGipFirmwareUpdateStatus *value);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResultVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResultVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_get_ExtendedErrorCode(This,value)	\
    ( (This)->lpVtbl -> get_ExtendedErrorCode(This,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_get_FinalComponentId(This,value)	\
    ( (This)->lpVtbl -> get_FinalComponentId(This,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_get_Status(This,value)	\
    ( (This)->lpVtbl -> get_Status(This,value) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipFirmwareUpdateResult_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0015 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IGipGameControllerInputSink[] = L"Windows.Gaming.Input.Custom.IGipGameControllerInputSink";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0015 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0015_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0015_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IGipGameControllerInputSink */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("A2108ABF-09F1-43BC-A140-80F899EC36FB")
                        IGipGameControllerInputSink : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OnKeyReceived( 
                                /* [in] */ UINT64 timestamp,
                                /* [in] */ BYTE keyCode,
                                /* [in] */ boolean isPressed) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE OnMessageReceived( 
                                /* [in] */ UINT64 timestamp,
                                /* [in] */ ABI::Windows::Gaming::Input::Custom::GipMessageClass messageClass,
                                /* [in] */ BYTE messageId,
                                /* [in] */ BYTE sequenceId,
                                /* [in] */ UINT32 __messageBufferSize,
                                /* [in][size_is] */ __RPC__in_ecount_full(__messageBufferSize) BYTE *messageBuffer) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IGipGameControllerInputSink = __uuidof(IGipGameControllerInputSink);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSinkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OnKeyReceived )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink * This,
            /* [in] */ UINT64 timestamp,
            /* [in] */ BYTE keyCode,
            /* [in] */ boolean isPressed);
        
        HRESULT ( STDMETHODCALLTYPE *OnMessageReceived )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink * This,
            /* [in] */ UINT64 timestamp,
            /* [in] */ __x_ABI_CWindows_CGaming_CInput_CCustom_CGipMessageClass messageClass,
            /* [in] */ BYTE messageId,
            /* [in] */ BYTE sequenceId,
            /* [in] */ UINT32 __messageBufferSize,
            /* [in][size_is] */ __RPC__in_ecount_full(__messageBufferSize) BYTE *messageBuffer);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSinkVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSinkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_OnKeyReceived(This,timestamp,keyCode,isPressed)	\
    ( (This)->lpVtbl -> OnKeyReceived(This,timestamp,keyCode,isPressed) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_OnMessageReceived(This,timestamp,messageClass,messageId,sequenceId,__messageBufferSize,messageBuffer)	\
    ( (This)->lpVtbl -> OnMessageReceived(This,timestamp,messageClass,messageId,sequenceId,__messageBufferSize,messageBuffer) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerInputSink_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0016 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IGipGameControllerProvider[] = L"Windows.Gaming.Input.Custom.IGipGameControllerProvider";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0016 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0016_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0016_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IGipGameControllerProvider */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("DBCF1E19-1AF5-45A8-BF02-A0EE50C823FC")
                        IGipGameControllerProvider : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE SendMessage( 
                                /* [in] */ ABI::Windows::Gaming::Input::Custom::GipMessageClass messageClass,
                                /* [in] */ BYTE messageId,
                                /* [in] */ UINT32 __messageBufferSize,
                                /* [in][size_is] */ __RPC__in_ecount_full(__messageBufferSize) BYTE *messageBuffer) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE SendReceiveMessage( 
                                /* [in] */ ABI::Windows::Gaming::Input::Custom::GipMessageClass messageClass,
                                /* [in] */ BYTE messageId,
                                /* [in] */ UINT32 __requestMessageBufferSize,
                                /* [in][size_is] */ __RPC__in_ecount_full(__requestMessageBufferSize) BYTE *requestMessageBuffer,
                                /* [in] */ UINT32 __responseMessageBufferSize,
                                /* [out][size_is] */ __RPC__out_ecount_full(__responseMessageBufferSize) BYTE *responseMessageBuffer) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE UpdateFirmwareAsync( 
                                /* [in] */ __RPC__in_opt ABI::Windows::Storage::Streams::IInputStream *firmwareImage,
                                /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress **result) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IGipGameControllerProvider = __uuidof(IGipGameControllerProvider);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *SendMessage )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider * This,
            /* [in] */ __x_ABI_CWindows_CGaming_CInput_CCustom_CGipMessageClass messageClass,
            /* [in] */ BYTE messageId,
            /* [in] */ UINT32 __messageBufferSize,
            /* [in][size_is] */ __RPC__in_ecount_full(__messageBufferSize) BYTE *messageBuffer);
        
        HRESULT ( STDMETHODCALLTYPE *SendReceiveMessage )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider * This,
            /* [in] */ __x_ABI_CWindows_CGaming_CInput_CCustom_CGipMessageClass messageClass,
            /* [in] */ BYTE messageId,
            /* [in] */ UINT32 __requestMessageBufferSize,
            /* [in][size_is] */ __RPC__in_ecount_full(__requestMessageBufferSize) BYTE *requestMessageBuffer,
            /* [in] */ UINT32 __responseMessageBufferSize,
            /* [out][size_is] */ __RPC__out_ecount_full(__responseMessageBufferSize) BYTE *responseMessageBuffer);
        
        HRESULT ( STDMETHODCALLTYPE *UpdateFirmwareAsync )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider * This,
            /* [in] */ __RPC__in_opt __x_ABI_CWindows_CStorage_CStreams_CIInputStream *firmwareImage,
            /* [out][retval] */ __RPC__deref_out_opt __FIAsyncOperationWithProgress_2_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateResult_Windows__CGaming__CInput__CCustom__CGipFirmwareUpdateProgress **result);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProviderVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_SendMessage(This,messageClass,messageId,__messageBufferSize,messageBuffer)	\
    ( (This)->lpVtbl -> SendMessage(This,messageClass,messageId,__messageBufferSize,messageBuffer) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_SendReceiveMessage(This,messageClass,messageId,__requestMessageBufferSize,requestMessageBuffer,__responseMessageBufferSize,responseMessageBuffer)	\
    ( (This)->lpVtbl -> SendReceiveMessage(This,messageClass,messageId,__requestMessageBufferSize,requestMessageBuffer,__responseMessageBufferSize,responseMessageBuffer) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_UpdateFirmwareAsync(This,firmwareImage,result)	\
    ( (This)->lpVtbl -> UpdateFirmwareAsync(This,firmwareImage,result) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIGipGameControllerProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0017 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IHidGameControllerInputSink[] = L"Windows.Gaming.Input.Custom.IHidGameControllerInputSink";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0017 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0017_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0017_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IHidGameControllerInputSink */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("F754C322-182D-40E4-A126-FCEE4FFA1E31")
                        IHidGameControllerInputSink : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OnInputReportReceived( 
                                /* [in] */ UINT64 timestamp,
                                /* [in] */ BYTE reportId,
                                /* [in] */ UINT32 __reportBufferSize,
                                /* [in][size_is] */ __RPC__in_ecount_full(__reportBufferSize) BYTE *reportBuffer) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IHidGameControllerInputSink = __uuidof(IHidGameControllerInputSink);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSinkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OnInputReportReceived )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink * This,
            /* [in] */ UINT64 timestamp,
            /* [in] */ BYTE reportId,
            /* [in] */ UINT32 __reportBufferSize,
            /* [in][size_is] */ __RPC__in_ecount_full(__reportBufferSize) BYTE *reportBuffer);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSinkVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSinkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_OnInputReportReceived(This,timestamp,reportId,__reportBufferSize,reportBuffer)	\
    ( (This)->lpVtbl -> OnInputReportReceived(This,timestamp,reportId,__reportBufferSize,reportBuffer) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerInputSink_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0018 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IHidGameControllerProvider[] = L"Windows.Gaming.Input.Custom.IHidGameControllerProvider";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0018 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0018_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0018_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IHidGameControllerProvider */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("95CE3AF4-ABF0-4B68-A081-3B7DE73FF0E7")
                        IHidGameControllerProvider : public IInspectable
                        {
                        public:
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UsageId( 
                                /* [out][retval] */ __RPC__out UINT16 *value) = 0;
                            
                            virtual /* [propget] */ HRESULT STDMETHODCALLTYPE get_UsagePage( 
                                /* [out][retval] */ __RPC__out UINT16 *value) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE GetFeatureReport( 
                                /* [in] */ BYTE reportId,
                                /* [in] */ UINT32 __reportBufferSize,
                                /* [out][size_is] */ __RPC__out_ecount_full(__reportBufferSize) BYTE *reportBuffer) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE SendFeatureReport( 
                                /* [in] */ BYTE reportId,
                                /* [in] */ UINT32 __reportBufferSize,
                                /* [in][size_is] */ __RPC__in_ecount_full(__reportBufferSize) BYTE *reportBuffer) = 0;
                            
                            virtual HRESULT STDMETHODCALLTYPE SendOutputReport( 
                                /* [in] */ BYTE reportId,
                                /* [in] */ UINT32 __reportBufferSize,
                                /* [in][size_is] */ __RPC__in_ecount_full(__reportBufferSize) BYTE *reportBuffer) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IHidGameControllerProvider = __uuidof(IHidGameControllerProvider);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UsageId )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This,
            /* [out][retval] */ __RPC__out UINT16 *value);
        
        /* [propget] */ HRESULT ( STDMETHODCALLTYPE *get_UsagePage )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This,
            /* [out][retval] */ __RPC__out UINT16 *value);
        
        HRESULT ( STDMETHODCALLTYPE *GetFeatureReport )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This,
            /* [in] */ BYTE reportId,
            /* [in] */ UINT32 __reportBufferSize,
            /* [out][size_is] */ __RPC__out_ecount_full(__reportBufferSize) BYTE *reportBuffer);
        
        HRESULT ( STDMETHODCALLTYPE *SendFeatureReport )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This,
            /* [in] */ BYTE reportId,
            /* [in] */ UINT32 __reportBufferSize,
            /* [in][size_is] */ __RPC__in_ecount_full(__reportBufferSize) BYTE *reportBuffer);
        
        HRESULT ( STDMETHODCALLTYPE *SendOutputReport )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider * This,
            /* [in] */ BYTE reportId,
            /* [in] */ UINT32 __reportBufferSize,
            /* [in][size_is] */ __RPC__in_ecount_full(__reportBufferSize) BYTE *reportBuffer);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProviderVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_get_UsageId(This,value)	\
    ( (This)->lpVtbl -> get_UsageId(This,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_get_UsagePage(This,value)	\
    ( (This)->lpVtbl -> get_UsagePage(This,value) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_GetFeatureReport(This,reportId,__reportBufferSize,reportBuffer)	\
    ( (This)->lpVtbl -> GetFeatureReport(This,reportId,__reportBufferSize,reportBuffer) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_SendFeatureReport(This,reportId,__reportBufferSize,reportBuffer)	\
    ( (This)->lpVtbl -> SendFeatureReport(This,reportId,__reportBufferSize,reportBuffer) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_SendOutputReport(This,reportId,__reportBufferSize,reportBuffer)	\
    ( (This)->lpVtbl -> SendOutputReport(This,reportId,__reportBufferSize,reportBuffer) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIHidGameControllerProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0019 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IXusbGameControllerInputSink[] = L"Windows.Gaming.Input.Custom.IXusbGameControllerInputSink";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0019 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0019_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0019_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IXusbGameControllerInputSink */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("B2AC1D95-6ECB-42B3-8AAB-025401CA4712")
                        IXusbGameControllerInputSink : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE OnInputReceived( 
                                /* [in] */ UINT64 timestamp,
                                /* [in] */ BYTE reportId,
                                /* [in] */ UINT32 __inputBufferSize,
                                /* [in][size_is] */ __RPC__in_ecount_full(__inputBufferSize) BYTE *inputBuffer) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IXusbGameControllerInputSink = __uuidof(IXusbGameControllerInputSink);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSinkVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *OnInputReceived )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink * This,
            /* [in] */ UINT64 timestamp,
            /* [in] */ BYTE reportId,
            /* [in] */ UINT32 __inputBufferSize,
            /* [in][size_is] */ __RPC__in_ecount_full(__inputBufferSize) BYTE *inputBuffer);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSinkVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSinkVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_OnInputReceived(This,timestamp,reportId,__inputBufferSize,inputBuffer)	\
    ( (This)->lpVtbl -> OnInputReceived(This,timestamp,reportId,__inputBufferSize,inputBuffer) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerInputSink_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0020 */
/* [local] */ 

#if !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_INTERFACE_DEFINED__)
extern const __declspec(selectany) _Null_terminated_ WCHAR InterfaceName_Windows_Gaming_Input_Custom_IXusbGameControllerProvider[] = L"Windows.Gaming.Input.Custom.IXusbGameControllerProvider";
#endif /* !defined(____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_INTERFACE_DEFINED__) */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0020 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0020_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0020_v0_0_s_ifspec;

#ifndef ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_INTERFACE_DEFINED__
#define ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_INTERFACE_DEFINED__

/* interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider */
/* [uuid][object] */ 



/* interface ABI::Windows::Gaming::Input::Custom::IXusbGameControllerProvider */
/* [uuid][object] */ 


EXTERN_C const IID IID___x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider;

#if defined(__cplusplus) && !defined(CINTERFACE)
    } /* end extern "C" */
    namespace ABI {
        namespace Windows {
            namespace Gaming {
                namespace Input {
                    namespace Custom {
                        
                        MIDL_INTERFACE("6E2971EB-0EFB-48B4-808B-837643B2F216")
                        IXusbGameControllerProvider : public IInspectable
                        {
                        public:
                            virtual HRESULT STDMETHODCALLTYPE SetVibration( 
                                /* [in] */ DOUBLE lowFrequencyMotorSpeed,
                                /* [in] */ DOUBLE highFrequencyMotorSpeed) = 0;
                            
                        };

                        extern const __declspec(selectany) IID & IID_IXusbGameControllerProvider = __uuidof(IXusbGameControllerProvider);

                        
                    }  /* end namespace */
                }  /* end namespace */
            }  /* end namespace */
        }  /* end namespace */
    }  /* end namespace */
    extern "C" { 
    
#else 	/* C style interface */

    typedef struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProviderVtbl
    {
        BEGIN_INTERFACE
        
        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider * This,
            /* [in] */ __RPC__in REFIID riid,
            /* [annotation][iid_is][out] */ 
            _COM_Outptr_  void **ppvObject);
        
        ULONG ( STDMETHODCALLTYPE *AddRef )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider * This);
        
        ULONG ( STDMETHODCALLTYPE *Release )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider * This);
        
        HRESULT ( STDMETHODCALLTYPE *GetIids )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider * This,
            /* [out] */ __RPC__out ULONG *iidCount,
            /* [size_is][size_is][out] */ __RPC__deref_out_ecount_full_opt(*iidCount) IID **iids);
        
        HRESULT ( STDMETHODCALLTYPE *GetRuntimeClassName )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider * This,
            /* [out] */ __RPC__deref_out_opt HSTRING *className);
        
        HRESULT ( STDMETHODCALLTYPE *GetTrustLevel )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider * This,
            /* [out] */ __RPC__out TrustLevel *trustLevel);
        
        HRESULT ( STDMETHODCALLTYPE *SetVibration )( 
            __RPC__in __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider * This,
            /* [in] */ DOUBLE lowFrequencyMotorSpeed,
            /* [in] */ DOUBLE highFrequencyMotorSpeed);
        
        END_INTERFACE
    } __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProviderVtbl;

    interface __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider
    {
        CONST_VTBL struct __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProviderVtbl *lpVtbl;
    };

    

#ifdef COBJMACROS


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_QueryInterface(This,riid,ppvObject)	\
    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_AddRef(This)	\
    ( (This)->lpVtbl -> AddRef(This) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_Release(This)	\
    ( (This)->lpVtbl -> Release(This) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_GetIids(This,iidCount,iids)	\
    ( (This)->lpVtbl -> GetIids(This,iidCount,iids) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_GetRuntimeClassName(This,className)	\
    ( (This)->lpVtbl -> GetRuntimeClassName(This,className) ) 

#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_GetTrustLevel(This,trustLevel)	\
    ( (This)->lpVtbl -> GetTrustLevel(This,trustLevel) ) 


#define __x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_SetVibration(This,lowFrequencyMotorSpeed,highFrequencyMotorSpeed)	\
    ( (This)->lpVtbl -> SetVibration(This,lowFrequencyMotorSpeed,highFrequencyMotorSpeed) ) 

#endif /* COBJMACROS */


#endif 	/* C style interface */




#endif 	/* ____x_ABI_CWindows_CGaming_CInput_CCustom_CIXusbGameControllerProvider_INTERFACE_DEFINED__ */


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0021 */
/* [local] */ 

#ifndef RUNTIMECLASS_Windows_Gaming_Input_Custom_GameControllerFactoryManager_DEFINED
#define RUNTIMECLASS_Windows_Gaming_Input_Custom_GameControllerFactoryManager_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Gaming_Input_Custom_GameControllerFactoryManager[] = L"Windows.Gaming.Input.Custom.GameControllerFactoryManager";
#endif
#ifndef RUNTIMECLASS_Windows_Gaming_Input_Custom_GipFirmwareUpdateResult_DEFINED
#define RUNTIMECLASS_Windows_Gaming_Input_Custom_GipFirmwareUpdateResult_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Gaming_Input_Custom_GipFirmwareUpdateResult[] = L"Windows.Gaming.Input.Custom.GipFirmwareUpdateResult";
#endif
#ifndef RUNTIMECLASS_Windows_Gaming_Input_Custom_GipGameControllerProvider_DEFINED
#define RUNTIMECLASS_Windows_Gaming_Input_Custom_GipGameControllerProvider_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Gaming_Input_Custom_GipGameControllerProvider[] = L"Windows.Gaming.Input.Custom.GipGameControllerProvider";
#endif
#ifndef RUNTIMECLASS_Windows_Gaming_Input_Custom_HidGameControllerProvider_DEFINED
#define RUNTIMECLASS_Windows_Gaming_Input_Custom_HidGameControllerProvider_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Gaming_Input_Custom_HidGameControllerProvider[] = L"Windows.Gaming.Input.Custom.HidGameControllerProvider";
#endif
#ifndef RUNTIMECLASS_Windows_Gaming_Input_Custom_XusbGameControllerProvider_DEFINED
#define RUNTIMECLASS_Windows_Gaming_Input_Custom_XusbGameControllerProvider_DEFINED
extern const __declspec(selectany) _Null_terminated_ WCHAR RuntimeClass_Windows_Gaming_Input_Custom_XusbGameControllerProvider[] = L"Windows.Gaming.Input.Custom.XusbGameControllerProvider";
#endif


/* interface __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0021 */
/* [local] */ 



extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0021_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_windows2Egaming2Einput2Ecustom_0000_0021_v0_0_s_ifspec;

/* Additional Prototypes for ALL interfaces */

/* end of Additional Prototypes */

#ifdef __cplusplus
}
#endif

#endif


