headers: Update imported headers to Wine 10.11
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index b4ddb1c..888c20a 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -297,7 +297,9 @@
   include/windows.applicationmodel.idl \
   include/windows.data.json.idl \
   include/windows.data.xml.dom.idl \
+  include/windows.devices.bluetooth.genericattributeprofile.idl \
   include/windows.devices.bluetooth.idl \
+  include/windows.devices.bluetooth.rfcomm.idl \
   include/windows.devices.enumeration.idl \
   include/windows.devices.geolocation.idl \
   include/windows.devices.haptics.idl \
@@ -334,6 +336,7 @@
   include/windows.media.speechsynthesis.idl \
   include/windows.networking.connectivity.idl \
   include/windows.networking.idl \
+  include/windows.networking.sockets.idl \
   include/windows.perception.spatial.idl \
   include/windows.perception.spatial.surfaces.idl \
   include/windows.security.authentication.onlineid.idl \
@@ -360,6 +363,7 @@
   include/windows.ui.composition.interop.idl \
   include/windows.ui.core.idl \
   include/windows.ui.notifications.idl \
+  include/windows.ui.viewmanagement.core.idl \
   include/windows.ui.viewmanagement.idl \
   include/windows.ui.xaml.hosting.desktopwindowxamlsource.idl \
   include/windows.ui.xaml.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
index 10860e2..bccf537 100644
--- a/mingw-w64-headers/Makefile.in
+++ b/mingw-w64-headers/Makefile.in
@@ -599,7 +599,9 @@
 @HAVE_WIDL_TRUE@  include/windows.applicationmodel.idl \
 @HAVE_WIDL_TRUE@  include/windows.data.json.idl \
 @HAVE_WIDL_TRUE@  include/windows.data.xml.dom.idl \
+@HAVE_WIDL_TRUE@  include/windows.devices.bluetooth.genericattributeprofile.idl \
 @HAVE_WIDL_TRUE@  include/windows.devices.bluetooth.idl \
+@HAVE_WIDL_TRUE@  include/windows.devices.bluetooth.rfcomm.idl \
 @HAVE_WIDL_TRUE@  include/windows.devices.enumeration.idl \
 @HAVE_WIDL_TRUE@  include/windows.devices.geolocation.idl \
 @HAVE_WIDL_TRUE@  include/windows.devices.haptics.idl \
@@ -636,6 +638,7 @@
 @HAVE_WIDL_TRUE@  include/windows.media.speechsynthesis.idl \
 @HAVE_WIDL_TRUE@  include/windows.networking.connectivity.idl \
 @HAVE_WIDL_TRUE@  include/windows.networking.idl \
+@HAVE_WIDL_TRUE@  include/windows.networking.sockets.idl \
 @HAVE_WIDL_TRUE@  include/windows.perception.spatial.idl \
 @HAVE_WIDL_TRUE@  include/windows.perception.spatial.surfaces.idl \
 @HAVE_WIDL_TRUE@  include/windows.security.authentication.onlineid.idl \
@@ -662,6 +665,7 @@
 @HAVE_WIDL_TRUE@  include/windows.ui.composition.interop.idl \
 @HAVE_WIDL_TRUE@  include/windows.ui.core.idl \
 @HAVE_WIDL_TRUE@  include/windows.ui.notifications.idl \
+@HAVE_WIDL_TRUE@  include/windows.ui.viewmanagement.core.idl \
 @HAVE_WIDL_TRUE@  include/windows.ui.viewmanagement.idl \
 @HAVE_WIDL_TRUE@  include/windows.ui.xaml.hosting.desktopwindowxamlsource.idl \
 @HAVE_WIDL_TRUE@  include/windows.ui.xaml.idl \
diff --git a/mingw-w64-headers/include/d3d11shader.h b/mingw-w64-headers/include/d3d11shader.h
index 8f4370f..e83ec97 100644
--- a/mingw-w64-headers/include/d3d11shader.h
+++ b/mingw-w64-headers/include/d3d11shader.h
@@ -328,7 +328,7 @@
     STDMETHOD(CreateModuleInstance)(THIS_ ID3D11ModuleInstance **instance, ID3DBlob **error) PURE;
     STDMETHOD(SetInputSignature)(THIS_ const D3D11_PARAMETER_DESC *parameter_desc, UINT parameter_count, ID3D11LinkingNode **input_node) PURE;
     STDMETHOD(SetOutputSignature)(THIS_ const D3D11_PARAMETER_DESC *parameter_desc, UINT parameter_count, ID3D11LinkingNode **output_node) PURE;
-    STDMETHOD(CallFunction)(THIS_ LPCSTR ns, ID3D11Module *module, LPCSTR function_name, ID3D11LinkingNode **call_node) PURE;
+    STDMETHOD(CallFunction)(THIS_ LPCSTR _namespace, ID3D11Module *module, LPCSTR function_name, ID3D11LinkingNode **call_node) PURE;
     STDMETHOD(PassValue)(THIS_ ID3D11LinkingNode *src_node, INT src_parameter_index, ID3D11LinkingNode *dst_node, INT dst_parameter_index) PURE;
     STDMETHOD(PassValueWithSwizzle)(THIS_ ID3D11LinkingNode *src_node, INT src_parameter_index, LPCSTR src_swizzle, ID3D11LinkingNode *dst_node, INT dst_parameter_index,LPCSTR dst_swizzle) PURE;
     STDMETHOD(GetLastError)(THIS_ ID3DBlob **error) PURE;
diff --git a/mingw-w64-headers/include/d3dcompiler.h b/mingw-w64-headers/include/d3dcompiler.h
index cb32418..24586ea 100644
--- a/mingw-w64-headers/include/d3dcompiler.h
+++ b/mingw-w64-headers/include/d3dcompiler.h
@@ -154,6 +154,7 @@
         const D3D_SHADER_MACRO *defines, ID3DInclude *include,
         ID3DBlob **shader, ID3DBlob **error_messages);
 
+HRESULT WINAPI D3DCreateFunctionLinkingGraph(UINT flags, ID3D11FunctionLinkingGraph **graph);
 HRESULT WINAPI D3DCreateLinker(ID3D11Linker **linker);
 HRESULT WINAPI D3DLoadModule(const void *data, SIZE_T size, ID3D11Module **module);
 
diff --git a/mingw-w64-headers/include/windows.devices.bluetooth.genericattributeprofile.h b/mingw-w64-headers/include/windows.devices.bluetooth.genericattributeprofile.h
new file mode 100644
index 0000000..8cbce2a
--- /dev/null
+++ b/mingw-w64-headers/include/windows.devices.bluetooth.genericattributeprofile.h
@@ -0,0 +1,11224 @@
+/*** Autogenerated by WIDL 10.11 from include/windows.devices.bluetooth.genericattributeprofile.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_devices_bluetooth_genericattributeprofile_h__
+#define __windows_devices_bluetooth_genericattributeprofile_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceService;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceService2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService3
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceService3;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceServiceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceServiceStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceServiceStatics2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceServiceStatics2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceService_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceService_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattDeviceService;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceService __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceService;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceService_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceServicesResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceServicesResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceServicesResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceServicesResult_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattDeviceServicesResult;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceServicesResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceServicesResult;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDeviceServicesResult_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSession
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattSession;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSessionStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattSessionStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSession_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSession_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattSession;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSession __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSession;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSession_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSessionStatusChangedEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattSessionStatusChangedEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatusChangedEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatusChangedEventArgs_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattSessionStatusChangedEventArgs;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatusChangedEventArgs __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatusChangedEventArgs;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatusChangedEventArgs_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattCharacteristic;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattCharacteristic2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic3
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattCharacteristic3;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristicStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattCharacteristicStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristic_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristic_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattCharacteristic;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristic __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristic;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristic_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristicsResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattCharacteristicsResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicsResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicsResult_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattCharacteristicsResult;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicsResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicsResult;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicsResult_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptor
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDescriptor;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptor2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDescriptor2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptorStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDescriptorStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptor_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptor_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattDescriptor;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptor __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptor;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptor_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptorsResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDescriptorsResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptorsResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptorsResult_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattDescriptorsResult;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptorsResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptorsResult;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattDescriptorsResult_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattValueChangedEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattValueChangedEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattValueChangedEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattValueChangedEventArgs_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattValueChangedEventArgs;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattValueChangedEventArgs __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattValueChangedEventArgs;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattValueChangedEventArgs_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattReadResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadResult_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattReadResult;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadResult;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadResult_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattWriteResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattWriteResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteResult_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattWriteResult;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteResult;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteResult_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadClientCharacteristicConfigurationDescriptorResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattReadClientCharacteristicConfigurationDescriptorResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadClientCharacteristicConfigurationDescriptorResult2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattReadClientCharacteristicConfigurationDescriptorResult2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattReadClientCharacteristicConfigurationDescriptorResult;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadClientCharacteristicConfigurationDescriptorResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadClientCharacteristicConfigurationDescriptorResult;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattPresentationFormat
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattPresentationFormat;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattPresentationFormat_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattPresentationFormat_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    class GattPresentationFormat;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattPresentationFormat __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattPresentationFormat;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattPresentationFormat_FWD_DEFINED__ */
+
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_GattCommunicationStatus_FWD_DEFINED__
+#define ____FIAsyncOperation_1_GattCommunicationStatus_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_GattCommunicationStatus __FIAsyncOperation_1_GattCommunicationStatus;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_GattCommunicationStatus ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceAccessStatus >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_DeviceAccessStatus_FWD_DEFINED__
+#define ____FIAsyncOperation_1_DeviceAccessStatus_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_DeviceAccessStatus __FIAsyncOperation_1_DeviceAccessStatus;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_DeviceAccessStatus ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceAccessStatus >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_GattOpenStatus_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_GattOpenStatus_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_GattOpenStatus __FIAsyncOperationCompletedHandler_1_GattOpenStatus;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_GattOpenStatus ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_GattOpenStatus_FWD_DEFINED__
+#define ____FIAsyncOperation_1_GattOpenStatus_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_GattOpenStatus __FIAsyncOperation_1_GattOpenStatus;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_GattOpenStatus ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattValueChangedEventArgs* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatusChangedEventArgs* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,IInspectable* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIReference_1_BYTE_FWD_DEFINED__
+#define ____FIReference_1_BYTE_FWD_DEFINED__
+typedef interface __FIReference_1_BYTE __FIReference_1_BYTE;
+#ifdef __cplusplus
+#define __FIReference_1_BYTE ABI::Windows::Foundation::IReference<BYTE >
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <asyncinfo.h>
+#include <eventtoken.h>
+#include <windowscontracts.h>
+#include <windows.foundation.h>
+#include <windows.storage.streams.h>
+#include <windows.devices.bluetooth.h>
+#include <windows.devices.enumeration.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0xe0000
+#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                enum BluetoothCacheMode {
+                    BluetoothCacheMode_Cached = 0,
+                    BluetoothCacheMode_Uncached = 1
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode {
+    BluetoothCacheMode_Cached = 0,
+    BluetoothCacheMode_Uncached = 1
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define BluetoothCacheMode __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                enum BluetoothError {
+                    BluetoothError_Success = 0,
+                    BluetoothError_RadioNotAvailable = 1,
+                    BluetoothError_ResourceInUse = 2,
+                    BluetoothError_DeviceNotConnected = 3,
+                    BluetoothError_OtherError = 4,
+                    BluetoothError_DisabledByPolicy = 5,
+                    BluetoothError_NotSupported = 6,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x20000
+                    BluetoothError_DisabledByUser = 7,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x20000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000
+                    BluetoothError_ConsentRequired = 8,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+                    BluetoothError_TransportNotSupported = 9
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError {
+    BluetoothError_Success = 0,
+    BluetoothError_RadioNotAvailable = 1,
+    BluetoothError_ResourceInUse = 2,
+    BluetoothError_DeviceNotConnected = 3,
+    BluetoothError_OtherError = 4,
+    BluetoothError_DisabledByPolicy = 5,
+    BluetoothError_NotSupported = 6,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x20000
+    BluetoothError_DisabledByUser = 7,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x20000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000
+    BluetoothError_ConsentRequired = 8,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+    BluetoothError_TransportNotSupported = 9
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define BluetoothError __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    enum GattCommunicationStatus {
+                        GattCommunicationStatus_Success = 0,
+                        GattCommunicationStatus_Unreachable = 1,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+                        GattCommunicationStatus_ProtocolError = 2,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+                        GattCommunicationStatus_AccessDenied = 3
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus {
+    GattCommunicationStatus_Success = 0,
+    GattCommunicationStatus_Unreachable = 1,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+    GattCommunicationStatus_ProtocolError = 2,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+    GattCommunicationStatus_AccessDenied = 3
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define GattCommunicationStatus __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicProperties_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicProperties_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    enum GattCharacteristicProperties {
+                        GattCharacteristicProperties_None = 0x0,
+                        GattCharacteristicProperties_Broadcast = 0x1,
+                        GattCharacteristicProperties_Read = 0x2,
+                        GattCharacteristicProperties_WriteWithoutResponse = 0x4,
+                        GattCharacteristicProperties_Write = 0x8,
+                        GattCharacteristicProperties_Notify = 0x10,
+                        GattCharacteristicProperties_Indicate = 0x20,
+                        GattCharacteristicProperties_AuthenticatedSignedWrites = 0x40,
+                        GattCharacteristicProperties_ExtendedProperties = 0x80,
+                        GattCharacteristicProperties_ReliableWrites = 0x100,
+                        GattCharacteristicProperties_WritableAuxiliaries = 0x200
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicProperties {
+    GattCharacteristicProperties_None = 0x0,
+    GattCharacteristicProperties_Broadcast = 0x1,
+    GattCharacteristicProperties_Read = 0x2,
+    GattCharacteristicProperties_WriteWithoutResponse = 0x4,
+    GattCharacteristicProperties_Write = 0x8,
+    GattCharacteristicProperties_Notify = 0x10,
+    GattCharacteristicProperties_Indicate = 0x20,
+    GattCharacteristicProperties_AuthenticatedSignedWrites = 0x40,
+    GattCharacteristicProperties_ExtendedProperties = 0x80,
+    GattCharacteristicProperties_ReliableWrites = 0x100,
+    GattCharacteristicProperties_WritableAuxiliaries = 0x200
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define GattCharacteristicProperties __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicProperties
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicProperties_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicProperties __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicProperties;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    enum GattProtectionLevel {
+                        GattProtectionLevel_Plain = 0,
+                        GattProtectionLevel_AuthenticationRequired = 1,
+                        GattProtectionLevel_EncryptionRequired = 2,
+                        GattProtectionLevel_EncryptionAndAuthenticationRequired = 3
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel {
+    GattProtectionLevel_Plain = 0,
+    GattProtectionLevel_AuthenticationRequired = 1,
+    GattProtectionLevel_EncryptionRequired = 2,
+    GattProtectionLevel_EncryptionAndAuthenticationRequired = 3
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define GattProtectionLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    enum GattWriteOption {
+                        GattWriteOption_WriteWithResponse = 0,
+                        GattWriteOption_WriteWithoutResponse = 1
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption {
+    GattWriteOption_WriteWithResponse = 0,
+    GattWriteOption_WriteWithoutResponse = 1
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define GattWriteOption __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    enum GattClientCharacteristicConfigurationDescriptorValue {
+                        GattClientCharacteristicConfigurationDescriptorValue_None = 0,
+                        GattClientCharacteristicConfigurationDescriptorValue_Notify = 1,
+                        GattClientCharacteristicConfigurationDescriptorValue_Indicate = 2
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue {
+    GattClientCharacteristicConfigurationDescriptorValue_None = 0,
+    GattClientCharacteristicConfigurationDescriptorValue_Notify = 1,
+    GattClientCharacteristicConfigurationDescriptorValue_Indicate = 2
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define GattClientCharacteristicConfigurationDescriptorValue __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    enum GattSharingMode {
+                        GattSharingMode_Unspecified = 0,
+                        GattSharingMode_Exclusive = 1,
+                        GattSharingMode_SharedReadOnly = 2,
+                        GattSharingMode_SharedReadAndWrite = 3
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode {
+    GattSharingMode_Unspecified = 0,
+    GattSharingMode_Exclusive = 1,
+    GattSharingMode_SharedReadOnly = 2,
+    GattSharingMode_SharedReadAndWrite = 3
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define GattSharingMode __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattOpenStatus_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattOpenStatus_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    enum GattOpenStatus {
+                        GattOpenStatus_Unspecified = 0,
+                        GattOpenStatus_Success = 1,
+                        GattOpenStatus_AlreadyOpened = 2,
+                        GattOpenStatus_NotFound = 3,
+                        GattOpenStatus_SharingViolation = 4,
+                        GattOpenStatus_AccessDenied = 5
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattOpenStatus {
+    GattOpenStatus_Unspecified = 0,
+    GattOpenStatus_Success = 1,
+    GattOpenStatus_AlreadyOpened = 2,
+    GattOpenStatus_NotFound = 3,
+    GattOpenStatus_SharingViolation = 4,
+    GattOpenStatus_AccessDenied = 5
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define GattOpenStatus __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattOpenStatus
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattOpenStatus_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattOpenStatus __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattOpenStatus;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    enum GattSessionStatus {
+                        GattSessionStatus_Closed = 0,
+                        GattSessionStatus_Active = 1
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus {
+    GattSessionStatus_Closed = 0,
+    GattSessionStatus_Active = 1
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define GattSessionStatus __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus;
+#endif /* __cplusplus */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceService;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceService2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService3
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceService3;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceServiceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceServiceStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceServiceStatics2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceServiceStatics2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceServicesResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDeviceServicesResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSession
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattSession;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSessionStatusChangedEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattSessionStatusChangedEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSessionStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattSessionStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattCharacteristic;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattCharacteristic2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic3
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattCharacteristic3;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristicStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattCharacteristicStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptorsResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDescriptorsResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptor
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDescriptor;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptor2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDescriptor2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptorStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattDescriptorStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattValueChangedEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattValueChangedEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattReadResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadResult2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattReadResult2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattWriteResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattWriteResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadClientCharacteristicConfigurationDescriptorResult
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattReadClientCharacteristicConfigurationDescriptorResult;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadClientCharacteristicConfigurationDescriptorResult2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattReadClientCharacteristicConfigurationDescriptorResult2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattPresentationFormat
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattPresentationFormat;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattPresentationFormatStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattPresentationFormatStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatStatics2 ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattPresentationFormatStatics2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    interface IGattPresentationFormatStatics2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_GattCommunicationStatus_FWD_DEFINED__
+#define ____FIAsyncOperation_1_GattCommunicationStatus_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_GattCommunicationStatus __FIAsyncOperation_1_GattCommunicationStatus;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_GattCommunicationStatus ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_DeviceAccessStatus_FWD_DEFINED__
+#define ____FIAsyncOperation_1_DeviceAccessStatus_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_DeviceAccessStatus __FIAsyncOperation_1_DeviceAccessStatus;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_DeviceAccessStatus ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceAccessStatus >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_GattOpenStatus_FWD_DEFINED__
+#define ____FIAsyncOperation_1_GattOpenStatus_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_GattOpenStatus __FIAsyncOperation_1_GattOpenStatus;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_GattOpenStatus ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIReference_1_BYTE_FWD_DEFINED__
+#define ____FIReference_1_BYTE_FWD_DEFINED__
+typedef interface __FIReference_1_BYTE __FIReference_1_BYTE;
+#ifdef __cplusplus
+#define __FIReference_1_BYTE ABI::Windows::Foundation::IReference<BYTE >
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * IGattDeviceService interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService, 0xac7b7c05, 0xb33c, 0x47cf, 0x99,0x0f, 0x6b,0x8f,0x55,0x77,0xdf,0x71);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("ac7b7c05-b33c-47cf-990f-6b8f5577df71")
+                    IGattDeviceService : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
+                            GUID uuid,
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetIncludedServices(
+                            GUID uuid,
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
+                            HSTRING *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Uuid(
+                            GUID *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_AttributeHandle(
+                            UINT16 *value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService, 0xac7b7c05, 0xb33c, 0x47cf, 0x99,0x0f, 0x6b,0x8f,0x55,0x77,0xdf,0x71)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDeviceService methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This,
+        GUID uuid,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic **value);
+
+    HRESULT (STDMETHODCALLTYPE *GetIncludedServices)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This,
+        GUID uuid,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Uuid)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This,
+        GUID *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_AttributeHandle)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *This,
+        UINT16 *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDeviceService methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetCharacteristics(This,uuid,value) (This)->lpVtbl->GetCharacteristics(This,uuid,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetIncludedServices(This,uuid,value) (This)->lpVtbl->GetIncludedServices(This,uuid,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_get_DeviceId(This,value) (This)->lpVtbl->get_DeviceId(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_get_Uuid(This,value) (This)->lpVtbl->get_Uuid(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_get_AttributeHandle(This,value) (This)->lpVtbl->get_AttributeHandle(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDeviceService methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetCharacteristics(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This,GUID uuid,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic **value) {
+    return This->lpVtbl->GetCharacteristics(This,uuid,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetIncludedServices(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This,GUID uuid,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value) {
+    return This->lpVtbl->GetIncludedServices(This,uuid,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_get_DeviceId(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This,HSTRING *value) {
+    return This->lpVtbl->get_DeviceId(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_get_Uuid(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This,GUID *value) {
+    return This->lpVtbl->get_Uuid(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_get_AttributeHandle(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService* This,UINT16 *value) {
+    return This->lpVtbl->get_AttributeHandle(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDeviceService IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService
+#define IGattDeviceServiceVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceVtbl
+#define IGattDeviceService __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService
+#define IGattDeviceService_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_QueryInterface
+#define IGattDeviceService_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_AddRef
+#define IGattDeviceService_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_Release
+#define IGattDeviceService_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetIids
+#define IGattDeviceService_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetRuntimeClassName
+#define IGattDeviceService_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetTrustLevel
+#define IGattDeviceService_GetCharacteristics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetCharacteristics
+#define IGattDeviceService_GetIncludedServices __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_GetIncludedServices
+#define IGattDeviceService_get_DeviceId __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_get_DeviceId
+#define IGattDeviceService_get_Uuid __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_get_Uuid
+#define IGattDeviceService_get_AttributeHandle __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_get_AttributeHandle
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattDeviceService2 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2, 0xfc54520b, 0x0b0d, 0x4708, 0xba,0xe0, 0x9f,0xfd,0x94,0x89,0xbc,0x59);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("fc54520b-0b0d-4708-bae0-9ffd9489bc59")
+                    IGattDeviceService2 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Device(
+                            ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ParentServices(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetAllCharacteristics(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetAllIncludedServices(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > **value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2, 0xfc54520b, 0x0b0d, 0x4708, 0xba,0xe0, 0x9f,0xfd,0x94,0x89,0xbc,0x59)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDeviceService2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Device)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ParentServices)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value);
+
+    HRESULT (STDMETHODCALLTYPE *GetAllCharacteristics)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic **value);
+
+    HRESULT (STDMETHODCALLTYPE *GetAllIncludedServices)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2Vtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2 {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDeviceService2 methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_get_Device(This,value) (This)->lpVtbl->get_Device(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_get_ParentServices(This,value) (This)->lpVtbl->get_ParentServices(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetAllCharacteristics(This,value) (This)->lpVtbl->GetAllCharacteristics(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetAllIncludedServices(This,value) (This)->lpVtbl->GetAllIncludedServices(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDeviceService2 methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_get_Device(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice **value) {
+    return This->lpVtbl->get_Device(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_get_ParentServices(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value) {
+    return This->lpVtbl->get_ParentServices(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetAllCharacteristics(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic **value) {
+    return This->lpVtbl->GetAllCharacteristics(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetAllIncludedServices(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value) {
+    return This->lpVtbl->GetAllIncludedServices(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDeviceService2 IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2
+#define IGattDeviceService2Vtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2Vtbl
+#define IGattDeviceService2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2
+#define IGattDeviceService2_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_QueryInterface
+#define IGattDeviceService2_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_AddRef
+#define IGattDeviceService2_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_Release
+#define IGattDeviceService2_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetIids
+#define IGattDeviceService2_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetRuntimeClassName
+#define IGattDeviceService2_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetTrustLevel
+#define IGattDeviceService2_get_Device __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_get_Device
+#define IGattDeviceService2_get_ParentServices __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_get_ParentServices
+#define IGattDeviceService2_GetAllCharacteristics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetAllCharacteristics
+#define IGattDeviceService2_GetAllIncludedServices __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_GetAllIncludedServices
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService2_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattDeviceService3 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3, 0xb293a950, 0x0c53, 0x437c, 0xa9,0xb3, 0x5c,0x32,0x10,0xc6,0xe5,0x69);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("b293a950-0c53-437c-a9b3-5c3210c6e569")
+                    IGattDeviceService3 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_DeviceAccessInformation(
+                            ABI::Windows::Devices::Enumeration::IDeviceAccessInformation **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Session(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSession **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_SharingMode(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSharingMode *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE RequestAccessAsync(
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE OpenAsync(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSharingMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetCharacteristicsAsync(
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetCharacteristicsWithCacheModeAsync(
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetCharacteristicsForUuidAsync(
+                            GUID uuid,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetCharacteristicsForUuidWithCacheModeAsync(
+                            GUID uuid,
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetIncludedServicesAsync(
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetIncludedServicesWithCacheModeAsync(
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetIncludedServicesForUuidAsync(
+                            GUID uuid,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetIncludedServicesForUuidWithCacheModeAsync(
+                            GUID uuid,
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > **async) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3, 0xb293a950, 0x0c53, 0x437c, 0xa9,0xb3, 0x5c,0x32,0x10,0xc6,0xe5,0x69)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDeviceService3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_DeviceAccessInformation)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        __x_ABI_CWindows_CDevices_CEnumeration_CIDeviceAccessInformation **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Session)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_SharingMode)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode *value);
+
+    HRESULT (STDMETHODCALLTYPE *RequestAccessAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        __FIAsyncOperation_1_DeviceAccessStatus **async);
+
+    HRESULT (STDMETHODCALLTYPE *OpenAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode mode,
+        __FIAsyncOperation_1_GattOpenStatus **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetCharacteristicsAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetCharacteristicsWithCacheModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetCharacteristicsForUuidAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        GUID uuid,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetCharacteristicsForUuidWithCacheModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        GUID uuid,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetIncludedServicesAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetIncludedServicesWithCacheModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetIncludedServicesForUuidAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        GUID uuid,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetIncludedServicesForUuidWithCacheModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 *This,
+        GUID uuid,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **async);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3Vtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3 {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDeviceService3 methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_get_DeviceAccessInformation(This,value) (This)->lpVtbl->get_DeviceAccessInformation(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_get_Session(This,value) (This)->lpVtbl->get_Session(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_get_SharingMode(This,value) (This)->lpVtbl->get_SharingMode(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_RequestAccessAsync(This,async) (This)->lpVtbl->RequestAccessAsync(This,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_OpenAsync(This,mode,async) (This)->lpVtbl->OpenAsync(This,mode,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsAsync(This,async) (This)->lpVtbl->GetCharacteristicsAsync(This,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsWithCacheModeAsync(This,mode,async) (This)->lpVtbl->GetCharacteristicsWithCacheModeAsync(This,mode,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsForUuidAsync(This,uuid,async) (This)->lpVtbl->GetCharacteristicsForUuidAsync(This,uuid,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsForUuidWithCacheModeAsync(This,uuid,mode,async) (This)->lpVtbl->GetCharacteristicsForUuidWithCacheModeAsync(This,uuid,mode,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesAsync(This,async) (This)->lpVtbl->GetIncludedServicesAsync(This,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesWithCacheModeAsync(This,mode,async) (This)->lpVtbl->GetIncludedServicesWithCacheModeAsync(This,mode,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesForUuidAsync(This,uuid,async) (This)->lpVtbl->GetIncludedServicesForUuidAsync(This,uuid,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesForUuidWithCacheModeAsync(This,uuid,mode,async) (This)->lpVtbl->GetIncludedServicesForUuidWithCacheModeAsync(This,uuid,mode,async)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDeviceService3 methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_get_DeviceAccessInformation(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,__x_ABI_CWindows_CDevices_CEnumeration_CIDeviceAccessInformation **value) {
+    return This->lpVtbl->get_DeviceAccessInformation(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_get_Session(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession **value) {
+    return This->lpVtbl->get_Session(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_get_SharingMode(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode *value) {
+    return This->lpVtbl->get_SharingMode(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_RequestAccessAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,__FIAsyncOperation_1_DeviceAccessStatus **async) {
+    return This->lpVtbl->RequestAccessAsync(This,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_OpenAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode mode,__FIAsyncOperation_1_GattOpenStatus **async) {
+    return This->lpVtbl->OpenAsync(This,mode,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **async) {
+    return This->lpVtbl->GetCharacteristicsAsync(This,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsWithCacheModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **async) {
+    return This->lpVtbl->GetCharacteristicsWithCacheModeAsync(This,mode,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsForUuidAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,GUID uuid,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **async) {
+    return This->lpVtbl->GetCharacteristicsForUuidAsync(This,uuid,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsForUuidWithCacheModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,GUID uuid,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **async) {
+    return This->lpVtbl->GetCharacteristicsForUuidWithCacheModeAsync(This,uuid,mode,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **async) {
+    return This->lpVtbl->GetIncludedServicesAsync(This,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesWithCacheModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **async) {
+    return This->lpVtbl->GetIncludedServicesWithCacheModeAsync(This,mode,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesForUuidAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,GUID uuid,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **async) {
+    return This->lpVtbl->GetIncludedServicesForUuidAsync(This,uuid,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesForUuidWithCacheModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3* This,GUID uuid,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **async) {
+    return This->lpVtbl->GetIncludedServicesForUuidWithCacheModeAsync(This,uuid,mode,async);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDeviceService3 IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3
+#define IGattDeviceService3Vtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3Vtbl
+#define IGattDeviceService3 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3
+#define IGattDeviceService3_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_QueryInterface
+#define IGattDeviceService3_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_AddRef
+#define IGattDeviceService3_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_Release
+#define IGattDeviceService3_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIids
+#define IGattDeviceService3_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetRuntimeClassName
+#define IGattDeviceService3_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetTrustLevel
+#define IGattDeviceService3_get_DeviceAccessInformation __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_get_DeviceAccessInformation
+#define IGattDeviceService3_get_Session __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_get_Session
+#define IGattDeviceService3_get_SharingMode __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_get_SharingMode
+#define IGattDeviceService3_RequestAccessAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_RequestAccessAsync
+#define IGattDeviceService3_OpenAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_OpenAsync
+#define IGattDeviceService3_GetCharacteristicsAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsAsync
+#define IGattDeviceService3_GetCharacteristicsWithCacheModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsWithCacheModeAsync
+#define IGattDeviceService3_GetCharacteristicsForUuidAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsForUuidAsync
+#define IGattDeviceService3_GetCharacteristicsForUuidWithCacheModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetCharacteristicsForUuidWithCacheModeAsync
+#define IGattDeviceService3_GetIncludedServicesAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesAsync
+#define IGattDeviceService3_GetIncludedServicesWithCacheModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesWithCacheModeAsync
+#define IGattDeviceService3_GetIncludedServicesForUuidAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesForUuidAsync
+#define IGattDeviceService3_GetIncludedServicesForUuidWithCacheModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_GetIncludedServicesForUuidWithCacheModeAsync
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService3_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IGattDeviceServiceStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics, 0x196d0022, 0xfaad, 0x45dc, 0xae,0x5b, 0x2a,0xc3,0x18,0x4e,0x84,0xdb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("196d0022-faad-45dc-ae5b-2ac3184e84db")
+                    IGattDeviceServiceStatics : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE FromIdAsync(
+                            HSTRING id,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorFromUuid(
+                            GUID uuid,
+                            HSTRING *selector) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorFromShortId(
+                            UINT16 id,
+                            HSTRING *selector) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE ConvertShortIdToUuid(
+                            UINT16 id,
+                            GUID *value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics, 0x196d0022, 0xfaad, 0x45dc, 0xae,0x5b, 0x2a,0xc3,0x18,0x4e,0x84,0xdb)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDeviceServiceStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *FromIdAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This,
+        HSTRING id,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceSelectorFromUuid)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This,
+        GUID uuid,
+        HSTRING *selector);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceSelectorFromShortId)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This,
+        UINT16 id,
+        HSTRING *selector);
+
+    HRESULT (STDMETHODCALLTYPE *ConvertShortIdToUuid)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics *This,
+        UINT16 id,
+        GUID *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStaticsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDeviceServiceStatics methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_FromIdAsync(This,id,async) (This)->lpVtbl->FromIdAsync(This,id,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetDeviceSelectorFromUuid(This,uuid,selector) (This)->lpVtbl->GetDeviceSelectorFromUuid(This,uuid,selector)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetDeviceSelectorFromShortId(This,id,selector) (This)->lpVtbl->GetDeviceSelectorFromShortId(This,id,selector)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_ConvertShortIdToUuid(This,id,value) (This)->lpVtbl->ConvertShortIdToUuid(This,id,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDeviceServiceStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_FromIdAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This,HSTRING id,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **async) {
+    return This->lpVtbl->FromIdAsync(This,id,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetDeviceSelectorFromUuid(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This,GUID uuid,HSTRING *selector) {
+    return This->lpVtbl->GetDeviceSelectorFromUuid(This,uuid,selector);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetDeviceSelectorFromShortId(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This,UINT16 id,HSTRING *selector) {
+    return This->lpVtbl->GetDeviceSelectorFromShortId(This,id,selector);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_ConvertShortIdToUuid(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics* This,UINT16 id,GUID *value) {
+    return This->lpVtbl->ConvertShortIdToUuid(This,id,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDeviceServiceStatics IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics
+#define IGattDeviceServiceStaticsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStaticsVtbl
+#define IGattDeviceServiceStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics
+#define IGattDeviceServiceStatics_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_QueryInterface
+#define IGattDeviceServiceStatics_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_AddRef
+#define IGattDeviceServiceStatics_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_Release
+#define IGattDeviceServiceStatics_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetIids
+#define IGattDeviceServiceStatics_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetRuntimeClassName
+#define IGattDeviceServiceStatics_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetTrustLevel
+#define IGattDeviceServiceStatics_FromIdAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_FromIdAsync
+#define IGattDeviceServiceStatics_GetDeviceSelectorFromUuid __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetDeviceSelectorFromUuid
+#define IGattDeviceServiceStatics_GetDeviceSelectorFromShortId __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_GetDeviceSelectorFromShortId
+#define IGattDeviceServiceStatics_ConvertShortIdToUuid __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_ConvertShortIdToUuid
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattDeviceServiceStatics2 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2, 0x0604186e, 0x24a6, 0x4b0d, 0xa2,0xf2, 0x30,0xcc,0x01,0x54,0x5d,0x25);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("0604186e-24a6-4b0d-a2f2-30cc01545d25")
+                    IGattDeviceServiceStatics2 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE FromIdWithSharingModeAsync(
+                            HSTRING id,
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSharingMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorForBluetoothDeviceId(
+                            ABI::Windows::Devices::Bluetooth::IBluetoothDeviceId *id,
+                            HSTRING *selector) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorForBluetoothDeviceIdWithCacheMode(
+                            ABI::Windows::Devices::Bluetooth::IBluetoothDeviceId *id,
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            HSTRING *selector) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorForBluetoothDeviceIdAndUuid(
+                            ABI::Windows::Devices::Bluetooth::IBluetoothDeviceId *id,
+                            GUID uuid,
+                            HSTRING *selector) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode(
+                            ABI::Windows::Devices::Bluetooth::IBluetoothDeviceId *id,
+                            GUID uuid,
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            HSTRING *selector) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2, 0x0604186e, 0x24a6, 0x4b0d, 0xa2,0xf2, 0x30,0xcc,0x01,0x54,0x5d,0x25)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDeviceServiceStatics2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *FromIdWithSharingModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This,
+        HSTRING id,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode mode,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceSelectorForBluetoothDeviceId)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,
+        HSTRING *selector);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceSelectorForBluetoothDeviceIdWithCacheMode)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        HSTRING *selector);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceSelectorForBluetoothDeviceIdAndUuid)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,
+        GUID uuid,
+        HSTRING *selector);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,
+        GUID uuid,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        HSTRING *selector);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2Vtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2 {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDeviceServiceStatics2 methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_FromIdWithSharingModeAsync(This,id,mode,async) (This)->lpVtbl->FromIdWithSharingModeAsync(This,id,mode,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceId(This,id,selector) (This)->lpVtbl->GetDeviceSelectorForBluetoothDeviceId(This,id,selector)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdWithCacheMode(This,id,mode,selector) (This)->lpVtbl->GetDeviceSelectorForBluetoothDeviceIdWithCacheMode(This,id,mode,selector)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdAndUuid(This,id,uuid,selector) (This)->lpVtbl->GetDeviceSelectorForBluetoothDeviceIdAndUuid(This,id,uuid,selector)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode(This,id,uuid,mode,selector) (This)->lpVtbl->GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode(This,id,uuid,mode,selector)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDeviceServiceStatics2 methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_FromIdWithSharingModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This,HSTRING id,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSharingMode mode,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **async) {
+    return This->lpVtbl->FromIdWithSharingModeAsync(This,id,mode,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceId(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,HSTRING *selector) {
+    return This->lpVtbl->GetDeviceSelectorForBluetoothDeviceId(This,id,selector);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdWithCacheMode(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,HSTRING *selector) {
+    return This->lpVtbl->GetDeviceSelectorForBluetoothDeviceIdWithCacheMode(This,id,mode,selector);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdAndUuid(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,GUID uuid,HSTRING *selector) {
+    return This->lpVtbl->GetDeviceSelectorForBluetoothDeviceIdAndUuid(This,id,uuid,selector);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,GUID uuid,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,HSTRING *selector) {
+    return This->lpVtbl->GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode(This,id,uuid,mode,selector);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDeviceServiceStatics2 IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2
+#define IGattDeviceServiceStatics2Vtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2Vtbl
+#define IGattDeviceServiceStatics2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2
+#define IGattDeviceServiceStatics2_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_QueryInterface
+#define IGattDeviceServiceStatics2_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_AddRef
+#define IGattDeviceServiceStatics2_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_Release
+#define IGattDeviceServiceStatics2_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetIids
+#define IGattDeviceServiceStatics2_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetRuntimeClassName
+#define IGattDeviceServiceStatics2_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetTrustLevel
+#define IGattDeviceServiceStatics2_FromIdWithSharingModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_FromIdWithSharingModeAsync
+#define IGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceId __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceId
+#define IGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdWithCacheMode __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdWithCacheMode
+#define IGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdAndUuid __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdAndUuid
+#define IGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServiceStatics2_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceService_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceService_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceService[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','D','e','v','i','c','e','S','e','r','v','i','c','e',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceService[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceService[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','D','e','v','i','c','e','S','e','r','v','i','c','e',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceService_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattDeviceServicesResult interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult, 0x171dd3ee, 0x016d, 0x419d, 0x83,0x8a, 0x57,0x6c,0xf4,0x75,0xa3,0xd8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("171dd3ee-016d-419d-838a-576cf475a3d8")
+                    IGattDeviceServicesResult : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Status(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ProtocolError(
+                            ABI::Windows::Foundation::IReference<BYTE > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Services(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > **value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult, 0x171dd3ee, 0x016d, 0x419d, 0x83,0x8a, 0x57,0x6c,0xf4,0x75,0xa3,0xd8)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDeviceServicesResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ProtocolError)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult *This,
+        __FIReference_1_BYTE **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Services)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResultVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDeviceServicesResult methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_get_Status(This,value) (This)->lpVtbl->get_Status(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_get_ProtocolError(This,value) (This)->lpVtbl->get_ProtocolError(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_get_Services(This,value) (This)->lpVtbl->get_Services(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDeviceServicesResult methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_get_Status(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value) {
+    return This->lpVtbl->get_Status(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_get_ProtocolError(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult* This,__FIReference_1_BYTE **value) {
+    return This->lpVtbl->get_ProtocolError(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_get_Services(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value) {
+    return This->lpVtbl->get_Services(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDeviceServicesResult IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult
+#define IGattDeviceServicesResultVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResultVtbl
+#define IGattDeviceServicesResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult
+#define IGattDeviceServicesResult_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_QueryInterface
+#define IGattDeviceServicesResult_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_AddRef
+#define IGattDeviceServicesResult_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_Release
+#define IGattDeviceServicesResult_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_GetIids
+#define IGattDeviceServicesResult_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_GetRuntimeClassName
+#define IGattDeviceServicesResult_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_GetTrustLevel
+#define IGattDeviceServicesResult_get_Status __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_get_Status
+#define IGattDeviceServicesResult_get_ProtocolError __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_get_ProtocolError
+#define IGattDeviceServicesResult_get_Services __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_get_Services
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceServicesResult_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceServicesResult_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceServicesResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','D','e','v','i','c','e','S','e','r','v','i','c','e','s','R','e','s','u','l','t',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceServicesResult[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceServicesResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','D','e','v','i','c','e','S','e','r','v','i','c','e','s','R','e','s','u','l','t',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDeviceServicesResult_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IGattSession interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession, 0xd23b5143, 0xe04e, 0x4c24, 0x99,0x9c, 0x9c,0x25,0x6f,0x98,0x56,0xb1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("d23b5143-e04e-4c24-999c-9c256f9856b1")
+                    IGattSession : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
+                            ABI::Windows::Devices::Bluetooth::IBluetoothDeviceId **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_CanMaintainConnection(
+                            boolean *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE put_MaintainConnection(
+                            boolean value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_MaintainConnection(
+                            boolean *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_MaxPduSize(
+                            UINT16 *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_SessionStatus(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatus *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE add_MaxPduSizeChanged(
+                            ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,IInspectable* > *handler,
+                            EventRegistrationToken *token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE remove_MaxPduSizeChanged(
+                            EventRegistrationToken token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE add_SessionStatusChanged(
+                            ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatusChangedEventArgs* > *handler,
+                            EventRegistrationToken *token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE remove_SessionStatusChanged(
+                            EventRegistrationToken token) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession, 0xd23b5143, 0xe04e, 0x4c24, 0x99,0x9c, 0x9c,0x25,0x6f,0x98,0x56,0xb1)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattSession methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_CanMaintainConnection)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_MaintainConnection)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        boolean value);
+
+    HRESULT (STDMETHODCALLTYPE *get_MaintainConnection)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_MaxPduSize)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        UINT16 *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_SessionStatus)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus *value);
+
+    HRESULT (STDMETHODCALLTYPE *add_MaxPduSizeChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_MaxPduSizeChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        EventRegistrationToken token);
+
+    HRESULT (STDMETHODCALLTYPE *add_SessionStatusChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_SessionStatusChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *This,
+        EventRegistrationToken token);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattSession methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_DeviceId(This,value) (This)->lpVtbl->get_DeviceId(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_CanMaintainConnection(This,value) (This)->lpVtbl->get_CanMaintainConnection(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_put_MaintainConnection(This,value) (This)->lpVtbl->put_MaintainConnection(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_MaintainConnection(This,value) (This)->lpVtbl->get_MaintainConnection(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_MaxPduSize(This,value) (This)->lpVtbl->get_MaxPduSize(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_SessionStatus(This,value) (This)->lpVtbl->get_SessionStatus(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_add_MaxPduSizeChanged(This,handler,token) (This)->lpVtbl->add_MaxPduSizeChanged(This,handler,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_remove_MaxPduSizeChanged(This,token) (This)->lpVtbl->remove_MaxPduSizeChanged(This,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_add_SessionStatusChanged(This,handler,token) (This)->lpVtbl->add_SessionStatusChanged(This,handler,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_remove_SessionStatusChanged(This,token) (This)->lpVtbl->remove_SessionStatusChanged(This,token)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattSession methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_DeviceId(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId **value) {
+    return This->lpVtbl->get_DeviceId(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_CanMaintainConnection(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,boolean *value) {
+    return This->lpVtbl->get_CanMaintainConnection(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_put_MaintainConnection(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,boolean value) {
+    return This->lpVtbl->put_MaintainConnection(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_MaintainConnection(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,boolean *value) {
+    return This->lpVtbl->get_MaintainConnection(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_MaxPduSize(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,UINT16 *value) {
+    return This->lpVtbl->get_MaxPduSize(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_SessionStatus(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus *value) {
+    return This->lpVtbl->get_SessionStatus(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_add_MaxPduSizeChanged(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_MaxPduSizeChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_remove_MaxPduSizeChanged(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_MaxPduSizeChanged(This,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_add_SessionStatusChanged(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_SessionStatusChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_remove_SessionStatusChanged(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_SessionStatusChanged(This,token);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattSession IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession
+#define IGattSessionVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionVtbl
+#define IGattSession __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession
+#define IGattSession_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_QueryInterface
+#define IGattSession_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_AddRef
+#define IGattSession_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_Release
+#define IGattSession_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_GetIids
+#define IGattSession_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_GetRuntimeClassName
+#define IGattSession_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_GetTrustLevel
+#define IGattSession_get_DeviceId __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_DeviceId
+#define IGattSession_get_CanMaintainConnection __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_CanMaintainConnection
+#define IGattSession_put_MaintainConnection __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_put_MaintainConnection
+#define IGattSession_get_MaintainConnection __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_MaintainConnection
+#define IGattSession_get_MaxPduSize __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_MaxPduSize
+#define IGattSession_get_SessionStatus __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_get_SessionStatus
+#define IGattSession_add_MaxPduSizeChanged __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_add_MaxPduSizeChanged
+#define IGattSession_remove_MaxPduSizeChanged __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_remove_MaxPduSizeChanged
+#define IGattSession_add_SessionStatusChanged __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_add_SessionStatusChanged
+#define IGattSession_remove_SessionStatusChanged __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_remove_SessionStatusChanged
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IGattSessionStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics, 0x2e65b95c, 0x539f, 0x4db7, 0x82,0xa8, 0x73,0xbd,0xbb,0xf7,0x3e,0xbf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("2e65b95c-539f-4db7-82a8-73bdbbf73ebf")
+                    IGattSessionStatics : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE FromDeviceIdAsync(
+                            ABI::Windows::Devices::Bluetooth::IBluetoothDeviceId *id,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > **async) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics, 0x2e65b95c, 0x539f, 0x4db7, 0x82,0xa8, 0x73,0xbd,0xbb,0xf7,0x3e,0xbf)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattSessionStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *FromDeviceIdAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession **async);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStaticsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattSessionStatics methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_FromDeviceIdAsync(This,id,async) (This)->lpVtbl->FromDeviceIdAsync(This,id,async)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattSessionStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_FromDeviceIdAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *id,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession **async) {
+    return This->lpVtbl->FromDeviceIdAsync(This,id,async);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattSessionStatics IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics
+#define IGattSessionStaticsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStaticsVtbl
+#define IGattSessionStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics
+#define IGattSessionStatics_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_QueryInterface
+#define IGattSessionStatics_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_AddRef
+#define IGattSessionStatics_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_Release
+#define IGattSessionStatics_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_GetIids
+#define IGattSessionStatics_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_GetRuntimeClassName
+#define IGattSessionStatics_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_GetTrustLevel
+#define IGattSessionStatics_FromDeviceIdAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_FromDeviceIdAsync
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSession_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSession_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSession[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','S','e','s','s','i','o','n',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSession[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSession[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','S','e','s','s','i','o','n',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSession_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IGattSessionStatusChangedEventArgs interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs, 0x7605b72e, 0x837f, 0x404c, 0xab,0x34, 0x31,0x63,0xf3,0x9d,0xdf,0x32);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("7605b72e-837f-404c-ab34-3163f39ddf32")
+                    IGattSessionStatusChangedEventArgs : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Error(
+                            ABI::Windows::Devices::Bluetooth::BluetoothError *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Status(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatus *value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs, 0x7605b72e, 0x837f, 0x404c, 0xab,0x34, 0x31,0x63,0xf3,0x9d,0xdf,0x32)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattSessionStatusChangedEventArgs methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Error)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattSessionStatusChangedEventArgs methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_get_Error(This,value) (This)->lpVtbl->get_Error(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_get_Status(This,value) (This)->lpVtbl->get_Status(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattSessionStatusChangedEventArgs methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_get_Error(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError *value) {
+    return This->lpVtbl->get_Error(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_get_Status(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattSessionStatus *value) {
+    return This->lpVtbl->get_Status(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattSessionStatusChangedEventArgs IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs
+#define IGattSessionStatusChangedEventArgsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgsVtbl
+#define IGattSessionStatusChangedEventArgs __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs
+#define IGattSessionStatusChangedEventArgs_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_QueryInterface
+#define IGattSessionStatusChangedEventArgs_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_AddRef
+#define IGattSessionStatusChangedEventArgs_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_Release
+#define IGattSessionStatusChangedEventArgs_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_GetIids
+#define IGattSessionStatusChangedEventArgs_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_GetRuntimeClassName
+#define IGattSessionStatusChangedEventArgs_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_GetTrustLevel
+#define IGattSessionStatusChangedEventArgs_get_Error __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_get_Error
+#define IGattSessionStatusChangedEventArgs_get_Status __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_get_Status
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatusChangedEventArgs
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSessionStatusChangedEventArgs_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSessionStatusChangedEventArgs_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSessionStatusChangedEventArgs[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','S','e','s','s','i','o','n','S','t','a','t','u','s','C','h','a','n','g','e','d','E','v','e','n','t','A','r','g','s',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSessionStatusChangedEventArgs[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatusChangedEventArgs";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSessionStatusChangedEventArgs[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','S','e','s','s','i','o','n','S','t','a','t','u','s','C','h','a','n','g','e','d','E','v','e','n','t','A','r','g','s',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattSessionStatusChangedEventArgs_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IGattCharacteristic interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic, 0x59cb50c1, 0x5934, 0x4f68, 0xa1,0x98, 0xeb,0x86,0x4f,0xa4,0x4e,0x6b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("59cb50c1-5934-4f68-a198-eb864fa44e6b")
+                    IGattCharacteristic : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE GetDescriptors(
+                            GUID uuid,
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_CharacteristicProperties(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicProperties *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ProtectionLevel(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattProtectionLevel *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE put_ProtectionLevel(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattProtectionLevel value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_UserDescription(
+                            HSTRING *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Uuid(
+                            GUID *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_AttributeHandle(
+                            UINT16 *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_PresentationFormats(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE ReadValueAsync(
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE ReadValueWithCacheModeAsync(
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE WriteValueAsync(
+                            ABI::Windows::Storage::Streams::IBuffer *value,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE WriteValueWithOptionAsync(
+                            ABI::Windows::Storage::Streams::IBuffer *value,
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteOption opt,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE ReadClientCharacteristicConfigurationDescriptorAsync(
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE WriteClientCharacteristicConfigurationDescriptorAsync(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattClientCharacteristicConfigurationDescriptorValue value,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE add_ValueChanged(
+                            ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattValueChangedEventArgs* > *handler,
+                            EventRegistrationToken *token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE remove_ValueChanged(
+                            EventRegistrationToken token) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic, 0x59cb50c1, 0x5934, 0x4f68, 0xa1,0x98, 0xeb,0x86,0x4f,0xa4,0x4e,0x6b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattCharacteristic methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDescriptors)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        GUID uuid,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_CharacteristicProperties)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicProperties *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ProtectionLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_ProtectionLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel value);
+
+    HRESULT (STDMETHODCALLTYPE *get_UserDescription)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Uuid)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        GUID *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_AttributeHandle)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        UINT16 *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_PresentationFormats)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat **value);
+
+    HRESULT (STDMETHODCALLTYPE *ReadValueAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **value);
+
+    HRESULT (STDMETHODCALLTYPE *ReadValueWithCacheModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **value);
+
+    HRESULT (STDMETHODCALLTYPE *WriteValueAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,
+        __FIAsyncOperation_1_GattCommunicationStatus **async);
+
+    HRESULT (STDMETHODCALLTYPE *WriteValueWithOptionAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption opt,
+        __FIAsyncOperation_1_GattCommunicationStatus **async);
+
+    HRESULT (STDMETHODCALLTYPE *ReadClientCharacteristicConfigurationDescriptorAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *WriteClientCharacteristicConfigurationDescriptorAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue value,
+        __FIAsyncOperation_1_GattCommunicationStatus **async);
+
+    HRESULT (STDMETHODCALLTYPE *add_ValueChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_ValueChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *This,
+        EventRegistrationToken token);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattCharacteristic methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetDescriptors(This,uuid,value) (This)->lpVtbl->GetDescriptors(This,uuid,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_CharacteristicProperties(This,value) (This)->lpVtbl->get_CharacteristicProperties(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_ProtectionLevel(This,value) (This)->lpVtbl->get_ProtectionLevel(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_put_ProtectionLevel(This,value) (This)->lpVtbl->put_ProtectionLevel(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_UserDescription(This,value) (This)->lpVtbl->get_UserDescription(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_Uuid(This,value) (This)->lpVtbl->get_Uuid(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_AttributeHandle(This,value) (This)->lpVtbl->get_AttributeHandle(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_PresentationFormats(This,value) (This)->lpVtbl->get_PresentationFormats(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_ReadValueAsync(This,value) (This)->lpVtbl->ReadValueAsync(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_ReadValueWithCacheModeAsync(This,mode,value) (This)->lpVtbl->ReadValueWithCacheModeAsync(This,mode,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_WriteValueAsync(This,value,async) (This)->lpVtbl->WriteValueAsync(This,value,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_WriteValueWithOptionAsync(This,value,opt,async) (This)->lpVtbl->WriteValueWithOptionAsync(This,value,opt,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_ReadClientCharacteristicConfigurationDescriptorAsync(This,async) (This)->lpVtbl->ReadClientCharacteristicConfigurationDescriptorAsync(This,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_WriteClientCharacteristicConfigurationDescriptorAsync(This,value,async) (This)->lpVtbl->WriteClientCharacteristicConfigurationDescriptorAsync(This,value,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_add_ValueChanged(This,handler,token) (This)->lpVtbl->add_ValueChanged(This,handler,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_remove_ValueChanged(This,token) (This)->lpVtbl->remove_ValueChanged(This,token)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattCharacteristic methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetDescriptors(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,GUID uuid,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor **value) {
+    return This->lpVtbl->GetDescriptors(This,uuid,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_CharacteristicProperties(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCharacteristicProperties *value) {
+    return This->lpVtbl->get_CharacteristicProperties(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_ProtectionLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel *value) {
+    return This->lpVtbl->get_ProtectionLevel(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_put_ProtectionLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel value) {
+    return This->lpVtbl->put_ProtectionLevel(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_UserDescription(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,HSTRING *value) {
+    return This->lpVtbl->get_UserDescription(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_Uuid(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,GUID *value) {
+    return This->lpVtbl->get_Uuid(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_AttributeHandle(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,UINT16 *value) {
+    return This->lpVtbl->get_AttributeHandle(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_PresentationFormats(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat **value) {
+    return This->lpVtbl->get_PresentationFormats(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_ReadValueAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **value) {
+    return This->lpVtbl->ReadValueAsync(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_ReadValueWithCacheModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **value) {
+    return This->lpVtbl->ReadValueWithCacheModeAsync(This,mode,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_WriteValueAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,__FIAsyncOperation_1_GattCommunicationStatus **async) {
+    return This->lpVtbl->WriteValueAsync(This,value,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_WriteValueWithOptionAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption opt,__FIAsyncOperation_1_GattCommunicationStatus **async) {
+    return This->lpVtbl->WriteValueWithOptionAsync(This,value,opt,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_ReadClientCharacteristicConfigurationDescriptorAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult **async) {
+    return This->lpVtbl->ReadClientCharacteristicConfigurationDescriptorAsync(This,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_WriteClientCharacteristicConfigurationDescriptorAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue value,__FIAsyncOperation_1_GattCommunicationStatus **async) {
+    return This->lpVtbl->WriteClientCharacteristicConfigurationDescriptorAsync(This,value,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_add_ValueChanged(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_ValueChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_remove_ValueChanged(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_ValueChanged(This,token);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattCharacteristic IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic
+#define IGattCharacteristicVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicVtbl
+#define IGattCharacteristic __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic
+#define IGattCharacteristic_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_QueryInterface
+#define IGattCharacteristic_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_AddRef
+#define IGattCharacteristic_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_Release
+#define IGattCharacteristic_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetIids
+#define IGattCharacteristic_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetRuntimeClassName
+#define IGattCharacteristic_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetTrustLevel
+#define IGattCharacteristic_GetDescriptors __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_GetDescriptors
+#define IGattCharacteristic_get_CharacteristicProperties __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_CharacteristicProperties
+#define IGattCharacteristic_get_ProtectionLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_ProtectionLevel
+#define IGattCharacteristic_put_ProtectionLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_put_ProtectionLevel
+#define IGattCharacteristic_get_UserDescription __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_UserDescription
+#define IGattCharacteristic_get_Uuid __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_Uuid
+#define IGattCharacteristic_get_AttributeHandle __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_AttributeHandle
+#define IGattCharacteristic_get_PresentationFormats __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_get_PresentationFormats
+#define IGattCharacteristic_ReadValueAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_ReadValueAsync
+#define IGattCharacteristic_ReadValueWithCacheModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_ReadValueWithCacheModeAsync
+#define IGattCharacteristic_WriteValueAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_WriteValueAsync
+#define IGattCharacteristic_WriteValueWithOptionAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_WriteValueWithOptionAsync
+#define IGattCharacteristic_ReadClientCharacteristicConfigurationDescriptorAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_ReadClientCharacteristicConfigurationDescriptorAsync
+#define IGattCharacteristic_WriteClientCharacteristicConfigurationDescriptorAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_WriteClientCharacteristicConfigurationDescriptorAsync
+#define IGattCharacteristic_add_ValueChanged __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_add_ValueChanged
+#define IGattCharacteristic_remove_ValueChanged __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_remove_ValueChanged
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattCharacteristic2 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2, 0xae1ab578, 0xec06, 0x4764, 0xb7,0x80, 0x98,0x35,0xa1,0xd3,0x5d,0x6e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("ae1ab578-ec06-4764-b780-9835a1d35d6e")
+                    IGattCharacteristic2 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Service(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetAllDescriptors(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > **descriptors) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2, 0xae1ab578, 0xec06, 0x4764, 0xb7,0x80, 0x98,0x35,0xa1,0xd3,0x5d,0x6e)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattCharacteristic2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Service)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **value);
+
+    HRESULT (STDMETHODCALLTYPE *GetAllDescriptors)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor **descriptors);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2Vtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2 {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattCharacteristic2 methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_get_Service(This,value) (This)->lpVtbl->get_Service(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetAllDescriptors(This,descriptors) (This)->lpVtbl->GetAllDescriptors(This,descriptors)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattCharacteristic2 methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_get_Service(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **value) {
+    return This->lpVtbl->get_Service(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetAllDescriptors(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor **descriptors) {
+    return This->lpVtbl->GetAllDescriptors(This,descriptors);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattCharacteristic2 IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2
+#define IGattCharacteristic2Vtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2Vtbl
+#define IGattCharacteristic2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2
+#define IGattCharacteristic2_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_QueryInterface
+#define IGattCharacteristic2_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_AddRef
+#define IGattCharacteristic2_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_Release
+#define IGattCharacteristic2_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetIids
+#define IGattCharacteristic2_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetRuntimeClassName
+#define IGattCharacteristic2_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetTrustLevel
+#define IGattCharacteristic2_get_Service __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_get_Service
+#define IGattCharacteristic2_GetAllDescriptors __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_GetAllDescriptors
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic2_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattCharacteristic3 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3, 0x3f3c663e, 0x93d4, 0x406b, 0xb8,0x17, 0xdb,0x81,0xf8,0xed,0x53,0xb3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("3f3c663e-93d4-406b-b817-db81f8ed53b3")
+                    IGattCharacteristic3 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE GetDescriptorsAsync(
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDescriptorsWithCacheModeAsync(
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDescriptorsForUuidAsync(
+                            GUID uuid,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDescriptorsForUuidWithCacheModeAsync(
+                            GUID uuid,
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE WriteValueWithResultAsync(
+                            ABI::Windows::Storage::Streams::IBuffer *value,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE WriteValueWithResultAndOptionAsync(
+                            ABI::Windows::Storage::Streams::IBuffer *value,
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteOption option,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE WriteClientCharacteristicConfigurationDescriptorWithResultAsync(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattClientCharacteristicConfigurationDescriptorValue value,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > **async) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3, 0x3f3c663e, 0x93d4, 0x406b, 0xb8,0x17, 0xdb,0x81,0xf8,0xed,0x53,0xb3)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattCharacteristic3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetDescriptorsAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetDescriptorsWithCacheModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetDescriptorsForUuidAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        GUID uuid,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetDescriptorsForUuidWithCacheModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        GUID uuid,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *WriteValueWithResultAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *WriteValueWithResultAndOptionAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption option,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *WriteClientCharacteristicConfigurationDescriptorWithResultAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue value,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **async);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3Vtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3 {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattCharacteristic3 methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsAsync(This,async) (This)->lpVtbl->GetDescriptorsAsync(This,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsWithCacheModeAsync(This,mode,async) (This)->lpVtbl->GetDescriptorsWithCacheModeAsync(This,mode,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsForUuidAsync(This,uuid,async) (This)->lpVtbl->GetDescriptorsForUuidAsync(This,uuid,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsForUuidWithCacheModeAsync(This,uuid,mode,async) (This)->lpVtbl->GetDescriptorsForUuidWithCacheModeAsync(This,uuid,mode,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_WriteValueWithResultAsync(This,value,async) (This)->lpVtbl->WriteValueWithResultAsync(This,value,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_WriteValueWithResultAndOptionAsync(This,value,option,async) (This)->lpVtbl->WriteValueWithResultAndOptionAsync(This,value,option,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_WriteClientCharacteristicConfigurationDescriptorWithResultAsync(This,value,async) (This)->lpVtbl->WriteClientCharacteristicConfigurationDescriptorWithResultAsync(This,value,async)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattCharacteristic3 methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **async) {
+    return This->lpVtbl->GetDescriptorsAsync(This,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsWithCacheModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **async) {
+    return This->lpVtbl->GetDescriptorsWithCacheModeAsync(This,mode,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsForUuidAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,GUID uuid,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **async) {
+    return This->lpVtbl->GetDescriptorsForUuidAsync(This,uuid,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsForUuidWithCacheModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,GUID uuid,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **async) {
+    return This->lpVtbl->GetDescriptorsForUuidWithCacheModeAsync(This,uuid,mode,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_WriteValueWithResultAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **async) {
+    return This->lpVtbl->WriteValueWithResultAsync(This,value,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_WriteValueWithResultAndOptionAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattWriteOption option,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **async) {
+    return This->lpVtbl->WriteValueWithResultAndOptionAsync(This,value,option,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_WriteClientCharacteristicConfigurationDescriptorWithResultAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue value,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **async) {
+    return This->lpVtbl->WriteClientCharacteristicConfigurationDescriptorWithResultAsync(This,value,async);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattCharacteristic3 IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3
+#define IGattCharacteristic3Vtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3Vtbl
+#define IGattCharacteristic3 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3
+#define IGattCharacteristic3_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_QueryInterface
+#define IGattCharacteristic3_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_AddRef
+#define IGattCharacteristic3_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_Release
+#define IGattCharacteristic3_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetIids
+#define IGattCharacteristic3_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetRuntimeClassName
+#define IGattCharacteristic3_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetTrustLevel
+#define IGattCharacteristic3_GetDescriptorsAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsAsync
+#define IGattCharacteristic3_GetDescriptorsWithCacheModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsWithCacheModeAsync
+#define IGattCharacteristic3_GetDescriptorsForUuidAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsForUuidAsync
+#define IGattCharacteristic3_GetDescriptorsForUuidWithCacheModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_GetDescriptorsForUuidWithCacheModeAsync
+#define IGattCharacteristic3_WriteValueWithResultAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_WriteValueWithResultAsync
+#define IGattCharacteristic3_WriteValueWithResultAndOptionAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_WriteValueWithResultAndOptionAsync
+#define IGattCharacteristic3_WriteClientCharacteristicConfigurationDescriptorWithResultAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_WriteClientCharacteristicConfigurationDescriptorWithResultAsync
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic3_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IGattCharacteristicStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics, 0x59cb50c3, 0x5934, 0x4f68, 0xa1,0x98, 0xeb,0x86,0x4f,0xa4,0x4e,0x6b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("59cb50c3-5934-4f68-a198-eb864fa44e6b")
+                    IGattCharacteristicStatics : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE ConvertShortIdToUuid(
+                            UINT16 id,
+                            GUID *uuid) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics, 0x59cb50c3, 0x5934, 0x4f68, 0xa1,0x98, 0xeb,0x86,0x4f,0xa4,0x4e,0x6b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattCharacteristicStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *ConvertShortIdToUuid)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics *This,
+        UINT16 id,
+        GUID *uuid);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStaticsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattCharacteristicStatics methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_ConvertShortIdToUuid(This,id,uuid) (This)->lpVtbl->ConvertShortIdToUuid(This,id,uuid)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattCharacteristicStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_ConvertShortIdToUuid(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics* This,UINT16 id,GUID *uuid) {
+    return This->lpVtbl->ConvertShortIdToUuid(This,id,uuid);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattCharacteristicStatics IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics
+#define IGattCharacteristicStaticsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStaticsVtbl
+#define IGattCharacteristicStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics
+#define IGattCharacteristicStatics_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_QueryInterface
+#define IGattCharacteristicStatics_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_AddRef
+#define IGattCharacteristicStatics_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_Release
+#define IGattCharacteristicStatics_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_GetIids
+#define IGattCharacteristicStatics_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_GetRuntimeClassName
+#define IGattCharacteristicStatics_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_GetTrustLevel
+#define IGattCharacteristicStatics_ConvertShortIdToUuid __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_ConvertShortIdToUuid
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristic_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristic_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristic[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','C','h','a','r','a','c','t','e','r','i','s','t','i','c',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristic[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristic[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','C','h','a','r','a','c','t','e','r','i','s','t','i','c',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristic_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattCharacteristicsResult interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult, 0x1194945c, 0xb257, 0x4f3e, 0x9d,0xb7, 0xf6,0x8b,0xc9,0xa9,0xae,0xf2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("1194945c-b257-4f3e-9db7-f68bc9a9aef2")
+                    IGattCharacteristicsResult : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Status(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ProtocolError(
+                            ABI::Windows::Foundation::IReference<BYTE > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Characteristics(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > **value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult, 0x1194945c, 0xb257, 0x4f3e, 0x9d,0xb7, 0xf6,0x8b,0xc9,0xa9,0xae,0xf2)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattCharacteristicsResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ProtocolError)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult *This,
+        __FIReference_1_BYTE **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Characteristics)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic **value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResultVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattCharacteristicsResult methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_get_Status(This,value) (This)->lpVtbl->get_Status(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_get_ProtocolError(This,value) (This)->lpVtbl->get_ProtocolError(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_get_Characteristics(This,value) (This)->lpVtbl->get_Characteristics(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattCharacteristicsResult methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_get_Status(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value) {
+    return This->lpVtbl->get_Status(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_get_ProtocolError(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult* This,__FIReference_1_BYTE **value) {
+    return This->lpVtbl->get_ProtocolError(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_get_Characteristics(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic **value) {
+    return This->lpVtbl->get_Characteristics(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattCharacteristicsResult IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult
+#define IGattCharacteristicsResultVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResultVtbl
+#define IGattCharacteristicsResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult
+#define IGattCharacteristicsResult_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_QueryInterface
+#define IGattCharacteristicsResult_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_AddRef
+#define IGattCharacteristicsResult_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_Release
+#define IGattCharacteristicsResult_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_GetIids
+#define IGattCharacteristicsResult_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_GetRuntimeClassName
+#define IGattCharacteristicsResult_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_GetTrustLevel
+#define IGattCharacteristicsResult_get_Status __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_get_Status
+#define IGattCharacteristicsResult_get_ProtocolError __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_get_ProtocolError
+#define IGattCharacteristicsResult_get_Characteristics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_get_Characteristics
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristicsResult_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristicsResult_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristicsResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','C','h','a','r','a','c','t','e','r','i','s','t','i','c','s','R','e','s','u','l','t',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristicsResult[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristicsResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','C','h','a','r','a','c','t','e','r','i','s','t','i','c','s','R','e','s','u','l','t',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattCharacteristicsResult_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IGattDescriptor interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor, 0x92055f2b, 0x8084, 0x4344, 0xb4,0xc2, 0x28,0x4d,0xe1,0x9a,0x85,0x06);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("92055f2b-8084-4344-b4c2-284de19a8506")
+                    IGattDescriptor : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_ProtectionLevel(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattProtectionLevel *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE put_ProtectionLevel(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattProtectionLevel value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Uuid(
+                            GUID *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_AttributeHandle(
+                            UINT16 *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE ReadValueAsync(
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE ReadValueWithCacheModeAsync(
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > **async) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE WriteValueAsync(
+                            ABI::Windows::Storage::Streams::IBuffer *value,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > **async) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor, 0x92055f2b, 0x8084, 0x4344, 0xb4,0xc2, 0x28,0x4d,0xe1,0x9a,0x85,0x06)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDescriptor methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ProtectionLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_ProtectionLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Uuid)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        GUID *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_AttributeHandle)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        UINT16 *value);
+
+    HRESULT (STDMETHODCALLTYPE *ReadValueAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *ReadValueWithCacheModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **async);
+
+    HRESULT (STDMETHODCALLTYPE *WriteValueAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,
+        __FIAsyncOperation_1_GattCommunicationStatus **async);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDescriptor methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_get_ProtectionLevel(This,value) (This)->lpVtbl->get_ProtectionLevel(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_put_ProtectionLevel(This,value) (This)->lpVtbl->put_ProtectionLevel(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_get_Uuid(This,value) (This)->lpVtbl->get_Uuid(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_get_AttributeHandle(This,value) (This)->lpVtbl->get_AttributeHandle(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_ReadValueAsync(This,async) (This)->lpVtbl->ReadValueAsync(This,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_ReadValueWithCacheModeAsync(This,mode,async) (This)->lpVtbl->ReadValueWithCacheModeAsync(This,mode,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_WriteValueAsync(This,value,async) (This)->lpVtbl->WriteValueAsync(This,value,async)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDescriptor methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_get_ProtectionLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel *value) {
+    return This->lpVtbl->get_ProtectionLevel(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_put_ProtectionLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattProtectionLevel value) {
+    return This->lpVtbl->put_ProtectionLevel(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_get_Uuid(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,GUID *value) {
+    return This->lpVtbl->get_Uuid(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_get_AttributeHandle(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,UINT16 *value) {
+    return This->lpVtbl->get_AttributeHandle(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_ReadValueAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **async) {
+    return This->lpVtbl->ReadValueAsync(This,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_ReadValueWithCacheModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode mode,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **async) {
+    return This->lpVtbl->ReadValueWithCacheModeAsync(This,mode,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_WriteValueAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,__FIAsyncOperation_1_GattCommunicationStatus **async) {
+    return This->lpVtbl->WriteValueAsync(This,value,async);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDescriptor IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor
+#define IGattDescriptorVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorVtbl
+#define IGattDescriptor __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor
+#define IGattDescriptor_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_QueryInterface
+#define IGattDescriptor_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_AddRef
+#define IGattDescriptor_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_Release
+#define IGattDescriptor_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_GetIids
+#define IGattDescriptor_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_GetRuntimeClassName
+#define IGattDescriptor_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_GetTrustLevel
+#define IGattDescriptor_get_ProtectionLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_get_ProtectionLevel
+#define IGattDescriptor_put_ProtectionLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_put_ProtectionLevel
+#define IGattDescriptor_get_Uuid __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_get_Uuid
+#define IGattDescriptor_get_AttributeHandle __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_get_AttributeHandle
+#define IGattDescriptor_ReadValueAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_ReadValueAsync
+#define IGattDescriptor_ReadValueWithCacheModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_ReadValueWithCacheModeAsync
+#define IGattDescriptor_WriteValueAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_WriteValueAsync
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattDescriptor2 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2, 0x8f563d39, 0xd630, 0x406c, 0xba,0x11, 0x10,0xcd,0xd1,0x6b,0x0e,0x5e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("8f563d39-d630-406c-ba11-10cdd16b0e5e")
+                    IGattDescriptor2 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE WriteValueWithResultAsync(
+                            ABI::Windows::Storage::Streams::IBuffer *value,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > **async) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2, 0x8f563d39, 0xd630, 0x406c, 0xba,0x11, 0x10,0xcd,0xd1,0x6b,0x0e,0x5e)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDescriptor2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *WriteValueWithResultAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **async);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2Vtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2 {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDescriptor2 methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_WriteValueWithResultAsync(This,value,async) (This)->lpVtbl->WriteValueWithResultAsync(This,value,async)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDescriptor2 methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_WriteValueWithResultAsync(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *value,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **async) {
+    return This->lpVtbl->WriteValueWithResultAsync(This,value,async);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDescriptor2 IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2
+#define IGattDescriptor2Vtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2Vtbl
+#define IGattDescriptor2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2
+#define IGattDescriptor2_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_QueryInterface
+#define IGattDescriptor2_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_AddRef
+#define IGattDescriptor2_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_Release
+#define IGattDescriptor2_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_GetIids
+#define IGattDescriptor2_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_GetRuntimeClassName
+#define IGattDescriptor2_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_GetTrustLevel
+#define IGattDescriptor2_WriteValueWithResultAsync __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_WriteValueWithResultAsync
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor2_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IGattDescriptorStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics, 0x92055f2d, 0x8084, 0x4344, 0xb4,0xc2, 0x28,0x4d,0xe1,0x9a,0x85,0x06);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("92055f2d-8084-4344-b4c2-284de19a8506")
+                    IGattDescriptorStatics : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE ConvertShortIdToUuid(
+                            UINT16 id,
+                            GUID *uuid) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics, 0x92055f2d, 0x8084, 0x4344, 0xb4,0xc2, 0x28,0x4d,0xe1,0x9a,0x85,0x06)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDescriptorStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *ConvertShortIdToUuid)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics *This,
+        UINT16 id,
+        GUID *uuid);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStaticsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDescriptorStatics methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_ConvertShortIdToUuid(This,id,uuid) (This)->lpVtbl->ConvertShortIdToUuid(This,id,uuid)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDescriptorStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_ConvertShortIdToUuid(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics* This,UINT16 id,GUID *uuid) {
+    return This->lpVtbl->ConvertShortIdToUuid(This,id,uuid);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDescriptorStatics IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics
+#define IGattDescriptorStaticsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStaticsVtbl
+#define IGattDescriptorStatics __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics
+#define IGattDescriptorStatics_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_QueryInterface
+#define IGattDescriptorStatics_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_AddRef
+#define IGattDescriptorStatics_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_Release
+#define IGattDescriptorStatics_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_GetIids
+#define IGattDescriptorStatics_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_GetRuntimeClassName
+#define IGattDescriptorStatics_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_GetTrustLevel
+#define IGattDescriptorStatics_ConvertShortIdToUuid __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_ConvertShortIdToUuid
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptor_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptor_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptor[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','D','e','s','c','r','i','p','t','o','r',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptor[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptor[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','D','e','s','c','r','i','p','t','o','r',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptor_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattDescriptorsResult interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult, 0x9bc091f3, 0x95e7, 0x4489, 0x8d,0x25, 0xff,0x81,0x95,0x5a,0x57,0xb9);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("9bc091f3-95e7-4489-8d25-ff81955a57b9")
+                    IGattDescriptorsResult : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Status(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ProtocolError(
+                            ABI::Windows::Foundation::IReference<BYTE > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Descriptors(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > **value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult, 0x9bc091f3, 0x95e7, 0x4489, 0x8d,0x25, 0xff,0x81,0x95,0x5a,0x57,0xb9)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattDescriptorsResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ProtocolError)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult *This,
+        __FIReference_1_BYTE **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Descriptors)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor **value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResultVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattDescriptorsResult methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_get_Status(This,value) (This)->lpVtbl->get_Status(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_get_ProtocolError(This,value) (This)->lpVtbl->get_ProtocolError(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_get_Descriptors(This,value) (This)->lpVtbl->get_Descriptors(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattDescriptorsResult methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_get_Status(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value) {
+    return This->lpVtbl->get_Status(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_get_ProtocolError(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult* This,__FIReference_1_BYTE **value) {
+    return This->lpVtbl->get_ProtocolError(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_get_Descriptors(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor **value) {
+    return This->lpVtbl->get_Descriptors(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattDescriptorsResult IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult
+#define IGattDescriptorsResultVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResultVtbl
+#define IGattDescriptorsResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult
+#define IGattDescriptorsResult_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_QueryInterface
+#define IGattDescriptorsResult_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_AddRef
+#define IGattDescriptorsResult_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_Release
+#define IGattDescriptorsResult_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_GetIids
+#define IGattDescriptorsResult_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_GetRuntimeClassName
+#define IGattDescriptorsResult_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_GetTrustLevel
+#define IGattDescriptorsResult_get_Status __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_get_Status
+#define IGattDescriptorsResult_get_ProtocolError __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_get_ProtocolError
+#define IGattDescriptorsResult_get_Descriptors __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_get_Descriptors
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptorsResult_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptorsResult_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptorsResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','D','e','s','c','r','i','p','t','o','r','s','R','e','s','u','l','t',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptorsResult[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptorsResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','D','e','s','c','r','i','p','t','o','r','s','R','e','s','u','l','t',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattDescriptorsResult_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IGattValueChangedEventArgs interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs, 0xd21bdb54, 0x06e3, 0x4ed8, 0xa2,0x63, 0xac,0xfa,0xc8,0xba,0x73,0x13);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("d21bdb54-06e3-4ed8-a263-acfac8ba7313")
+                    IGattValueChangedEventArgs : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_CharacteristicValue(
+                            ABI::Windows::Storage::Streams::IBuffer **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Timestamp(
+                            ABI::Windows::Foundation::DateTime *value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs, 0xd21bdb54, 0x06e3, 0x4ed8, 0xa2,0x63, 0xac,0xfa,0xc8,0xba,0x73,0x13)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattValueChangedEventArgs methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_CharacteristicValue)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Timestamp)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *This,
+        __x_ABI_CWindows_CFoundation_CDateTime *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattValueChangedEventArgs methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_get_CharacteristicValue(This,value) (This)->lpVtbl->get_CharacteristicValue(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_get_Timestamp(This,value) (This)->lpVtbl->get_Timestamp(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattValueChangedEventArgs methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_get_CharacteristicValue(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **value) {
+    return This->lpVtbl->get_CharacteristicValue(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_get_Timestamp(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs* This,__x_ABI_CWindows_CFoundation_CDateTime *value) {
+    return This->lpVtbl->get_Timestamp(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattValueChangedEventArgs IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs
+#define IGattValueChangedEventArgsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgsVtbl
+#define IGattValueChangedEventArgs __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs
+#define IGattValueChangedEventArgs_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_QueryInterface
+#define IGattValueChangedEventArgs_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_AddRef
+#define IGattValueChangedEventArgs_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_Release
+#define IGattValueChangedEventArgs_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_GetIids
+#define IGattValueChangedEventArgs_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_GetRuntimeClassName
+#define IGattValueChangedEventArgs_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_GetTrustLevel
+#define IGattValueChangedEventArgs_get_CharacteristicValue __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_get_CharacteristicValue
+#define IGattValueChangedEventArgs_get_Timestamp __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_get_Timestamp
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattValueChangedEventArgs_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattValueChangedEventArgs_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattValueChangedEventArgs[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','V','a','l','u','e','C','h','a','n','g','e','d','E','v','e','n','t','A','r','g','s',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattValueChangedEventArgs[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattValueChangedEventArgs[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','V','a','l','u','e','C','h','a','n','g','e','d','E','v','e','n','t','A','r','g','s',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattValueChangedEventArgs_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattReadResult interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult, 0x63a66f08, 0x1aea, 0x4c4c, 0xa5,0x0f, 0x97,0xba,0xe4,0x74,0xb3,0x48);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("63a66f08-1aea-4c4c-a50f-97bae474b348")
+                    IGattReadResult : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Status(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Value(
+                            ABI::Windows::Storage::Streams::IBuffer **value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult, 0x63a66f08, 0x1aea, 0x4c4c, 0xa5,0x0f, 0x97,0xba,0xe4,0x74,0xb3,0x48)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattReadResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Value)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResultVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattReadResult methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_get_Status(This,value) (This)->lpVtbl->get_Status(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_get_Value(This,value) (This)->lpVtbl->get_Value(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattReadResult methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_get_Status(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value) {
+    return This->lpVtbl->get_Status(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_get_Value(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **value) {
+    return This->lpVtbl->get_Value(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattReadResult IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult
+#define IGattReadResultVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResultVtbl
+#define IGattReadResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult
+#define IGattReadResult_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_QueryInterface
+#define IGattReadResult_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_AddRef
+#define IGattReadResult_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_Release
+#define IGattReadResult_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_GetIids
+#define IGattReadResult_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_GetRuntimeClassName
+#define IGattReadResult_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_GetTrustLevel
+#define IGattReadResult_get_Status __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_get_Status
+#define IGattReadResult_get_Value __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_get_Value
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadResult_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadResult_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','R','e','a','d','R','e','s','u','l','t',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadResult[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','R','e','a','d','R','e','s','u','l','t',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadResult_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattWriteResult interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult, 0x4991ddb1, 0xcb2b, 0x44f7, 0x99,0xfc, 0xd2,0x9a,0x28,0x71,0xdc,0x9b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("4991ddb1-cb2b-44f7-99fc-d29a2871dc9b")
+                    IGattWriteResult : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Status(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ProtocolError(
+                            ABI::Windows::Foundation::IReference<BYTE > **value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult, 0x4991ddb1, 0xcb2b, 0x44f7, 0x99,0xfc, 0xd2,0x9a,0x28,0x71,0xdc,0x9b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattWriteResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ProtocolError)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult *This,
+        __FIReference_1_BYTE **value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResultVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattWriteResult methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_get_Status(This,value) (This)->lpVtbl->get_Status(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_get_ProtocolError(This,value) (This)->lpVtbl->get_ProtocolError(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattWriteResult methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_get_Status(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value) {
+    return This->lpVtbl->get_Status(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_get_ProtocolError(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult* This,__FIReference_1_BYTE **value) {
+    return This->lpVtbl->get_ProtocolError(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattWriteResult IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult
+#define IGattWriteResultVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResultVtbl
+#define IGattWriteResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult
+#define IGattWriteResult_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_QueryInterface
+#define IGattWriteResult_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_AddRef
+#define IGattWriteResult_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_Release
+#define IGattWriteResult_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_GetIids
+#define IGattWriteResult_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_GetRuntimeClassName
+#define IGattWriteResult_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_GetTrustLevel
+#define IGattWriteResult_get_Status __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_get_Status
+#define IGattWriteResult_get_ProtocolError __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_get_ProtocolError
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattWriteResult_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattWriteResult_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattWriteResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','W','r','i','t','e','R','e','s','u','l','t',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattWriteResult[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattWriteResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','W','r','i','t','e','R','e','s','u','l','t',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattWriteResult_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattReadClientCharacteristicConfigurationDescriptorResult interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult, 0x63a66f09, 0x1aea, 0x4c4c, 0xa5,0x0f, 0x97,0xba,0xe4,0x74,0xb3,0x48);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("63a66f09-1aea-4c4c-a50f-97bae474b348")
+                    IGattReadClientCharacteristicConfigurationDescriptorResult : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Status(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ClientCharacteristicConfigurationDescriptor(
+                            ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattClientCharacteristicConfigurationDescriptorValue *value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult, 0x63a66f09, 0x1aea, 0x4c4c, 0xa5,0x0f, 0x97,0xba,0xe4,0x74,0xb3,0x48)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattReadClientCharacteristicConfigurationDescriptorResult methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ClientCharacteristicConfigurationDescriptor)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResultVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattReadClientCharacteristicConfigurationDescriptorResult methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_get_Status(This,value) (This)->lpVtbl->get_Status(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_get_ClientCharacteristicConfigurationDescriptor(This,value) (This)->lpVtbl->get_ClientCharacteristicConfigurationDescriptor(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattReadClientCharacteristicConfigurationDescriptorResult methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_get_Status(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *value) {
+    return This->lpVtbl->get_Status(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_get_ClientCharacteristicConfigurationDescriptor(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattClientCharacteristicConfigurationDescriptorValue *value) {
+    return This->lpVtbl->get_ClientCharacteristicConfigurationDescriptor(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattReadClientCharacteristicConfigurationDescriptorResult IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult
+#define IGattReadClientCharacteristicConfigurationDescriptorResultVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResultVtbl
+#define IGattReadClientCharacteristicConfigurationDescriptorResult __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult
+#define IGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface
+#define IGattReadClientCharacteristicConfigurationDescriptorResult_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_AddRef
+#define IGattReadClientCharacteristicConfigurationDescriptorResult_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_Release
+#define IGattReadClientCharacteristicConfigurationDescriptorResult_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_GetIids
+#define IGattReadClientCharacteristicConfigurationDescriptorResult_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_GetRuntimeClassName
+#define IGattReadClientCharacteristicConfigurationDescriptorResult_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_GetTrustLevel
+#define IGattReadClientCharacteristicConfigurationDescriptorResult_get_Status __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_get_Status
+#define IGattReadClientCharacteristicConfigurationDescriptorResult_get_ClientCharacteristicConfigurationDescriptor __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_get_ClientCharacteristicConfigurationDescriptor
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattReadClientCharacteristicConfigurationDescriptorResult2 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2, 0x1bf1a59d, 0xba4d, 0x4622, 0x86,0x51, 0xf4,0xee,0x15,0x0d,0x0a,0x5d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("1bf1a59d-ba4d-4622-8651-f4ee150d0a5d")
+                    IGattReadClientCharacteristicConfigurationDescriptorResult2 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_ProtocolError(
+                            ABI::Windows::Foundation::IReference<BYTE > **value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2, 0x1bf1a59d, 0xba4d, 0x4622, 0x86,0x51, 0xf4,0xee,0x15,0x0d,0x0a,0x5d)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattReadClientCharacteristicConfigurationDescriptorResult2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ProtocolError)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 *This,
+        __FIReference_1_BYTE **value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2Vtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2 {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattReadClientCharacteristicConfigurationDescriptorResult2 methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_get_ProtocolError(This,value) (This)->lpVtbl->get_ProtocolError(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattReadClientCharacteristicConfigurationDescriptorResult2 methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_get_ProtocolError(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2* This,__FIReference_1_BYTE **value) {
+    return This->lpVtbl->get_ProtocolError(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattReadClientCharacteristicConfigurationDescriptorResult2 IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2
+#define IGattReadClientCharacteristicConfigurationDescriptorResult2Vtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2Vtbl
+#define IGattReadClientCharacteristicConfigurationDescriptorResult2 __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2
+#define IGattReadClientCharacteristicConfigurationDescriptorResult2_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_QueryInterface
+#define IGattReadClientCharacteristicConfigurationDescriptorResult2_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_AddRef
+#define IGattReadClientCharacteristicConfigurationDescriptorResult2_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_Release
+#define IGattReadClientCharacteristicConfigurationDescriptorResult2_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_GetIids
+#define IGattReadClientCharacteristicConfigurationDescriptorResult2_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_GetRuntimeClassName
+#define IGattReadClientCharacteristicConfigurationDescriptorResult2_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_GetTrustLevel
+#define IGattReadClientCharacteristicConfigurationDescriptorResult2_get_ProtocolError __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_get_ProtocolError
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult2_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadClientCharacteristicConfigurationDescriptorResult_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadClientCharacteristicConfigurationDescriptorResult_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadClientCharacteristicConfigurationDescriptorResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','R','e','a','d','C','l','i','e','n','t','C','h','a','r','a','c','t','e','r','i','s','t','i','c','C','o','n','f','i','g','u','r','a','t','i','o','n','D','e','s','c','r','i','p','t','o','r','R','e','s','u','l','t',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadClientCharacteristicConfigurationDescriptorResult[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadClientCharacteristicConfigurationDescriptorResult[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','R','e','a','d','C','l','i','e','n','t','C','h','a','r','a','c','t','e','r','i','s','t','i','c','C','o','n','f','i','g','u','r','a','t','i','o','n','D','e','s','c','r','i','p','t','o','r','R','e','s','u','l','t',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattReadClientCharacteristicConfigurationDescriptorResult_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IGattPresentationFormat interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat, 0x196d0021, 0xfaad, 0x45dc, 0xae,0x5b, 0x2a,0xc3,0x18,0x4e,0x84,0xdb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace GenericAttributeProfile {
+                    MIDL_INTERFACE("196d0021-faad-45dc-ae5b-2ac3184e84db")
+                    IGattPresentationFormat : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_FormatType(
+                            BYTE *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Exponent(
+                            INT32 *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Unit(
+                            UINT16 *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Namespace(
+                            BYTE *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Description(
+                            UINT16 *value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat, 0x196d0021, 0xfaad, 0x45dc, 0xae,0x5b, 0x2a,0xc3,0x18,0x4e,0x84,0xdb)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This,
+        TrustLevel *trustLevel);
+
+    /*** IGattPresentationFormat methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_FormatType)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This,
+        BYTE *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Exponent)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This,
+        INT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Unit)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This,
+        UINT16 *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Namespace)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This,
+        BYTE *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Description)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *This,
+        UINT16 *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGattPresentationFormat methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_FormatType(This,value) (This)->lpVtbl->get_FormatType(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Exponent(This,value) (This)->lpVtbl->get_Exponent(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Unit(This,value) (This)->lpVtbl->get_Unit(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Namespace(This,value) (This)->lpVtbl->get_Namespace(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Description(This,value) (This)->lpVtbl->get_Description(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_Release(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGattPresentationFormat methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_FormatType(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This,BYTE *value) {
+    return This->lpVtbl->get_FormatType(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Exponent(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This,INT32 *value) {
+    return This->lpVtbl->get_Exponent(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Unit(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This,UINT16 *value) {
+    return This->lpVtbl->get_Unit(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Namespace(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This,BYTE *value) {
+    return This->lpVtbl->get_Namespace(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Description(__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat* This,UINT16 *value) {
+    return This->lpVtbl->get_Description(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile
+#define IID_IGattPresentationFormat IID___x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat
+#define IGattPresentationFormatVtbl __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormatVtbl
+#define IGattPresentationFormat __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat
+#define IGattPresentationFormat_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_QueryInterface
+#define IGattPresentationFormat_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_AddRef
+#define IGattPresentationFormat_Release __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_Release
+#define IGattPresentationFormat_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_GetIids
+#define IGattPresentationFormat_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_GetRuntimeClassName
+#define IGattPresentationFormat_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_GetTrustLevel
+#define IGattPresentationFormat_get_FormatType __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_FormatType
+#define IGattPresentationFormat_get_Exponent __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Exponent
+#define IGattPresentationFormat_get_Unit __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Unit
+#define IGattPresentationFormat_get_Namespace __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Namespace
+#define IGattPresentationFormat_get_Description __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_get_Description
+#endif /* WIDL_using_Windows_Devices_Bluetooth_GenericAttributeProfile */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattPresentationFormat_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattPresentationFormat_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattPresentationFormat[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','P','r','e','s','e','n','t','a','t','i','o','n','F','o','r','m','a','t',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattPresentationFormat[] = L"Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_GenericAttributeProfile_GattPresentationFormat[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','G','e','n','e','r','i','c','A','t','t','r','i','b','u','t','e','P','r','o','f','i','l','e','.','G','a','t','t','P','r','e','s','e','n','t','a','t','i','o','n','F','o','r','m','a','t',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_GenericAttributeProfile_GattPresentationFormat_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > interface
+ */
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_INTERFACE_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic, 0x1ffc4777, 0x4346, 0x5564, 0xb7,0xa5, 0x59,0xea,0xe3,0x85,0xf4,0xf6);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("1ffc4777-4346-5564-b7a5-59eae385f4f6")
+                IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic, 0x1ffc4777, 0x4346, 0x5564, 0xb7,0xa5, 0x59,0xea,0xe3,0x85,0xf4,0xf6)
+#endif
+#else
+typedef struct __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Current)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *MoveNext)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl;
+
+interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic {
+    CONST_VTBL __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_get_Current(This,value) (This)->lpVtbl->get_Current(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_get_HasCurrent(This,value) (This)->lpVtbl->get_HasCurrent(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_MoveNext(This,value) (This)->lpVtbl->MoveNext(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetMany(This,items_size,items,value) (This)->lpVtbl->GetMany(This,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_QueryInterface(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_AddRef(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Release(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetIids(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetRuntimeClassName(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetTrustLevel(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_get_Current(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic **value) {
+    return This->lpVtbl->get_Current(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_get_HasCurrent(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,boolean *value) {
+    return This->lpVtbl->get_HasCurrent(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_MoveNext(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,boolean *value) {
+    return This->lpVtbl->MoveNext(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetMany(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterator_GattCharacteristic IID___FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic
+#define IIterator_GattCharacteristicVtbl __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl
+#define IIterator_GattCharacteristic __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic
+#define IIterator_GattCharacteristic_QueryInterface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_QueryInterface
+#define IIterator_GattCharacteristic_AddRef __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_AddRef
+#define IIterator_GattCharacteristic_Release __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Release
+#define IIterator_GattCharacteristic_GetIids __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetIids
+#define IIterator_GattCharacteristic_GetRuntimeClassName __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetRuntimeClassName
+#define IIterator_GattCharacteristic_GetTrustLevel __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetTrustLevel
+#define IIterator_GattCharacteristic_get_Current __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_get_Current
+#define IIterator_GattCharacteristic_get_HasCurrent __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_get_HasCurrent
+#define IIterator_GattCharacteristic_MoveNext __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_MoveNext
+#define IIterator_GattCharacteristic_GetMany __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > interface
+ */
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_INTERFACE_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic, 0xe3c56728, 0x7f2d, 0x5a0d, 0xad,0x38, 0x03,0x0d,0x39,0xc6,0x0f,0x9f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("e3c56728-7f2d-5a0d-ad38-030d39c60f9f")
+                IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic, 0xe3c56728, 0x7f2d, 0x5a0d, 0xad,0x38, 0x03,0x0d,0x39,0xc6,0x0f,0x9f)
+#endif
+#else
+typedef struct __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *First)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic **value);
+
+    END_INTERFACE
+} __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl;
+
+interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic {
+    CONST_VTBL __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_First(This,value) (This)->lpVtbl->First(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_QueryInterface(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_AddRef(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Release(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetIids(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetRuntimeClassName(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetTrustLevel(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_First(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic **value) {
+    return This->lpVtbl->First(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterable_GattCharacteristic IID___FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic
+#define IIterable_GattCharacteristicVtbl __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl
+#define IIterable_GattCharacteristic __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic
+#define IIterable_GattCharacteristic_QueryInterface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_QueryInterface
+#define IIterable_GattCharacteristic_AddRef __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_AddRef
+#define IIterable_GattCharacteristic_Release __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Release
+#define IIterable_GattCharacteristic_GetIids __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetIids
+#define IIterable_GattCharacteristic_GetRuntimeClassName __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetRuntimeClassName
+#define IIterable_GattCharacteristic_GetTrustLevel __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetTrustLevel
+#define IIterable_GattCharacteristic_First __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_First
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic, 0xcb3ab3ae, 0xb561, 0x504f, 0xa8,0x08, 0x59,0x9d,0xec,0xeb,0x2d,0xf4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("cb3ab3ae-b561-504f-a808-599deceb2df4")
+                IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic, 0xcb3ab3ae, 0xb561, 0x504f, 0xa8,0x08, 0x59,0x9d,0xec,0xeb,0x2d,0xf4)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        TrustLevel *trustLevel);
+
+    /*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        UINT32 index,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl;
+
+interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic {
+    CONST_VTBL __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_QueryInterface(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_AddRef(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Release(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetIids(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetRuntimeClassName(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetTrustLevel(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic* > methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetAt(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,UINT32 index,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic **value) {
+    return This->lpVtbl->GetAt(This,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_get_Size(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_IndexOf(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetMany(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_GattCharacteristic IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic
+#define IVectorView_GattCharacteristicVtbl __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicVtbl
+#define IVectorView_GattCharacteristic __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic
+#define IVectorView_GattCharacteristic_QueryInterface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_QueryInterface
+#define IVectorView_GattCharacteristic_AddRef __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_AddRef
+#define IVectorView_GattCharacteristic_Release __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Release
+#define IVectorView_GattCharacteristic_GetIids __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetIids
+#define IVectorView_GattCharacteristic_GetRuntimeClassName __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetRuntimeClassName
+#define IVectorView_GattCharacteristic_GetTrustLevel __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetTrustLevel
+#define IVectorView_GattCharacteristic_GetAt __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetAt
+#define IVectorView_GattCharacteristic_get_Size __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_get_Size
+#define IVectorView_GattCharacteristic_IndexOf __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_IndexOf
+#define IVectorView_GattCharacteristic_GetMany __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > interface
+ */
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_INTERFACE_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor, 0x3d8df436, 0xcefb, 0x5ffb, 0x85,0x8c, 0x48,0x82,0xce,0x1d,0xa0,0x79);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("3d8df436-cefb-5ffb-858c-4882ce1da079")
+                IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptor* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor, 0x3d8df436, 0xcefb, 0x5ffb, 0x85,0x8c, 0x48,0x82,0xce,0x1d,0xa0,0x79)
+#endif
+#else
+typedef struct __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Current)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *MoveNext)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl;
+
+interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor {
+    CONST_VTBL __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_get_Current(This,value) (This)->lpVtbl->get_Current(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_get_HasCurrent(This,value) (This)->lpVtbl->get_HasCurrent(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_MoveNext(This,value) (This)->lpVtbl->MoveNext(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetMany(This,items_size,items,value) (This)->lpVtbl->GetMany(This,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_QueryInterface(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_AddRef(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_Release(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetIids(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetRuntimeClassName(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetTrustLevel(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_get_Current(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor **value) {
+    return This->lpVtbl->get_Current(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_get_HasCurrent(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,boolean *value) {
+    return This->lpVtbl->get_HasCurrent(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_MoveNext(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,boolean *value) {
+    return This->lpVtbl->MoveNext(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetMany(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterator_GattDescriptor IID___FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor
+#define IIterator_GattDescriptorVtbl __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl
+#define IIterator_GattDescriptor __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor
+#define IIterator_GattDescriptor_QueryInterface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_QueryInterface
+#define IIterator_GattDescriptor_AddRef __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_AddRef
+#define IIterator_GattDescriptor_Release __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_Release
+#define IIterator_GattDescriptor_GetIids __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetIids
+#define IIterator_GattDescriptor_GetRuntimeClassName __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetRuntimeClassName
+#define IIterator_GattDescriptor_GetTrustLevel __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetTrustLevel
+#define IIterator_GattDescriptor_get_Current __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_get_Current
+#define IIterator_GattDescriptor_get_HasCurrent __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_get_HasCurrent
+#define IIterator_GattDescriptor_MoveNext __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_MoveNext
+#define IIterator_GattDescriptor_GetMany __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > interface
+ */
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_INTERFACE_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor, 0x30e2ffc4, 0x3aa3, 0x5219, 0x9a,0x18, 0xca,0x2d,0x0b,0x65,0x62,0xe8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("30e2ffc4-3aa3-5219-9a18-ca2d0b6562e8")
+                IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptor* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor, 0x30e2ffc4, 0x3aa3, 0x5219, 0x9a,0x18, 0xca,0x2d,0x0b,0x65,0x62,0xe8)
+#endif
+#else
+typedef struct __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *First)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor **value);
+
+    END_INTERFACE
+} __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl;
+
+interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor {
+    CONST_VTBL __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_First(This,value) (This)->lpVtbl->First(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_QueryInterface(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_AddRef(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_Release(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetIids(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetRuntimeClassName(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetTrustLevel(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_First(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor **value) {
+    return This->lpVtbl->First(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterable_GattDescriptor IID___FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor
+#define IIterable_GattDescriptorVtbl __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl
+#define IIterable_GattDescriptor __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor
+#define IIterable_GattDescriptor_QueryInterface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_QueryInterface
+#define IIterable_GattDescriptor_AddRef __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_AddRef
+#define IIterable_GattDescriptor_Release __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_Release
+#define IIterable_GattDescriptor_GetIids __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetIids
+#define IIterable_GattDescriptor_GetRuntimeClassName __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetRuntimeClassName
+#define IIterable_GattDescriptor_GetTrustLevel __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetTrustLevel
+#define IIterable_GattDescriptor_First __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_First
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor, 0x19605ea8, 0x73d6, 0x5760, 0x84,0x9b, 0xfe,0x5f,0x8a,0x2b,0xd0,0x5c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("19605ea8-73d6-5760-849b-fe5f8a2bd05c")
+                IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptor* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor, 0x19605ea8, 0x73d6, 0x5760, 0x84,0x9b, 0xfe,0x5f,0x8a,0x2b,0xd0,0x5c)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        TrustLevel *trustLevel);
+
+    /*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        UINT32 index,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl;
+
+interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor {
+    CONST_VTBL __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_QueryInterface(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_AddRef(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_Release(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetIids(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetRuntimeClassName(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetTrustLevel(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptor* > methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetAt(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,UINT32 index,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor **value) {
+    return This->lpVtbl->GetAt(This,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_get_Size(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_IndexOf(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor *element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetMany(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptor **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_GattDescriptor IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor
+#define IVectorView_GattDescriptorVtbl __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorVtbl
+#define IVectorView_GattDescriptor __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor
+#define IVectorView_GattDescriptor_QueryInterface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_QueryInterface
+#define IVectorView_GattDescriptor_AddRef __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_AddRef
+#define IVectorView_GattDescriptor_Release __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_Release
+#define IVectorView_GattDescriptor_GetIids __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetIids
+#define IVectorView_GattDescriptor_GetRuntimeClassName __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetRuntimeClassName
+#define IVectorView_GattDescriptor_GetTrustLevel __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetTrustLevel
+#define IVectorView_GattDescriptor_GetAt __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetAt
+#define IVectorView_GattDescriptor_get_Size __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_get_Size
+#define IVectorView_GattDescriptor_IndexOf __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_IndexOf
+#define IVectorView_GattDescriptor_GetMany __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > interface
+ */
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_INTERFACE_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat, 0x20006c53, 0x5dda, 0x5319, 0x91,0xb1, 0xc6,0xf2,0x8f,0xe6,0x59,0x33);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("20006c53-5dda-5319-91b1-c6f28fe65933")
+                IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattPresentationFormat* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat, 0x20006c53, 0x5dda, 0x5319, 0x91,0xb1, 0xc6,0xf2,0x8f,0xe6,0x59,0x33)
+#endif
+#else
+typedef struct __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Current)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *MoveNext)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl;
+
+interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat {
+    CONST_VTBL __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_get_Current(This,value) (This)->lpVtbl->get_Current(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_get_HasCurrent(This,value) (This)->lpVtbl->get_HasCurrent(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_MoveNext(This,value) (This)->lpVtbl->MoveNext(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetMany(This,items_size,items,value) (This)->lpVtbl->GetMany(This,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_QueryInterface(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_AddRef(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_Release(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetIids(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetRuntimeClassName(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetTrustLevel(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_get_Current(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat **value) {
+    return This->lpVtbl->get_Current(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_get_HasCurrent(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,boolean *value) {
+    return This->lpVtbl->get_HasCurrent(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_MoveNext(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,boolean *value) {
+    return This->lpVtbl->MoveNext(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetMany(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterator_GattPresentationFormat IID___FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat
+#define IIterator_GattPresentationFormatVtbl __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl
+#define IIterator_GattPresentationFormat __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat
+#define IIterator_GattPresentationFormat_QueryInterface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_QueryInterface
+#define IIterator_GattPresentationFormat_AddRef __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_AddRef
+#define IIterator_GattPresentationFormat_Release __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_Release
+#define IIterator_GattPresentationFormat_GetIids __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetIids
+#define IIterator_GattPresentationFormat_GetRuntimeClassName __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetRuntimeClassName
+#define IIterator_GattPresentationFormat_GetTrustLevel __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetTrustLevel
+#define IIterator_GattPresentationFormat_get_Current __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_get_Current
+#define IIterator_GattPresentationFormat_get_HasCurrent __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_get_HasCurrent
+#define IIterator_GattPresentationFormat_MoveNext __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_MoveNext
+#define IIterator_GattPresentationFormat_GetMany __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > interface
+ */
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_INTERFACE_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat, 0xd75fcef1, 0xc10e, 0x5b7b, 0xb1,0x30, 0xf5,0xa0,0x03,0x14,0xd3,0x5d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("d75fcef1-c10e-5b7b-b130-f5a00314d35d")
+                IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattPresentationFormat* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat, 0xd75fcef1, 0xc10e, 0x5b7b, 0xb1,0x30, 0xf5,0xa0,0x03,0x14,0xd3,0x5d)
+#endif
+#else
+typedef struct __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *First)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat **value);
+
+    END_INTERFACE
+} __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl;
+
+interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat {
+    CONST_VTBL __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_First(This,value) (This)->lpVtbl->First(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_QueryInterface(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_AddRef(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_Release(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetIids(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetRuntimeClassName(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetTrustLevel(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_First(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat **value) {
+    return This->lpVtbl->First(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterable_GattPresentationFormat IID___FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat
+#define IIterable_GattPresentationFormatVtbl __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl
+#define IIterable_GattPresentationFormat __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat
+#define IIterable_GattPresentationFormat_QueryInterface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_QueryInterface
+#define IIterable_GattPresentationFormat_AddRef __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_AddRef
+#define IIterable_GattPresentationFormat_Release __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_Release
+#define IIterable_GattPresentationFormat_GetIids __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetIids
+#define IIterable_GattPresentationFormat_GetRuntimeClassName __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetRuntimeClassName
+#define IIterable_GattPresentationFormat_GetTrustLevel __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetTrustLevel
+#define IIterable_GattPresentationFormat_First __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_First
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat, 0x0ea2c154, 0x22b8, 0x5c8e, 0x92,0x5d, 0xd4,0x7e,0x1a,0xad,0x31,0xbb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("0ea2c154-22b8-5c8e-925d-d47e1aad31bb")
+                IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattPresentationFormat* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat, 0x0ea2c154, 0x22b8, 0x5c8e, 0x92,0x5d, 0xd4,0x7e,0x1a,0xad,0x31,0xbb)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        TrustLevel *trustLevel);
+
+    /*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        UINT32 index,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl;
+
+interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat {
+    CONST_VTBL __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_QueryInterface(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_AddRef(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_Release(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetIids(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetRuntimeClassName(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetTrustLevel(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattPresentationFormat* > methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetAt(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,UINT32 index,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat **value) {
+    return This->lpVtbl->GetAt(This,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_get_Size(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_IndexOf(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat *element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetMany(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattPresentationFormat **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_GattPresentationFormat IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat
+#define IVectorView_GattPresentationFormatVtbl __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormatVtbl
+#define IVectorView_GattPresentationFormat __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat
+#define IVectorView_GattPresentationFormat_QueryInterface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_QueryInterface
+#define IVectorView_GattPresentationFormat_AddRef __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_AddRef
+#define IVectorView_GattPresentationFormat_Release __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_Release
+#define IVectorView_GattPresentationFormat_GetIids __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetIids
+#define IVectorView_GattPresentationFormat_GetRuntimeClassName __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetRuntimeClassName
+#define IVectorView_GattPresentationFormat_GetTrustLevel __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetTrustLevel
+#define IVectorView_GattPresentationFormat_GetAt __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetAt
+#define IVectorView_GattPresentationFormat_get_Size __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_get_Size
+#define IVectorView_GattPresentationFormat_IndexOf __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_IndexOf
+#define IVectorView_GattPresentationFormat_GetMany __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattPresentationFormat_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > interface
+ */
+#ifndef ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+#define ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x8beb3a26, 0x73ca, 0x50f3, 0xa1,0xd3, 0x41,0x8c,0x60,0xa9,0xf3,0xb2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("8beb3a26-73ca-50f3-a1d3-418c60a9f3b2")
+                IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x8beb3a26, 0x73ca, 0x50f3, 0xa1,0xd3, 0x41,0x8c,0x60,0xa9,0xf3,0xb2)
+#endif
+#else
+typedef struct __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Current)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *MoveNext)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl;
+
+interface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService {
+    CONST_VTBL __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Current(This,value) (This)->lpVtbl->get_Current(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_HasCurrent(This,value) (This)->lpVtbl->get_HasCurrent(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_MoveNext(This,value) (This)->lpVtbl->MoveNext(This,value)
+#define __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetMany(This,items_size,items,value) (This)->lpVtbl->GetMany(This,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterator<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Current(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **value) {
+    return This->lpVtbl->get_Current(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_HasCurrent(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,boolean *value) {
+    return This->lpVtbl->get_HasCurrent(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_MoveNext(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,boolean *value) {
+    return This->lpVtbl->MoveNext(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetMany(__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterator_GattDeviceService IID___FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IIterator_GattDeviceServiceVtbl __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl
+#define IIterator_GattDeviceService __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IIterator_GattDeviceService_QueryInterface __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface
+#define IIterator_GattDeviceService_AddRef __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef
+#define IIterator_GattDeviceService_Release __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release
+#define IIterator_GattDeviceService_GetIids __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids
+#define IIterator_GattDeviceService_GetRuntimeClassName __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName
+#define IIterator_GattDeviceService_GetTrustLevel __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel
+#define IIterator_GattDeviceService_get_Current __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Current
+#define IIterator_GattDeviceService_get_HasCurrent __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_HasCurrent
+#define IIterator_GattDeviceService_MoveNext __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_MoveNext
+#define IIterator_GattDeviceService_GetMany __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > interface
+ */
+#ifndef ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+#define ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x4b192e23, 0x4893, 0x56b2, 0x8e,0xff, 0x43,0x9c,0x3a,0xb7,0xfd,0x1f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("4b192e23-4893-56b2-8eff-439c3ab7fd1f")
+                IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x4b192e23, 0x4893, 0x56b2, 0x8e,0xff, 0x43,0x9c,0x3a,0xb7,0xfd,0x1f)
+#endif
+#else
+typedef struct __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *First)(
+        __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        __FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value);
+
+    END_INTERFACE
+} __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl;
+
+interface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService {
+    CONST_VTBL __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+#define __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_First(This,value) (This)->lpVtbl->First(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterable<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+static inline HRESULT __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_First(__FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,__FIIterator_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value) {
+    return This->lpVtbl->First(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterable_GattDeviceService IID___FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IIterable_GattDeviceServiceVtbl __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl
+#define IIterable_GattDeviceService __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IIterable_GattDeviceService_QueryInterface __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface
+#define IIterable_GattDeviceService_AddRef __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef
+#define IIterable_GattDeviceService_Release __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release
+#define IIterable_GattDeviceService_GetIids __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids
+#define IIterable_GattDeviceService_GetRuntimeClassName __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName
+#define IIterable_GattDeviceService_GetTrustLevel __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel
+#define IIterable_GattDeviceService_First __FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_First
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterable_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x7c8e7fdd, 0xa1a1, 0x528a, 0x81,0xd1, 0x29,0x67,0x69,0x22,0x7a,0x08);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("7c8e7fdd-a1a1-528a-81d1-296769227a08")
+                IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x7c8e7fdd, 0xa1a1, 0x528a, 0x81,0xd1, 0x29,0x67,0x69,0x22,0x7a,0x08)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        TrustLevel *trustLevel);
+
+    /*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        UINT32 index,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl;
+
+interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService {
+    CONST_VTBL __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetAt(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,UINT32 index,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **value) {
+    return This->lpVtbl->GetAt(This,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Size(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_IndexOf(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetMany(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_GattDeviceService IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IVectorView_GattDeviceServiceVtbl __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl
+#define IVectorView_GattDeviceService __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IVectorView_GattDeviceService_QueryInterface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface
+#define IVectorView_GattDeviceService_AddRef __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef
+#define IVectorView_GattDeviceService_Release __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release
+#define IVectorView_GattDeviceService_GetIids __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids
+#define IVectorView_GattDeviceService_GetRuntimeClassName __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName
+#define IVectorView_GattDeviceService_GetTrustLevel __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel
+#define IVectorView_GattDeviceService_GetAt __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetAt
+#define IVectorView_GattDeviceService_get_Size __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Size
+#define IVectorView_GattDeviceService_IndexOf __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_IndexOf
+#define IVectorView_GattDeviceService_GetMany __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult, 0xd8992aa0, 0xeac2, 0x55b7, 0x92,0xc5, 0x89,0x48,0x86,0xbe,0xb0,0xca);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("d8992aa0-eac2-55b7-92c5-894886beb0ca")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult, 0xd8992aa0, 0xeac2, 0x55b7, 0x92,0xc5, 0x89,0x48,0x86,0xbe,0xb0,0xca)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResultVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattReadResult IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult
+#define IAsyncOperationCompletedHandler_GattReadResultVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResultVtbl
+#define IAsyncOperationCompletedHandler_GattReadResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult
+#define IAsyncOperationCompletedHandler_GattReadResult_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_QueryInterface
+#define IAsyncOperationCompletedHandler_GattReadResult_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_AddRef
+#define IAsyncOperationCompletedHandler_GattReadResult_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_Release
+#define IAsyncOperationCompletedHandler_GattReadResult_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult, 0xd40432a8, 0x1e14, 0x51d0, 0xb4,0x9b, 0xae,0x2c,0xe1,0xaa,0x05,0xe5);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("d40432a8-1e14-51d0-b49b-ae2ce1aa05e5")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult, 0xd40432a8, 0x1e14, 0x51d0, 0xb4,0x9b, 0xae,0x2c,0xe1,0xaa,0x05,0xe5)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResultVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadResult* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadResult **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattReadResult IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult
+#define IAsyncOperation_GattReadResultVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResultVtbl
+#define IAsyncOperation_GattReadResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult
+#define IAsyncOperation_GattReadResult_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_QueryInterface
+#define IAsyncOperation_GattReadResult_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_AddRef
+#define IAsyncOperation_GattReadResult_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_Release
+#define IAsyncOperation_GattReadResult_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetIids
+#define IAsyncOperation_GattReadResult_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetRuntimeClassName
+#define IAsyncOperation_GattReadResult_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetTrustLevel
+#define IAsyncOperation_GattReadResult_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_put_Completed
+#define IAsyncOperation_GattReadResult_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_get_Completed
+#define IAsyncOperation_GattReadResult_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult, 0x6fa8c9c3, 0xff7e, 0x5fa1, 0xa2,0xf3, 0x27,0x14,0xcf,0x04,0xb8,0x99);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("6fa8c9c3-ff7e-5fa1-a2f3-2714cf04b899")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattWriteResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult, 0x6fa8c9c3, 0xff7e, 0x5fa1, 0xa2,0xf3, 0x27,0x14,0xcf,0x04,0xb8,0x99)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResultVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattWriteResult IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult
+#define IAsyncOperationCompletedHandler_GattWriteResultVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResultVtbl
+#define IAsyncOperationCompletedHandler_GattWriteResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult
+#define IAsyncOperationCompletedHandler_GattWriteResult_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_QueryInterface
+#define IAsyncOperationCompletedHandler_GattWriteResult_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_AddRef
+#define IAsyncOperationCompletedHandler_GattWriteResult_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_Release
+#define IAsyncOperationCompletedHandler_GattWriteResult_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult, 0xe83b4534, 0xbd14, 0x5a9b, 0xa5,0x3b, 0x17,0xcc,0x02,0xa2,0xa8,0xa8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("e83b4534-bd14-5a9b-a53b-17cc02a2a8a8")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattWriteResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult, 0xe83b4534, 0xbd14, 0x5a9b, 0xa5,0x3b, 0x17,0xcc,0x02,0xa2,0xa8,0xa8)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResultVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattWriteResult* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattWriteResult **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattWriteResult IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult
+#define IAsyncOperation_GattWriteResultVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResultVtbl
+#define IAsyncOperation_GattWriteResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult
+#define IAsyncOperation_GattWriteResult_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_QueryInterface
+#define IAsyncOperation_GattWriteResult_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_AddRef
+#define IAsyncOperation_GattWriteResult_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_Release
+#define IAsyncOperation_GattWriteResult_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetIids
+#define IAsyncOperation_GattWriteResult_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetRuntimeClassName
+#define IAsyncOperation_GattWriteResult_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetTrustLevel
+#define IAsyncOperation_GattWriteResult_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_put_Completed
+#define IAsyncOperation_GattWriteResult_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_get_Completed
+#define IAsyncOperation_GattWriteResult_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattWriteResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_GattCommunicationStatus, 0x2154117a, 0x978d, 0x59db, 0x99,0xcf, 0x6b,0x69,0x0c,0xb3,0x38,0x9b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("2154117a-978d-59db-99cf-6b690cb3389b")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_GattCommunicationStatus, 0x2154117a, 0x978d, 0x59db, 0x99,0xcf, 0x6b,0x69,0x0c,0xb3,0x38,0x9b)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_GattCommunicationStatusVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus *This,
+        __FIAsyncOperation_1_GattCommunicationStatus *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_GattCommunicationStatusVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_GattCommunicationStatusVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_QueryInterface(__FIAsyncOperationCompletedHandler_1_GattCommunicationStatus* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_AddRef(__FIAsyncOperationCompletedHandler_1_GattCommunicationStatus* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_Release(__FIAsyncOperationCompletedHandler_1_GattCommunicationStatus* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_Invoke(__FIAsyncOperationCompletedHandler_1_GattCommunicationStatus* This,__FIAsyncOperation_1_GattCommunicationStatus *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattCommunicationStatus IID___FIAsyncOperationCompletedHandler_1_GattCommunicationStatus
+#define IAsyncOperationCompletedHandler_GattCommunicationStatusVtbl __FIAsyncOperationCompletedHandler_1_GattCommunicationStatusVtbl
+#define IAsyncOperationCompletedHandler_GattCommunicationStatus __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus
+#define IAsyncOperationCompletedHandler_GattCommunicationStatus_QueryInterface __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_QueryInterface
+#define IAsyncOperationCompletedHandler_GattCommunicationStatus_AddRef __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_AddRef
+#define IAsyncOperationCompletedHandler_GattCommunicationStatus_Release __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_Release
+#define IAsyncOperationCompletedHandler_GattCommunicationStatus_Invoke __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_GattCommunicationStatus_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > interface
+ */
+#ifndef ____FIAsyncOperation_1_GattCommunicationStatus_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_GattCommunicationStatus_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_GattCommunicationStatus, 0x3ff69516, 0x1bfb, 0x52e9, 0x9e,0xe6, 0xe5,0xcd,0xb7,0x8e,0x16,0x83);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("3ff69516-1bfb-52e9-9ee6-e5cdb78e1683")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > : IAsyncOperation_impl<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_GattCommunicationStatus, 0x3ff69516, 0x1bfb, 0x52e9, 0x9e,0xe6, 0xe5,0xcd,0xb7,0x8e,0x16,0x83)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_GattCommunicationStatusVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_GattCommunicationStatus *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_GattCommunicationStatus *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_GattCommunicationStatus *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_GattCommunicationStatus *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_GattCommunicationStatus *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_GattCommunicationStatus *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_GattCommunicationStatus *This,
+        __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_GattCommunicationStatus *This,
+        __FIAsyncOperationCompletedHandler_1_GattCommunicationStatus **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_GattCommunicationStatus *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_GattCommunicationStatusVtbl;
+
+interface __FIAsyncOperation_1_GattCommunicationStatus {
+    CONST_VTBL __FIAsyncOperation_1_GattCommunicationStatusVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_GattCommunicationStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_GattCommunicationStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_GattCommunicationStatus_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_GattCommunicationStatus_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_GattCommunicationStatus_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_GattCommunicationStatus_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > methods ***/
+#define __FIAsyncOperation_1_GattCommunicationStatus_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_GattCommunicationStatus_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_GattCommunicationStatus_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_GattCommunicationStatus_QueryInterface(__FIAsyncOperation_1_GattCommunicationStatus* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_GattCommunicationStatus_AddRef(__FIAsyncOperation_1_GattCommunicationStatus* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_GattCommunicationStatus_Release(__FIAsyncOperation_1_GattCommunicationStatus* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_GattCommunicationStatus_GetIids(__FIAsyncOperation_1_GattCommunicationStatus* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_GattCommunicationStatus_GetRuntimeClassName(__FIAsyncOperation_1_GattCommunicationStatus* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_GattCommunicationStatus_GetTrustLevel(__FIAsyncOperation_1_GattCommunicationStatus* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCommunicationStatus > methods ***/
+static inline HRESULT __FIAsyncOperation_1_GattCommunicationStatus_put_Completed(__FIAsyncOperation_1_GattCommunicationStatus* This,__FIAsyncOperationCompletedHandler_1_GattCommunicationStatus *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_GattCommunicationStatus_get_Completed(__FIAsyncOperation_1_GattCommunicationStatus* This,__FIAsyncOperationCompletedHandler_1_GattCommunicationStatus **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_GattCommunicationStatus_GetResults(__FIAsyncOperation_1_GattCommunicationStatus* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattCommunicationStatus *results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattCommunicationStatus IID___FIAsyncOperation_1_GattCommunicationStatus
+#define IAsyncOperation_GattCommunicationStatusVtbl __FIAsyncOperation_1_GattCommunicationStatusVtbl
+#define IAsyncOperation_GattCommunicationStatus __FIAsyncOperation_1_GattCommunicationStatus
+#define IAsyncOperation_GattCommunicationStatus_QueryInterface __FIAsyncOperation_1_GattCommunicationStatus_QueryInterface
+#define IAsyncOperation_GattCommunicationStatus_AddRef __FIAsyncOperation_1_GattCommunicationStatus_AddRef
+#define IAsyncOperation_GattCommunicationStatus_Release __FIAsyncOperation_1_GattCommunicationStatus_Release
+#define IAsyncOperation_GattCommunicationStatus_GetIids __FIAsyncOperation_1_GattCommunicationStatus_GetIids
+#define IAsyncOperation_GattCommunicationStatus_GetRuntimeClassName __FIAsyncOperation_1_GattCommunicationStatus_GetRuntimeClassName
+#define IAsyncOperation_GattCommunicationStatus_GetTrustLevel __FIAsyncOperation_1_GattCommunicationStatus_GetTrustLevel
+#define IAsyncOperation_GattCommunicationStatus_put_Completed __FIAsyncOperation_1_GattCommunicationStatus_put_Completed
+#define IAsyncOperation_GattCommunicationStatus_get_Completed __FIAsyncOperation_1_GattCommunicationStatus_get_Completed
+#define IAsyncOperation_GattCommunicationStatus_GetResults __FIAsyncOperation_1_GattCommunicationStatus_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_GattCommunicationStatus_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult, 0x98f9a6f3, 0x4d29, 0x5351, 0x8b,0x12, 0x75,0x1d,0xc9,0x77,0xa3,0x31);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("98f9a6f3-4d29-5351-8b12-751dc977a331")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadClientCharacteristicConfigurationDescriptorResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult, 0x98f9a6f3, 0x4d29, 0x5351, 0x8b,0x12, 0x75,0x1d,0xc9,0x77,0xa3,0x31)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResultVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattReadClientCharacteristicConfigurationDescriptorResult IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult
+#define IAsyncOperationCompletedHandler_GattReadClientCharacteristicConfigurationDescriptorResultVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResultVtbl
+#define IAsyncOperationCompletedHandler_GattReadClientCharacteristicConfigurationDescriptorResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult
+#define IAsyncOperationCompletedHandler_GattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface
+#define IAsyncOperationCompletedHandler_GattReadClientCharacteristicConfigurationDescriptorResult_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_AddRef
+#define IAsyncOperationCompletedHandler_GattReadClientCharacteristicConfigurationDescriptorResult_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_Release
+#define IAsyncOperationCompletedHandler_GattReadClientCharacteristicConfigurationDescriptorResult_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult, 0xcf4444cc, 0x4077, 0x5719, 0x83,0x66, 0x46,0xe8,0x6b,0x98,0x36,0x85);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("cf4444cc-4077-5719-8366-46e86b983685")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattReadClientCharacteristicConfigurationDescriptorResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult, 0xcf4444cc, 0x4077, 0x5719, 0x83,0x66, 0x46,0xe8,0x6b,0x98,0x36,0x85)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResultVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattReadClientCharacteristicConfigurationDescriptorResult* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattReadClientCharacteristicConfigurationDescriptorResult **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResultVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResultVtbl
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_QueryInterface
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_AddRef
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_Release
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetIids
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetRuntimeClassName
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetTrustLevel
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_put_Completed
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_get_Completed
+#define IAsyncOperation_GattReadClientCharacteristicConfigurationDescriptorResult_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattReadClientCharacteristicConfigurationDescriptorResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_DeviceAccessStatus, 0xee154d83, 0x805b, 0x53e8, 0x84,0x69, 0x90,0x71,0x50,0x36,0xd0,0x13);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("ee154d83-805b-53e8-8469-90715036d013")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Devices::Enumeration::DeviceAccessStatus >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_DeviceAccessStatus, 0xee154d83, 0x805b, 0x53e8, 0x84,0x69, 0x90,0x71,0x50,0x36,0xd0,0x13)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_DeviceAccessStatusVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus *This,
+        __FIAsyncOperation_1_DeviceAccessStatus *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_DeviceAccessStatusVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_DeviceAccessStatusVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_QueryInterface(__FIAsyncOperationCompletedHandler_1_DeviceAccessStatus* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_AddRef(__FIAsyncOperationCompletedHandler_1_DeviceAccessStatus* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_Release(__FIAsyncOperationCompletedHandler_1_DeviceAccessStatus* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_Invoke(__FIAsyncOperationCompletedHandler_1_DeviceAccessStatus* This,__FIAsyncOperation_1_DeviceAccessStatus *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_DeviceAccessStatus IID___FIAsyncOperationCompletedHandler_1_DeviceAccessStatus
+#define IAsyncOperationCompletedHandler_DeviceAccessStatusVtbl __FIAsyncOperationCompletedHandler_1_DeviceAccessStatusVtbl
+#define IAsyncOperationCompletedHandler_DeviceAccessStatus __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus
+#define IAsyncOperationCompletedHandler_DeviceAccessStatus_QueryInterface __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_QueryInterface
+#define IAsyncOperationCompletedHandler_DeviceAccessStatus_AddRef __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_AddRef
+#define IAsyncOperationCompletedHandler_DeviceAccessStatus_Release __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_Release
+#define IAsyncOperationCompletedHandler_DeviceAccessStatus_Invoke __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_DeviceAccessStatus_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > interface
+ */
+#ifndef ____FIAsyncOperation_1_DeviceAccessStatus_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_DeviceAccessStatus_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_DeviceAccessStatus, 0xc00bc2f2, 0xa7f8, 0x5f3f, 0x80,0xd1, 0x28,0x08,0xef,0x6b,0xca,0x10);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("c00bc2f2-a7f8-5f3f-80d1-2808ef6bca10")
+            IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > : IAsyncOperation_impl<ABI::Windows::Devices::Enumeration::DeviceAccessStatus >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_DeviceAccessStatus, 0xc00bc2f2, 0xa7f8, 0x5f3f, 0x80,0xd1, 0x28,0x08,0xef,0x6b,0xca,0x10)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_DeviceAccessStatusVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_DeviceAccessStatus *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_DeviceAccessStatus *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_DeviceAccessStatus *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_DeviceAccessStatus *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_DeviceAccessStatus *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_DeviceAccessStatus *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_DeviceAccessStatus *This,
+        __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_DeviceAccessStatus *This,
+        __FIAsyncOperationCompletedHandler_1_DeviceAccessStatus **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_DeviceAccessStatus *This,
+        __x_ABI_CWindows_CDevices_CEnumeration_CDeviceAccessStatus *results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_DeviceAccessStatusVtbl;
+
+interface __FIAsyncOperation_1_DeviceAccessStatus {
+    CONST_VTBL __FIAsyncOperation_1_DeviceAccessStatusVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_DeviceAccessStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_DeviceAccessStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_DeviceAccessStatus_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_DeviceAccessStatus_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_DeviceAccessStatus_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_DeviceAccessStatus_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > methods ***/
+#define __FIAsyncOperation_1_DeviceAccessStatus_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_DeviceAccessStatus_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_DeviceAccessStatus_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_DeviceAccessStatus_QueryInterface(__FIAsyncOperation_1_DeviceAccessStatus* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_DeviceAccessStatus_AddRef(__FIAsyncOperation_1_DeviceAccessStatus* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_DeviceAccessStatus_Release(__FIAsyncOperation_1_DeviceAccessStatus* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_DeviceAccessStatus_GetIids(__FIAsyncOperation_1_DeviceAccessStatus* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_DeviceAccessStatus_GetRuntimeClassName(__FIAsyncOperation_1_DeviceAccessStatus* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_DeviceAccessStatus_GetTrustLevel(__FIAsyncOperation_1_DeviceAccessStatus* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Enumeration::DeviceAccessStatus > methods ***/
+static inline HRESULT __FIAsyncOperation_1_DeviceAccessStatus_put_Completed(__FIAsyncOperation_1_DeviceAccessStatus* This,__FIAsyncOperationCompletedHandler_1_DeviceAccessStatus *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_DeviceAccessStatus_get_Completed(__FIAsyncOperation_1_DeviceAccessStatus* This,__FIAsyncOperationCompletedHandler_1_DeviceAccessStatus **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_DeviceAccessStatus_GetResults(__FIAsyncOperation_1_DeviceAccessStatus* This,__x_ABI_CWindows_CDevices_CEnumeration_CDeviceAccessStatus *results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_DeviceAccessStatus IID___FIAsyncOperation_1_DeviceAccessStatus
+#define IAsyncOperation_DeviceAccessStatusVtbl __FIAsyncOperation_1_DeviceAccessStatusVtbl
+#define IAsyncOperation_DeviceAccessStatus __FIAsyncOperation_1_DeviceAccessStatus
+#define IAsyncOperation_DeviceAccessStatus_QueryInterface __FIAsyncOperation_1_DeviceAccessStatus_QueryInterface
+#define IAsyncOperation_DeviceAccessStatus_AddRef __FIAsyncOperation_1_DeviceAccessStatus_AddRef
+#define IAsyncOperation_DeviceAccessStatus_Release __FIAsyncOperation_1_DeviceAccessStatus_Release
+#define IAsyncOperation_DeviceAccessStatus_GetIids __FIAsyncOperation_1_DeviceAccessStatus_GetIids
+#define IAsyncOperation_DeviceAccessStatus_GetRuntimeClassName __FIAsyncOperation_1_DeviceAccessStatus_GetRuntimeClassName
+#define IAsyncOperation_DeviceAccessStatus_GetTrustLevel __FIAsyncOperation_1_DeviceAccessStatus_GetTrustLevel
+#define IAsyncOperation_DeviceAccessStatus_put_Completed __FIAsyncOperation_1_DeviceAccessStatus_put_Completed
+#define IAsyncOperation_DeviceAccessStatus_get_Completed __FIAsyncOperation_1_DeviceAccessStatus_get_Completed
+#define IAsyncOperation_DeviceAccessStatus_GetResults __FIAsyncOperation_1_DeviceAccessStatus_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_DeviceAccessStatus_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_GattOpenStatus_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_GattOpenStatus_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_GattOpenStatus, 0x548b3cd0, 0xdce8, 0x5d3d, 0x98,0xab, 0x69,0x48,0xdd,0x7f,0x90,0xb8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("548b3cd0-dce8-5d3d-98ab-6948dd7f90b8")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_GattOpenStatus, 0x548b3cd0, 0xdce8, 0x5d3d, 0x98,0xab, 0x69,0x48,0xdd,0x7f,0x90,0xb8)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_GattOpenStatusVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_GattOpenStatus *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_GattOpenStatus *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_GattOpenStatus *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_GattOpenStatus *This,
+        __FIAsyncOperation_1_GattOpenStatus *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_GattOpenStatusVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_GattOpenStatus {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_GattOpenStatusVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_GattOpenStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_GattOpenStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_GattOpenStatus_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_GattOpenStatus_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_GattOpenStatus_QueryInterface(__FIAsyncOperationCompletedHandler_1_GattOpenStatus* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_GattOpenStatus_AddRef(__FIAsyncOperationCompletedHandler_1_GattOpenStatus* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_GattOpenStatus_Release(__FIAsyncOperationCompletedHandler_1_GattOpenStatus* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_GattOpenStatus_Invoke(__FIAsyncOperationCompletedHandler_1_GattOpenStatus* This,__FIAsyncOperation_1_GattOpenStatus *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattOpenStatus IID___FIAsyncOperationCompletedHandler_1_GattOpenStatus
+#define IAsyncOperationCompletedHandler_GattOpenStatusVtbl __FIAsyncOperationCompletedHandler_1_GattOpenStatusVtbl
+#define IAsyncOperationCompletedHandler_GattOpenStatus __FIAsyncOperationCompletedHandler_1_GattOpenStatus
+#define IAsyncOperationCompletedHandler_GattOpenStatus_QueryInterface __FIAsyncOperationCompletedHandler_1_GattOpenStatus_QueryInterface
+#define IAsyncOperationCompletedHandler_GattOpenStatus_AddRef __FIAsyncOperationCompletedHandler_1_GattOpenStatus_AddRef
+#define IAsyncOperationCompletedHandler_GattOpenStatus_Release __FIAsyncOperationCompletedHandler_1_GattOpenStatus_Release
+#define IAsyncOperationCompletedHandler_GattOpenStatus_Invoke __FIAsyncOperationCompletedHandler_1_GattOpenStatus_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_GattOpenStatus_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > interface
+ */
+#ifndef ____FIAsyncOperation_1_GattOpenStatus_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_GattOpenStatus_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_GattOpenStatus, 0x983201ac, 0x8777, 0x53e8, 0x86,0xe0, 0x63,0xfa,0x68,0x4b,0xe1,0xbd);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("983201ac-8777-53e8-86e0-63fa684be1bd")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > : IAsyncOperation_impl<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_GattOpenStatus, 0x983201ac, 0x8777, 0x53e8, 0x86,0xe0, 0x63,0xfa,0x68,0x4b,0xe1,0xbd)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_GattOpenStatusVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_GattOpenStatus *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_GattOpenStatus *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_GattOpenStatus *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_GattOpenStatus *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_GattOpenStatus *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_GattOpenStatus *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_GattOpenStatus *This,
+        __FIAsyncOperationCompletedHandler_1_GattOpenStatus *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_GattOpenStatus *This,
+        __FIAsyncOperationCompletedHandler_1_GattOpenStatus **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_GattOpenStatus *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattOpenStatus *results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_GattOpenStatusVtbl;
+
+interface __FIAsyncOperation_1_GattOpenStatus {
+    CONST_VTBL __FIAsyncOperation_1_GattOpenStatusVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_GattOpenStatus_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_GattOpenStatus_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_GattOpenStatus_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_GattOpenStatus_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_GattOpenStatus_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_GattOpenStatus_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > methods ***/
+#define __FIAsyncOperation_1_GattOpenStatus_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_GattOpenStatus_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_GattOpenStatus_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_GattOpenStatus_QueryInterface(__FIAsyncOperation_1_GattOpenStatus* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_GattOpenStatus_AddRef(__FIAsyncOperation_1_GattOpenStatus* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_GattOpenStatus_Release(__FIAsyncOperation_1_GattOpenStatus* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_GattOpenStatus_GetIids(__FIAsyncOperation_1_GattOpenStatus* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_GattOpenStatus_GetRuntimeClassName(__FIAsyncOperation_1_GattOpenStatus* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_GattOpenStatus_GetTrustLevel(__FIAsyncOperation_1_GattOpenStatus* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattOpenStatus > methods ***/
+static inline HRESULT __FIAsyncOperation_1_GattOpenStatus_put_Completed(__FIAsyncOperation_1_GattOpenStatus* This,__FIAsyncOperationCompletedHandler_1_GattOpenStatus *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_GattOpenStatus_get_Completed(__FIAsyncOperation_1_GattOpenStatus* This,__FIAsyncOperationCompletedHandler_1_GattOpenStatus **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_GattOpenStatus_GetResults(__FIAsyncOperation_1_GattOpenStatus* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CGattOpenStatus *results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattOpenStatus IID___FIAsyncOperation_1_GattOpenStatus
+#define IAsyncOperation_GattOpenStatusVtbl __FIAsyncOperation_1_GattOpenStatusVtbl
+#define IAsyncOperation_GattOpenStatus __FIAsyncOperation_1_GattOpenStatus
+#define IAsyncOperation_GattOpenStatus_QueryInterface __FIAsyncOperation_1_GattOpenStatus_QueryInterface
+#define IAsyncOperation_GattOpenStatus_AddRef __FIAsyncOperation_1_GattOpenStatus_AddRef
+#define IAsyncOperation_GattOpenStatus_Release __FIAsyncOperation_1_GattOpenStatus_Release
+#define IAsyncOperation_GattOpenStatus_GetIids __FIAsyncOperation_1_GattOpenStatus_GetIids
+#define IAsyncOperation_GattOpenStatus_GetRuntimeClassName __FIAsyncOperation_1_GattOpenStatus_GetRuntimeClassName
+#define IAsyncOperation_GattOpenStatus_GetTrustLevel __FIAsyncOperation_1_GattOpenStatus_GetTrustLevel
+#define IAsyncOperation_GattOpenStatus_put_Completed __FIAsyncOperation_1_GattOpenStatus_put_Completed
+#define IAsyncOperation_GattOpenStatus_get_Completed __FIAsyncOperation_1_GattOpenStatus_get_Completed
+#define IAsyncOperation_GattOpenStatus_GetResults __FIAsyncOperation_1_GattOpenStatus_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_GattOpenStatus_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult, 0xd6a15475, 0x1e72, 0x5c56, 0x98,0xe8, 0x88,0xf4,0xbc,0x3e,0x03,0x13);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("d6a15475-1e72-5c56-98e8-88f4bc3e0313")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristicsResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult, 0xd6a15475, 0x1e72, 0x5c56, 0x98,0xe8, 0x88,0xf4,0xbc,0x3e,0x03,0x13)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResultVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattCharacteristicsResult IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult
+#define IAsyncOperationCompletedHandler_GattCharacteristicsResultVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResultVtbl
+#define IAsyncOperationCompletedHandler_GattCharacteristicsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult
+#define IAsyncOperationCompletedHandler_GattCharacteristicsResult_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_QueryInterface
+#define IAsyncOperationCompletedHandler_GattCharacteristicsResult_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_AddRef
+#define IAsyncOperationCompletedHandler_GattCharacteristicsResult_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_Release
+#define IAsyncOperationCompletedHandler_GattCharacteristicsResult_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult, 0x0972194a, 0xac1c, 0x5536, 0x98,0x86, 0x27,0xe5,0x8a,0x18,0xf2,0x73);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("0972194a-ac1c-5536-9886-27e58a18f273")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristicsResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult, 0x0972194a, 0xac1c, 0x5536, 0x98,0x86, 0x27,0xe5,0x8a,0x18,0xf2,0x73)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResultVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristicsResult* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristicsResult **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattCharacteristicsResult IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult
+#define IAsyncOperation_GattCharacteristicsResultVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResultVtbl
+#define IAsyncOperation_GattCharacteristicsResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult
+#define IAsyncOperation_GattCharacteristicsResult_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_QueryInterface
+#define IAsyncOperation_GattCharacteristicsResult_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_AddRef
+#define IAsyncOperation_GattCharacteristicsResult_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_Release
+#define IAsyncOperation_GattCharacteristicsResult_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetIids
+#define IAsyncOperation_GattCharacteristicsResult_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetRuntimeClassName
+#define IAsyncOperation_GattCharacteristicsResult_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetTrustLevel
+#define IAsyncOperation_GattCharacteristicsResult_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_put_Completed
+#define IAsyncOperation_GattCharacteristicsResult_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_get_Completed
+#define IAsyncOperation_GattCharacteristicsResult_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristicsResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult, 0x74ab0892, 0xa631, 0x5d6c, 0xb1,0xb4, 0xbd,0x2e,0x1a,0x74,0x1a,0x9b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("74ab0892-a631-5d6c-b1b4-bd2e1a741a9b")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceServicesResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult, 0x74ab0892, 0xa631, 0x5d6c, 0xb1,0xb4, 0xbd,0x2e,0x1a,0x74,0x1a,0x9b)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResultVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattDeviceServicesResult IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult
+#define IAsyncOperationCompletedHandler_GattDeviceServicesResultVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResultVtbl
+#define IAsyncOperationCompletedHandler_GattDeviceServicesResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult
+#define IAsyncOperationCompletedHandler_GattDeviceServicesResult_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_QueryInterface
+#define IAsyncOperationCompletedHandler_GattDeviceServicesResult_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_AddRef
+#define IAsyncOperationCompletedHandler_GattDeviceServicesResult_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_Release
+#define IAsyncOperationCompletedHandler_GattDeviceServicesResult_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult, 0xe7c667f6, 0xe874, 0x500f, 0x86,0xff, 0x76,0x0c,0xa6,0xf0,0x7a,0x58);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("e7c667f6-e874-500f-86ff-760ca6f07a58")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceServicesResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult, 0xe7c667f6, 0xe874, 0x500f, 0x86,0xff, 0x76,0x0c,0xa6,0xf0,0x7a,0x58)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResultVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceServicesResult* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceServicesResult **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattDeviceServicesResult IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult
+#define IAsyncOperation_GattDeviceServicesResultVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResultVtbl
+#define IAsyncOperation_GattDeviceServicesResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult
+#define IAsyncOperation_GattDeviceServicesResult_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_QueryInterface
+#define IAsyncOperation_GattDeviceServicesResult_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_AddRef
+#define IAsyncOperation_GattDeviceServicesResult_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_Release
+#define IAsyncOperation_GattDeviceServicesResult_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetIids
+#define IAsyncOperation_GattDeviceServicesResult_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetRuntimeClassName
+#define IAsyncOperation_GattDeviceServicesResult_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetTrustLevel
+#define IAsyncOperation_GattDeviceServicesResult_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_put_Completed
+#define IAsyncOperation_GattDeviceServicesResult_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_get_Completed
+#define IAsyncOperation_GattDeviceServicesResult_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServicesResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession, 0xcae01a28, 0xfd33, 0x542e, 0xa5,0xad, 0x3d,0x87,0x8f,0x73,0xdb,0x90);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("cae01a28-fd33-542e-a5ad-3d878f73db90")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSession* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession, 0xcae01a28, 0xfd33, 0x542e, 0xa5,0xad, 0x3d,0x87,0x8f,0x73,0xdb,0x90)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattSession IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession
+#define IAsyncOperationCompletedHandler_GattSessionVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionVtbl
+#define IAsyncOperationCompletedHandler_GattSession __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession
+#define IAsyncOperationCompletedHandler_GattSession_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_QueryInterface
+#define IAsyncOperationCompletedHandler_GattSession_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_AddRef
+#define IAsyncOperationCompletedHandler_GattSession_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Release
+#define IAsyncOperationCompletedHandler_GattSession_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession, 0x6d40b467, 0x46b9, 0x516f, 0x82,0x08, 0xdb,0x23,0xb7,0x86,0xea,0x48);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("6d40b467-46b9-516f-8208-db23b786ea48")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSession* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession, 0x6d40b467, 0x46b9, 0x516f, 0x82,0x08, 0xdb,0x23,0xb7,0x86,0xea,0x48)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattSession IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession
+#define IAsyncOperation_GattSessionVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionVtbl
+#define IAsyncOperation_GattSession __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession
+#define IAsyncOperation_GattSession_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_QueryInterface
+#define IAsyncOperation_GattSession_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_AddRef
+#define IAsyncOperation_GattSession_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Release
+#define IAsyncOperation_GattSession_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetIids
+#define IAsyncOperation_GattSession_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetRuntimeClassName
+#define IAsyncOperation_GattSession_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetTrustLevel
+#define IAsyncOperation_GattSession_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_put_Completed
+#define IAsyncOperation_GattSession_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_get_Completed
+#define IAsyncOperation_GattSession_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x2dbcf64a, 0x262b, 0x5708, 0xad,0xb1, 0xc3,0xb8,0x75,0x0b,0xd6,0x80);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("2dbcf64a-262b-5708-adb1-c3b8750bd680")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x2dbcf64a, 0x262b, 0x5708, 0xad,0xb1, 0xc3,0xb8,0x75,0x0b,0xd6,0x80)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattDeviceService IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IAsyncOperationCompletedHandler_GattDeviceServiceVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl
+#define IAsyncOperationCompletedHandler_GattDeviceService __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IAsyncOperationCompletedHandler_GattDeviceService_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface
+#define IAsyncOperationCompletedHandler_GattDeviceService_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef
+#define IAsyncOperationCompletedHandler_GattDeviceService_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release
+#define IAsyncOperationCompletedHandler_GattDeviceService_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0xe5e90272, 0x408f, 0x5055, 0x9b,0xd3, 0x88,0x40,0x89,0x82,0xd3,0x01);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("e5e90272-408f-5055-9bd3-88408982d301")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0xe5e90272, 0x408f, 0x5055, 0x9b,0xd3, 0x88,0x40,0x89,0x82,0xd3,0x01)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattDeviceService IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IAsyncOperation_GattDeviceServiceVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl
+#define IAsyncOperation_GattDeviceService __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IAsyncOperation_GattDeviceService_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface
+#define IAsyncOperation_GattDeviceService_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef
+#define IAsyncOperation_GattDeviceService_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release
+#define IAsyncOperation_GattDeviceService_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids
+#define IAsyncOperation_GattDeviceService_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName
+#define IAsyncOperation_GattDeviceService_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel
+#define IAsyncOperation_GattDeviceService_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_put_Completed
+#define IAsyncOperation_GattDeviceService_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Completed
+#define IAsyncOperation_GattDeviceService_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult, 0xdf09ae77, 0xf606, 0x53e4, 0x8b,0xa6, 0x79,0x9f,0x59,0x92,0xc8,0x5e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("df09ae77-f606-53e4-8ba6-799f5992c85e")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptorsResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult, 0xdf09ae77, 0xf606, 0x53e4, 0x8b,0xa6, 0x79,0x9f,0x59,0x92,0xc8,0x5e)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResultVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_GattDescriptorsResult IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult
+#define IAsyncOperationCompletedHandler_GattDescriptorsResultVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResultVtbl
+#define IAsyncOperationCompletedHandler_GattDescriptorsResult __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult
+#define IAsyncOperationCompletedHandler_GattDescriptorsResult_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_QueryInterface
+#define IAsyncOperationCompletedHandler_GattDescriptorsResult_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_AddRef
+#define IAsyncOperationCompletedHandler_GattDescriptorsResult_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_Release
+#define IAsyncOperationCompletedHandler_GattDescriptorsResult_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult, 0xceaf40c7, 0xbe37, 0x52a5, 0x9a,0x1b, 0x63,0x39,0x85,0x13,0xe5,0x97);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("ceaf40c7-be37-52a5-9a1b-63398513e597")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDescriptorsResult* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult, 0xceaf40c7, 0xbe37, 0x52a5, 0x9a,0x1b, 0x63,0x39,0x85,0x13,0xe5,0x97)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResultVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResultVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResultVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDescriptorsResult* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDescriptorsResult **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_GattDescriptorsResult IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult
+#define IAsyncOperation_GattDescriptorsResultVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResultVtbl
+#define IAsyncOperation_GattDescriptorsResult __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult
+#define IAsyncOperation_GattDescriptorsResult_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_QueryInterface
+#define IAsyncOperation_GattDescriptorsResult_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_AddRef
+#define IAsyncOperation_GattDescriptorsResult_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_Release
+#define IAsyncOperation_GattDescriptorsResult_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetIids
+#define IAsyncOperation_GattDescriptorsResult_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetRuntimeClassName
+#define IAsyncOperation_GattDescriptorsResult_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetTrustLevel
+#define IAsyncOperation_GattDescriptorsResult_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_put_Completed
+#define IAsyncOperation_GattDescriptorsResult_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_get_Completed
+#define IAsyncOperation_GattDescriptorsResult_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDescriptorsResult_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattValueChangedEventArgs* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs, 0xc1f420f6, 0x6292, 0x5760, 0xa2,0xc9, 0x9d,0xdf,0x98,0x68,0x3c,0xfc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("c1f420f6-6292-5760-a2c9-9ddf98683cfc")
+            ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattValueChangedEventArgs* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattCharacteristic* >, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattValueChangedEventArgs*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattValueChangedEventArgs* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs, 0xc1f420f6, 0x6292, 0x5760, 0xa2,0xc9, 0x9d,0xdf,0x98,0x68,0x3c,0xfc)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs *This);
+
+    /*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattValueChangedEventArgs* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *sender,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgsVtbl;
+
+interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattValueChangedEventArgs* > methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_QueryInterface(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_AddRef(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_Release(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattCharacteristic*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattValueChangedEventArgs* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_Invoke(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattCharacteristic *sender,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattValueChangedEventArgs *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_GattCharacteristic_GattValueChangedEventArgs IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs
+#define ITypedEventHandler_GattCharacteristic_GattValueChangedEventArgsVtbl __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgsVtbl
+#define ITypedEventHandler_GattCharacteristic_GattValueChangedEventArgs __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs
+#define ITypedEventHandler_GattCharacteristic_GattValueChangedEventArgs_QueryInterface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_QueryInterface
+#define ITypedEventHandler_GattCharacteristic_GattValueChangedEventArgs_AddRef __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_AddRef
+#define ITypedEventHandler_GattCharacteristic_GattValueChangedEventArgs_Release __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_Release
+#define ITypedEventHandler_GattCharacteristic_GattValueChangedEventArgs_Invoke __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattCharacteristic_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattValueChangedEventArgs_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatusChangedEventArgs* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs, 0x0e1210f2, 0x7b6f, 0x543e, 0x8a,0xdb, 0xa6,0x1d,0x34,0xab,0x53,0x5d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("0e1210f2-7b6f-543e-8adb-a61d34ab535d")
+            ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatusChangedEventArgs* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSession* >, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatusChangedEventArgs*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSessionStatusChangedEventArgs* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs, 0x0e1210f2, 0x7b6f, 0x543e, 0x8a,0xdb, 0xa6,0x1d,0x34,0xab,0x53,0x5d)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs *This);
+
+    /*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatusChangedEventArgs* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *sender,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgsVtbl;
+
+interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatusChangedEventArgs* > methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_QueryInterface(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_AddRef(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_Release(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSessionStatusChangedEventArgs* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_Invoke(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *sender,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSessionStatusChangedEventArgs *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_GattSession_GattSessionStatusChangedEventArgs IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs
+#define ITypedEventHandler_GattSession_GattSessionStatusChangedEventArgsVtbl __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgsVtbl
+#define ITypedEventHandler_GattSession_GattSessionStatusChangedEventArgs __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs
+#define ITypedEventHandler_GattSession_GattSessionStatusChangedEventArgs_QueryInterface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_QueryInterface
+#define ITypedEventHandler_GattSession_GattSessionStatusChangedEventArgs_AddRef __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_AddRef
+#define ITypedEventHandler_GattSession_GattSessionStatusChangedEventArgs_Release __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_Release
+#define ITypedEventHandler_GattSession_GattSessionStatusChangedEventArgs_Invoke __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSessionStatusChangedEventArgs_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,IInspectable* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable, 0x6c7ec2ec, 0x9f00, 0x5ea0, 0x9a,0x08, 0x60,0xe5,0x07,0x0b,0xcf,0x03);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("6c7ec2ec-9f00-5ea0-9a08-60e5070bcf03")
+            ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,IInspectable* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattSession* >, IInspectable* >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable, 0x6c7ec2ec, 0x9f00, 0x5ea0, 0x9a,0x08, 0x60,0xe5,0x07,0x0b,0xcf,0x03)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectableVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable *This);
+
+    /*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,IInspectable* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *sender,
+        IInspectable *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectableVtbl;
+
+interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectableVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,IInspectable* > methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_QueryInterface(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_AddRef(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_Release(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattSession*,IInspectable* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_Invoke(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattSession *sender,IInspectable *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_GattSession_IInspectable IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable
+#define ITypedEventHandler_GattSession_IInspectableVtbl __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectableVtbl
+#define ITypedEventHandler_GattSession_IInspectable __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable
+#define ITypedEventHandler_GattSession_IInspectable_QueryInterface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_QueryInterface
+#define ITypedEventHandler_GattSession_IInspectable_AddRef __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_AddRef
+#define ITypedEventHandler_GattSession_IInspectable_Release __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_Release
+#define ITypedEventHandler_GattSession_IInspectable_Invoke __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattSession_IInspectable_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IReference<BYTE > interface
+ */
+#ifndef ____FIReference_1_BYTE_INTERFACE_DEFINED__
+#define ____FIReference_1_BYTE_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIReference_1_BYTE, 0xe5198cc8, 0x2873, 0x55f5, 0xb0,0xa1, 0x84,0xff,0x9e,0x4a,0xad,0x62);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("e5198cc8-2873-55f5-b0a1-84ff9e4aad62")
+            IReference<BYTE > : IReference_impl<BYTE >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIReference_1_BYTE, 0xe5198cc8, 0x2873, 0x55f5, 0xb0,0xa1, 0x84,0xff,0x9e,0x4a,0xad,0x62)
+#endif
+#else
+typedef struct __FIReference_1_BYTEVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIReference_1_BYTE *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIReference_1_BYTE *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIReference_1_BYTE *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIReference_1_BYTE *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIReference_1_BYTE *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIReference_1_BYTE *This,
+        TrustLevel *trustLevel);
+
+    /*** IReference<BYTE > methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Value)(
+        __FIReference_1_BYTE *This,
+        BYTE *value);
+
+    END_INTERFACE
+} __FIReference_1_BYTEVtbl;
+
+interface __FIReference_1_BYTE {
+    CONST_VTBL __FIReference_1_BYTEVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIReference_1_BYTE_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIReference_1_BYTE_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIReference_1_BYTE_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIReference_1_BYTE_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIReference_1_BYTE_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIReference_1_BYTE_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IReference<BYTE > methods ***/
+#define __FIReference_1_BYTE_get_Value(This,value) (This)->lpVtbl->get_Value(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIReference_1_BYTE_QueryInterface(__FIReference_1_BYTE* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIReference_1_BYTE_AddRef(__FIReference_1_BYTE* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIReference_1_BYTE_Release(__FIReference_1_BYTE* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIReference_1_BYTE_GetIids(__FIReference_1_BYTE* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIReference_1_BYTE_GetRuntimeClassName(__FIReference_1_BYTE* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIReference_1_BYTE_GetTrustLevel(__FIReference_1_BYTE* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IReference<BYTE > methods ***/
+static inline HRESULT __FIReference_1_BYTE_get_Value(__FIReference_1_BYTE* This,BYTE *value) {
+    return This->lpVtbl->get_Value(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IReference_BYTE IID___FIReference_1_BYTE
+#define IReference_BYTEVtbl __FIReference_1_BYTEVtbl
+#define IReference_BYTE __FIReference_1_BYTE
+#define IReference_BYTE_QueryInterface __FIReference_1_BYTE_QueryInterface
+#define IReference_BYTE_AddRef __FIReference_1_BYTE_AddRef
+#define IReference_BYTE_Release __FIReference_1_BYTE_Release
+#define IReference_BYTE_GetIids __FIReference_1_BYTE_GetIids
+#define IReference_BYTE_GetRuntimeClassName __FIReference_1_BYTE_GetRuntimeClassName
+#define IReference_BYTE_GetTrustLevel __FIReference_1_BYTE_GetTrustLevel
+#define IReference_BYTE_get_Value __FIReference_1_BYTE_get_Value
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIReference_1_BYTE_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_devices_bluetooth_genericattributeprofile_h__ */
diff --git a/mingw-w64-headers/include/windows.devices.bluetooth.genericattributeprofile.idl b/mingw-w64-headers/include/windows.devices.bluetooth.genericattributeprofile.idl
new file mode 100644
index 0000000..e716454
--- /dev/null
+++ b/mingw-w64-headers/include/windows.devices.bluetooth.genericattributeprofile.idl
@@ -0,0 +1,764 @@
+/*
+ * Copyright 2025 Vibhav Pant
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifdef __WIDL__
+#pragma winrt ns_prefix
+#endif
+
+#ifndef DO_NO_IMPORTS
+import "inspectable.idl";
+import "asyncinfo.idl";
+import "eventtoken.idl";
+import "windowscontracts.idl";
+import "windows.foundation.idl";
+import "windows.storage.streams.idl";
+import "windows.devices.bluetooth.idl";
+import "windows.devices.enumeration.idl";
+#endif
+
+namespace Windows.Devices.Bluetooth {
+    typedef enum BluetoothCacheMode BluetoothCacheMode;
+    typedef enum BluetoothError BluetoothError;
+
+    runtimeclass BluetoothLEDevice;
+    runtimeclass BluetoothDeviceId;
+}
+
+namespace Windows.Devices.Bluetooth.GenericAttributeProfile {
+    typedef enum GattCommunicationStatus GattCommunicationStatus;
+    typedef enum GattCharacteristicProperties GattCharacteristicProperties;
+    typedef enum GattProtectionLevel GattProtectionLevel;
+    typedef enum GattWriteOption GattWriteOption;
+    typedef enum GattClientCharacteristicConfigurationDescriptorValue GattClientCharacteristicConfigurationDescriptorValue;
+    typedef enum GattSharingMode GattSharingMode;
+    typedef enum GattOpenStatus GattOpenStatus;
+    typedef enum GattSessionStatus GattSessionStatus;
+
+    interface IGattDeviceService;
+    interface IGattDeviceService2;
+    interface IGattDeviceService3;
+    interface IGattDeviceServiceStatics;
+    interface IGattDeviceServiceStatics2;
+    interface IGattDeviceServicesResult;
+    interface IGattSession;
+    interface IGattSessionStatusChangedEventArgs;
+    interface IGattSessionStatics;
+    interface IGattCharacteristic;
+    interface IGattCharacteristic2;
+    interface IGattCharacteristic3;
+    interface IGattCharacteristicStatics;
+    interface IGattDescriptorsResult;
+    interface IGattDescriptor;
+    interface IGattDescriptor2;
+    interface IGattDescriptorStatics;
+    interface IGattValueChangedEventArgs;
+    interface IGattReadResult;
+    interface IGattReadResult2;
+    interface IGattWriteResult;
+    interface IGattReadClientCharacteristicConfigurationDescriptorResult;
+    interface IGattReadClientCharacteristicConfigurationDescriptorResult2;
+    interface IGattPresentationFormat;
+    interface IGattPresentationFormatStatics;
+    interface IGattPresentationFormatStatics2;
+
+    runtimeclass GattDeviceService;
+    runtimeclass GattDeviceServicesResult;
+    runtimeclass GattSession;
+    runtimeclass GattSessionStatusChangedEventArgs;
+    runtimeclass GattCharacteristic;
+    runtimeclass GattDescriptorsResult;
+    runtimeclass GattDescriptor;
+    runtimeclass GattPresentationFormat;
+    runtimeclass GattValueChangedEventArgs;
+    runtimeclass GattWriteResult;
+    runtimeclass GattReadResult;
+    runtimeclass GattReadClientCharacteristicConfigurationDescriptorResult;
+    runtimeclass GattReadClientCharacteristicConfigurationDescriptorResult;
+    runtimeclass GattPresentationFormat;
+    runtimeclass GattCharacteristicsResult;
+
+    declare {
+        interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic *>;
+        interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic *>;
+        interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic *>;
+        interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor *>;
+        interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor *>;
+        interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor *>;
+        interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat *>;
+        interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat *>;
+        interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat *>;
+        interface Windows.Foundation.Collections.IIterator<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *>;
+        interface Windows.Foundation.Collections.IIterable<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *>;
+        interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult*>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult*>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Enumeration.DeviceAccessStatus>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceAccessStatus>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattOpenStatus>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattOpenStatus>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic *, Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession *, Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatusChangedEventArgs *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession *, IInspectable *>;
+        interface Windows.Foundation.IReference<BYTE>;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0)
+    ]
+    enum GattCommunicationStatus
+    {
+        Success = 0,
+        Unreachable = 1,
+        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
+        ProtocolError = 2,
+        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
+        AccessDenied = 3,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        flags
+    ]
+    enum GattCharacteristicProperties
+    {
+        None = 0x0000,
+        Broadcast = 0x0001,
+        Read = 0x0002,
+        WriteWithoutResponse = 0x0004,
+        Write = 0x0008,
+        Notify = 0x0010,
+        Indicate = 0x0020,
+        AuthenticatedSignedWrites = 0x0040,
+        ExtendedProperties  = 0x0080,
+        ReliableWrites = 0x0100,
+        WritableAuxiliaries = 0x0200,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0)
+    ]
+    enum GattProtectionLevel
+    {
+        Plain = 0,
+        AuthenticationRequired = 1,
+        EncryptionRequired = 2,
+        EncryptionAndAuthenticationRequired = 3,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0)
+    ]
+    enum GattWriteOption
+    {
+        WriteWithResponse = 0,
+        WriteWithoutResponse = 1,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0)
+    ]
+    enum GattClientCharacteristicConfigurationDescriptorValue
+    {
+        None = 0,
+        Notify = 1,
+        Indicate = 2,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0)
+    ]
+    enum GattSharingMode
+    {
+        Unspecified = 0,
+        Exclusive = 1,
+        SharedReadOnly = 2,
+        SharedReadAndWrite = 3,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0)
+    ]
+    enum GattOpenStatus
+    {
+        Unspecified = 0,
+        Success = 1,
+        AlreadyOpened = 2,
+        NotFound = 3,
+        SharingViolation = 4,
+        AccessDenied = 5,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0)
+    ]
+    enum GattSessionStatus
+    {
+        Closed = 0,
+        Active = 1,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService),
+        uuid(ac7b7c05-b33c-47cf-990f-6b8f5577df71)
+    ]
+    interface IGattDeviceService : IInspectable requires Windows.Foundation.IClosable
+    {
+        HRESULT GetCharacteristics([in] GUID uuid,
+                                   [out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic *> **value);
+        HRESULT GetIncludedServices([in] GUID uuid,
+                                    [out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *> **value);
+        [propget] HRESULT DeviceId([out, retval] HSTRING *value);
+        [propget] HRESULT Uuid([out, retval] GUID *value);
+        [propget] HRESULT AttributeHandle([out, retval] UINT16 *value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService),
+        uuid(fc54520b-0b0d-4708-bae0-9ffd9489bc59)
+    ]
+    interface IGattDeviceService2 : IInspectable requires Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService, Windows.Foundation.IClosable
+    {
+        [propget] HRESULT Device([out, retval] Windows.Devices.Bluetooth.BluetoothLEDevice **value);
+        [propget] HRESULT ParentServices([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *> **value);
+        HRESULT GetAllCharacteristics([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic *> **value);
+        HRESULT GetAllIncludedServices([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *> **value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService),
+        uuid(b293a950-0c53-437c-a9b3-5c3210c6e569),
+    ]
+    interface IGattDeviceService3 : IInspectable
+    {
+        [propget] HRESULT DeviceAccessInformation([out, retval] Windows.Devices.Enumeration.DeviceAccessInformation **value);
+        [propget] HRESULT Session([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession **value);
+        [propget] HRESULT SharingMode([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSharingMode *value);
+        HRESULT RequestAccessAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Enumeration.DeviceAccessStatus> **async);
+        HRESULT OpenAsync([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSharingMode mode,
+                          [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattOpenStatus> **async);
+        [overload("GetCharacteristicsAsync")]
+        HRESULT GetCharacteristicsAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult *> **async);
+        [overload("GetCharacteristicsAsync")]
+        HRESULT GetCharacteristicsWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                                     [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult *> **async);
+        [overload("GetCharacteristicsForUuidAsync")]
+        HRESULT GetCharacteristicsForUuidAsync([in] GUID uuid,
+                                               [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult *> **async);
+        [overload("GetCharacteristicsForUuidAsync")]
+        HRESULT GetCharacteristicsForUuidWithCacheModeAsync([in] GUID uuid,
+                                                            [in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                                            [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult *> **async);
+        [overload("GetIncludedServicesAsync")]
+        HRESULT GetIncludedServicesAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult *> **async);
+        [overload("GetIncludedServicesAsync")]
+        HRESULT GetIncludedServicesWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                                      [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult *> **async);
+        [overload("GetIncludedServicesForUuidAsync")]
+        HRESULT GetIncludedServicesForUuidAsync([in] GUID uuid,
+                                                [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult *> **async);
+        [overload("GetIncludedServicesForUuidAsync")]
+        HRESULT GetIncludedServicesForUuidWithCacheModeAsync([in] GUID uuid,
+                                                             [in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                                             [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult *> **async);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService),
+        uuid(196d0022-faad-45dc-ae5b-2ac3184e84db)
+    ]
+    interface IGattDeviceServiceStatics : IInspectable
+    {
+        [overload("FromIdAsync")]
+        HRESULT FromIdAsync([in] HSTRING id,
+                            [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *> **async);
+        HRESULT GetDeviceSelectorFromUuid([in] GUID uuid, [out, retval] HSTRING *selector);
+        HRESULT GetDeviceSelectorFromShortId([in] UINT16 id, [out, retval] HSTRING *selector);
+        HRESULT ConvertShortIdToUuid([in] UINT16 id, [out, retval] GUID *value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService),
+        uuid(0604186e-24a6-4b0d-a2f2-30cc01545d25)
+    ]
+    interface IGattDeviceServiceStatics2 : IInspectable
+    {
+        [overload("FromIdAsync")]
+        HRESULT FromIdWithSharingModeAsync([in] HSTRING id,
+                                           [in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSharingMode mode,
+                                           [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *> **async);
+        [overload("GetDeviceSelectorForBluetoothDeviceId")]
+        HRESULT GetDeviceSelectorForBluetoothDeviceId([in] Windows.Devices.Bluetooth.BluetoothDeviceId *id,
+                                                      [out, retval] HSTRING *selector);
+        [overload("GetDeviceSelectorForBluetoothDeviceId")]
+        HRESULT GetDeviceSelectorForBluetoothDeviceIdWithCacheMode([in] Windows.Devices.Bluetooth.BluetoothDeviceId *id,
+                                                                   [in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                                                   [out, retval] HSTRING *selector);
+        [overload("GetDeviceSelectorForBluetoothDeviceIdAndUuid")]
+        HRESULT GetDeviceSelectorForBluetoothDeviceIdAndUuid([in] Windows.Devices.Bluetooth.BluetoothDeviceId *id,
+                                                             [in] GUID uuid,
+                                                             [out, retval] HSTRING *selector);
+        [overload("GetDeviceSelectorForBluetoothDeviceIdAndUuid")]
+        HRESULT GetDeviceSelectorForBluetoothDeviceIdAndUuidWithCacheMode([in] Windows.Devices.Bluetooth.BluetoothDeviceId *id,
+                                                                          [in] GUID uuid,
+                                                                          [in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                                                          [out, retval] HSTRING *selector);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceServiceStatics, Windows.Foundation.UniversalApiContract, 1.0),
+        static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceServiceStatics2, Windows.Foundation.UniversalApiContract, 4.0),
+        threading(both)
+    ]
+    runtimeclass GattDeviceService
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService;
+        interface Windows.Foundation.IClosable;
+        [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService2;
+        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceService3;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceServicesResult),
+        uuid(171dd3ee-016d-419d-838a-576cf475a3d8)
+    ]
+    interface IGattDeviceServicesResult : IInspectable
+    {
+        [propget] HRESULT Status([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus *value);
+        [propget] HRESULT ProtocolError([out, retval] Windows.Foundation.IReference<BYTE> **value);
+        [propget] HRESULT Services([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *> **value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        marshaling_behavior(agile),
+        threading(both)
+    ]
+    runtimeclass GattDeviceServicesResult
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDeviceServicesResult;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession),
+        uuid(d23b5143-e04e-4c24-999c-9c256f9856b1)
+    ]
+    interface IGattSession : IInspectable
+    {
+        [propget] HRESULT DeviceId([out, retval] Windows.Devices.Bluetooth.BluetoothDeviceId **value);
+        [propget] HRESULT CanMaintainConnection([out, retval] boolean *value);
+        [propput] HRESULT MaintainConnection([in] boolean value);
+        [propget] HRESULT MaintainConnection([out, retval] boolean *value);
+        [propget] HRESULT MaxPduSize([out, retval] UINT16 * value);
+        [propget] HRESULT SessionStatus([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatus *value);
+        [eventadd] HRESULT MaxPduSizeChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession *, IInspectable *> *handler,
+                                             [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT MaxPduSizeChanged([in] EventRegistrationToken token);
+        [eventadd] HRESULT SessionStatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession *, Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatusChangedEventArgs *> *handler,
+                                                [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT SessionStatusChanged([in] EventRegistrationToken token);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession),
+        uuid(2e65b95c-539f-4db7-82a8-73bdbbf73ebf)
+    ]
+    interface IGattSessionStatics : IInspectable
+    {
+        HRESULT FromDeviceIdAsync([in] Windows.Devices.Bluetooth.BluetoothDeviceId *id,
+                                  [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattSession *> **async);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattSessionStatics, Windows.Foundation.UniversalApiContract, 4.0),
+        threading(both)
+    ]
+    runtimeclass GattSession
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattSession;
+        interface Windows.Foundation.IClosable;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatusChangedEventArgs),
+        uuid(7605b72e-837f-404c-ab34-3163f39ddf32)
+    ]
+    interface IGattSessionStatusChangedEventArgs : IInspectable
+    {
+        [propget] HRESULT Error([out, retval] Windows.Devices.Bluetooth.BluetoothError *value);
+        [propget] HRESULT Status([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattSessionStatus *value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        marshaling_behavior(agile),
+        threading(both)
+    ]
+    runtimeclass GattSessionStatusChangedEventArgs
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattSessionStatusChangedEventArgs;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic),
+        uuid(59cb50c1-5934-4f68-a198-eb864fa44e6b),
+    ]
+    interface IGattCharacteristic : IInspectable
+    {
+        HRESULT GetDescriptors([in] GUID uuid,
+                               [out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor *> **value);
+        [propget] HRESULT CharacteristicProperties([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicProperties *value);
+        [propget] HRESULT ProtectionLevel([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel *value);
+        [propput] HRESULT ProtectionLevel([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel value);
+        [propget] HRESULT UserDescription([out, retval] HSTRING *value);
+        [propget] HRESULT Uuid([out, retval] GUID *value);
+        [propget] HRESULT AttributeHandle([out, retval] UINT16 *value);
+        [propget] HRESULT PresentationFormats([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat *> **value);
+        [overload("ReadValueAsync")]
+        HRESULT ReadValueAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult *> **value);
+        [overload("ReadValueAsync")]
+        HRESULT ReadValueWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                                                         [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult *> **value);
+        [overload("WriteValueAsync")]
+        HRESULT WriteValueAsync([in] Windows.Storage.Streams.IBuffer *value,
+                                [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus> **async);
+        [overload("WriteValueAsync")]
+        HRESULT WriteValueWithOptionAsync([in] Windows.Storage.Streams.IBuffer *value,
+                                          [in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteOption opt,
+                                          [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus> **async);
+        HRESULT ReadClientCharacteristicConfigurationDescriptorAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult *> **async);
+        HRESULT WriteClientCharacteristicConfigurationDescriptorAsync([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientCharacteristicConfigurationDescriptorValue value,
+                                                                      [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus> **async);
+        [eventadd] HRESULT ValueChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic *, Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs *> *handler,
+                             [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT ValueChanged([in] EventRegistrationToken token);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic),
+        uuid(ae1ab578-ec06-4764-b780-9835a1d35d6e)
+    ]
+    interface IGattCharacteristic2 : IInspectable requires Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic
+    {
+        [propget] HRESULT Service([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService **value);
+        HRESULT GetAllDescriptors([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor *> **descriptors);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic),
+        uuid(3f3c663e-93d4-406b-b817-db81f8ed53b3)
+    ]
+    interface IGattCharacteristic3 : IInspectable
+    {
+        [overload("GetDescriptorsAsync")]
+        HRESULT GetDescriptorsAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult *> **async);
+        [overload("GetDescriptorsAsync")]
+        HRESULT GetDescriptorsWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                                 [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult *> **async);
+        [overload("GetDescriptorsForUuidAsync")]
+        HRESULT GetDescriptorsForUuidAsync([in] GUID uuid,
+                                           [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult *> **async);
+        [overload("GetDescriptorsForUuidAsync")]
+        HRESULT GetDescriptorsForUuidWithCacheModeAsync([in] GUID uuid,
+                                                        [in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                                        [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult *> **async);
+        [overload("WriteValueWithResultAsync")]
+        HRESULT WriteValueWithResultAsync([in] Windows.Storage.Streams.IBuffer *value,
+                                          [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult *> **async);
+        [overload("WriteValueWithResultAsync")]
+        HRESULT WriteValueWithResultAndOptionAsync([in] Windows.Storage.Streams.IBuffer *value,
+                                                   [in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteOption option,
+                                                   [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult *> **async);
+        HRESULT WriteClientCharacteristicConfigurationDescriptorWithResultAsync([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientCharacteristicConfigurationDescriptorValue value,
+                                                                                [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult *> **async);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic),
+        uuid(59cb50c3-5934-4f68-a198-eb864fa44e6b)
+    ]
+    interface IGattCharacteristicStatics : IInspectable
+    {
+        HRESULT ConvertShortIdToUuid([in] UINT16 id, [out, retval] GUID *uuid);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristicStatics, Windows.Foundation.UniversalApiContract, 1.0),
+        threading(both)
+    ]
+    runtimeclass GattCharacteristic
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic;
+        [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic2;
+        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristic3;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristicsResult),
+        uuid(1194945C-B257-4F3E-9DB7-F68BC9A9AEF2)
+    ]
+    interface IGattCharacteristicsResult : IInspectable
+    {
+        [propget] HRESULT Status([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus *value);
+        [propget] HRESULT ProtocolError([out, retval] Windows.Foundation.IReference<BYTE> **value);
+        [propget] HRESULT Characteristics([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic *> **value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        marshaling_behavior(agile),
+        threading(both)
+    ]
+    runtimeclass GattCharacteristicsResult
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattCharacteristicsResult;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor),
+        uuid(92055f2b-8084-4344-b4c2-284de19a8506)
+    ]
+    interface IGattDescriptor : IInspectable
+    {
+        [propget] HRESULT ProtectionLevel([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel *value);
+        [propput] HRESULT ProtectionLevel([in] Windows.Devices.Bluetooth.GenericAttributeProfile.GattProtectionLevel value);
+        [propget] HRESULT Uuid([out, retval] GUID *value);
+        [propget] HRESULT AttributeHandle([out, retval] UINT16 *value);
+        [overload("ReadValueAsync")]
+        HRESULT ReadValueAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult *> **async);
+        [overload("ReadValueAsync")]
+        HRESULT ReadValueWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode mode,
+                                            [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult *> **async);
+        HRESULT WriteValueAsync([in] Windows.Storage.Streams.IBuffer *value,
+                                [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus> **async);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor),
+        uuid(8f563d39-d630-406c-ba11-10cdd16b0e5e)
+    ]
+    interface IGattDescriptor2 : IInspectable
+    {
+        HRESULT WriteValueWithResultAsync([in] Windows.Storage.Streams.IBuffer *value,
+                                          [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult *> **async);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor),
+        uuid(92055f2d-8084-4344-b4c2-284de19a8506),
+    ]
+    interface IGattDescriptorStatics : IInspectable
+    {
+        HRESULT ConvertShortIdToUuid([in] UINT16 id, [out, retval] GUID *uuid);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptorStatics, Windows.Foundation.UniversalApiContract, 1.0),
+        threading(both),
+    ]
+    runtimeclass GattDescriptor
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptor;
+        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptor2;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptorsResult),
+        uuid(9bc091f3-95e7-4489-8d25-ff81955a57b9)
+    ]
+    interface IGattDescriptorsResult : IInspectable
+    {
+        [propget] HRESULT Status([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus *value);
+        [propget] HRESULT ProtocolError([out, retval] Windows.Foundation.IReference<BYTE> **value);
+        [propget] HRESULT Descriptors([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDescriptor *> **value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        marshaling_behavior(agile),
+        threading(both),
+    ]
+    runtimeclass GattDescriptorsResult
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattDescriptorsResult;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattValueChangedEventArgs),
+        uuid(d21bdb54-06e3-4ed8-a263-acfac8ba7313)
+    ]
+    interface IGattValueChangedEventArgs : IInspectable
+    {
+        [propget] HRESULT CharacteristicValue([out, retval] Windows.Storage.Streams.IBuffer **value);
+        [propget] HRESULT Timestamp([out, retval] Windows.Foundation.DateTime *value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        threading(both)
+    ]
+    runtimeclass GattValueChangedEventArgs
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattValueChangedEventArgs;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadResult),
+        uuid(63a66f08-1aea-4c4c-a50f-97bae474b348)
+    ]
+    interface IGattReadResult : IInspectable
+    {
+        [propget] HRESULT Status([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus *value);
+        [propget] HRESULT Value([out, retval] Windows.Storage.Streams.IBuffer **value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        threading(both)
+    ]
+    runtimeclass GattReadResult
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadResult;
+        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadResult2;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattWriteResult),
+        uuid(4991ddb1-cb2b-44f7-99fc-d29a2871dc9b)
+    ]
+    interface IGattWriteResult : IInspectable
+    {
+        [propget] HRESULT Status([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus* value);
+        [propget] HRESULT ProtocolError([out, retval] Windows.Foundation.IReference<BYTE>** value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        threading(both)
+    ]
+    runtimeclass GattWriteResult
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattWriteResult;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult),
+        uuid(63a66f09-1aea-4c4c-a50f-97bae474b348)
+    ]
+
+    interface IGattReadClientCharacteristicConfigurationDescriptorResult : IInspectable
+    {
+        [propget] HRESULT Status([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattCommunicationStatus *value);
+        [propget] HRESULT ClientCharacteristicConfigurationDescriptor([out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattClientCharacteristicConfigurationDescriptorValue *value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattReadClientCharacteristicConfigurationDescriptorResult),
+        uuid(1bf1a59d-ba4d-4622-8651-f4ee150d0a5d)
+    ]
+    interface IGattReadClientCharacteristicConfigurationDescriptorResult2 : IInspectable
+    {
+        [propget] HRESULT ProtocolError([out, retval] Windows.Foundation.IReference<BYTE>** value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        threading(both)
+    ]
+    runtimeclass GattReadClientCharacteristicConfigurationDescriptorResult
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadClientCharacteristicConfigurationDescriptorResult;
+        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattReadClientCharacteristicConfigurationDescriptorResult2;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.GenericAttributeProfile.GattPresentationFormat),
+        uuid(196d0021-faad-45dc-ae5b-2ac3184e84db)
+    ]
+    interface IGattPresentationFormat : IInspectable
+    {
+        [propget] HRESULT FormatType([out, retval] BYTE *value);
+        [propget] HRESULT Exponent([out, retval] INT32 *value);
+        [propget] HRESULT Unit([out, retval] UINT16 *value);
+        [propget] HRESULT Namespace([out, retval] BYTE *value);
+        [propget] HRESULT Description([out, retval] UINT16 *value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormatStatics, Windows.Foundation.UniversalApiContract, 1.0),
+        static(Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormatStatics2, Windows.Foundation.UniversalApiContract, 4.0),
+        threading(both)
+    ]
+    runtimeclass GattPresentationFormat
+    {
+        [default] interface Windows.Devices.Bluetooth.GenericAttributeProfile.IGattPresentationFormat;
+    }
+}
diff --git a/mingw-w64-headers/include/windows.devices.bluetooth.h b/mingw-w64-headers/include/windows.devices.bluetooth.h
index e800552..d68374a 100644
--- a/mingw-w64-headers/include/windows.devices.bluetooth.h
+++ b/mingw-w64-headers/include/windows.devices.bluetooth.h
@@ -69,6 +69,210 @@
 #endif /* defined __cplusplus */
 #endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothAdapter_FWD_DEFINED__ */
 
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice ABI::Windows::Devices::Bluetooth::IBluetoothClassOfDevice
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothClassOfDevice;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics ABI::Windows::Devices::Bluetooth::IBluetoothClassOfDeviceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothClassOfDeviceStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothClassOfDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothClassOfDevice_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                class BluetoothClassOfDevice;
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothClassOfDevice __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothClassOfDevice;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothClassOfDevice_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice ABI::Windows::Devices::Bluetooth::IBluetoothDevice
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDevice;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics ABI::Windows::Devices::Bluetooth::IBluetoothDeviceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDeviceStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDevice_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                class BluetoothDevice;
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDevice __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDevice;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDevice_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId ABI::Windows::Devices::Bluetooth::IBluetoothDeviceId
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDeviceId;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics ABI::Windows::Devices::Bluetooth::IBluetoothDeviceIdStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDeviceIdStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDeviceId_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDeviceId_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                class BluetoothDeviceId;
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDeviceId __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDeviceId;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothDeviceId_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDevice;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics ABI::Windows::Devices::Bluetooth::IBluetoothLEDeviceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDeviceStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothLEDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothLEDevice_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                class BluetoothLEDevice;
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothLEDevice __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothLEDevice;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothLEDevice_FWD_DEFINED__ */
+
 #ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothAdapter_FWD_DEFINED__
 #define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothAdapter_FWD_DEFINED__
 typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothAdapter __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothAdapter;
@@ -85,6 +289,78 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice*,IInspectable* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*,IInspectable* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Storage::Streams::IBuffer* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
 /* Headers for imported files */
 
 #include <inspectable.h>
@@ -92,14 +368,423 @@
 #include <eventtoken.h>
 #include <windowscontracts.h>
 #include <windows.foundation.h>
+#include <windows.devices.bluetooth.genericattributeprofile.h>
+#include <windows.devices.bluetooth.rfcomm.h>
 #include <windows.devices.enumeration.h>
 #include <windows.devices.radios.h>
+#include <windows.networking.h>
 #include <windows.storage.streams.h>
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0xe0000
+#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                enum BluetoothCacheMode {
+                    BluetoothCacheMode_Cached = 0,
+                    BluetoothCacheMode_Uncached = 1
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode {
+    BluetoothCacheMode_Cached = 0,
+    BluetoothCacheMode_Uncached = 1
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define BluetoothCacheMode __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                enum BluetoothConnectionStatus {
+                    BluetoothConnectionStatus_Disconnected = 0,
+                    BluetoothConnectionStatus_Connected = 1
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus {
+    BluetoothConnectionStatus_Disconnected = 0,
+    BluetoothConnectionStatus_Connected = 1
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define BluetoothConnectionStatus __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                enum BluetoothMajorClass {
+                    BluetoothMajorClass_Miscellaneous = 0,
+                    BluetoothMajorClass_Computer = 1,
+                    BluetoothMajorClass_Phone = 2,
+                    BluetoothMajorClass_NetworkAccessPoint = 3,
+                    BluetoothMajorClass_AudioVideo = 4,
+                    BluetoothMajorClass_Peripheral = 5,
+                    BluetoothMajorClass_Imaging = 6,
+                    BluetoothMajorClass_Wearable = 7,
+                    BluetoothMajorClass_Toy = 8,
+                    BluetoothMajorClass_Health = 9
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass {
+    BluetoothMajorClass_Miscellaneous = 0,
+    BluetoothMajorClass_Computer = 1,
+    BluetoothMajorClass_Phone = 2,
+    BluetoothMajorClass_NetworkAccessPoint = 3,
+    BluetoothMajorClass_AudioVideo = 4,
+    BluetoothMajorClass_Peripheral = 5,
+    BluetoothMajorClass_Imaging = 6,
+    BluetoothMajorClass_Wearable = 7,
+    BluetoothMajorClass_Toy = 8,
+    BluetoothMajorClass_Health = 9
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define BluetoothMajorClass __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                enum BluetoothMinorClass {
+                    BluetoothMinorClass_Uncategorized = 0,
+                    BluetoothMinorClass_ComputerDesktop = 1,
+                    BluetoothMinorClass_ComputerServer = 2,
+                    BluetoothMinorClass_ComputerLaptop = 3,
+                    BluetoothMinorClass_ComputerHandheld = 4,
+                    BluetoothMinorClass_ComputerPalmSize = 5,
+                    BluetoothMinorClass_ComputerWearable = 6,
+                    BluetoothMinorClass_ComputerTablet = 7,
+                    BluetoothMinorClass_PhoneCellular = 1,
+                    BluetoothMinorClass_PhoneCordless = 2,
+                    BluetoothMinorClass_PhoneSmartPhone = 3,
+                    BluetoothMinorClass_PhoneWired = 4,
+                    BluetoothMinorClass_PhoneIsdn = 5,
+                    BluetoothMinorClass_NetworkFullyAvailable = 0,
+                    BluetoothMinorClass_NetworkUsed01To17Percent = 8,
+                    BluetoothMinorClass_NetworkUsed17To33Percent = 16,
+                    BluetoothMinorClass_NetworkUsed33To50Percent = 24,
+                    BluetoothMinorClass_NetworkUsed50To67Percent = 32,
+                    BluetoothMinorClass_NetworkUsed67To83Percent = 40,
+                    BluetoothMinorClass_NetworkUsed83To99Percent = 48,
+                    BluetoothMinorClass_NetworkNoServiceAvailable = 56,
+                    BluetoothMinorClass_AudioVideoWearableHeadset = 1,
+                    BluetoothMinorClass_AudioVideoHandsFree = 2,
+                    BluetoothMinorClass_AudioVideoMicrophone = 4,
+                    BluetoothMinorClass_AudioVideoLoudspeaker = 5,
+                    BluetoothMinorClass_AudioVideoHeadphones = 6,
+                    BluetoothMinorClass_AudioVideoPortableAudio = 7,
+                    BluetoothMinorClass_AudioVideoCarAudio = 8,
+                    BluetoothMinorClass_AudioVideoSetTopBox = 9,
+                    BluetoothMinorClass_AudioVideoHifiAudioDevice = 10,
+                    BluetoothMinorClass_AudioVideoVcr = 11,
+                    BluetoothMinorClass_AudioVideoVideoCamera = 12,
+                    BluetoothMinorClass_AudioVideoCamcorder = 13,
+                    BluetoothMinorClass_AudioVideoVideoMonitor = 14,
+                    BluetoothMinorClass_AudioVideoVideoDisplayAndLoudspeaker = 15,
+                    BluetoothMinorClass_AudioVideoVideoConferencing = 16,
+                    BluetoothMinorClass_AudioVideoGamingOrToy = 18,
+                    BluetoothMinorClass_PeripheralJoystick = 1,
+                    BluetoothMinorClass_PeripheralGamepad = 2,
+                    BluetoothMinorClass_PeripheralRemoteControl = 3,
+                    BluetoothMinorClass_PeripheralSensing = 4,
+                    BluetoothMinorClass_PeripheralDigitizerTablet = 5,
+                    BluetoothMinorClass_PeripheralCardReader = 6,
+                    BluetoothMinorClass_PeripheralDigitalPen = 7,
+                    BluetoothMinorClass_PeripheralHandheldScanner = 8,
+                    BluetoothMinorClass_PeripheralHandheldGesture = 9,
+                    BluetoothMinorClass_WearableWristwatch = 1,
+                    BluetoothMinorClass_WearablePager = 2,
+                    BluetoothMinorClass_WearableJacket = 3,
+                    BluetoothMinorClass_WearableHelmet = 4,
+                    BluetoothMinorClass_WearableGlasses = 5,
+                    BluetoothMinorClass_ToyRobot = 1,
+                    BluetoothMinorClass_ToyVehicle = 2,
+                    BluetoothMinorClass_ToyDoll = 3,
+                    BluetoothMinorClass_ToyController = 4,
+                    BluetoothMinorClass_ToyGame = 5,
+                    BluetoothMinorClass_HealthBloodPressureMonitor = 1,
+                    BluetoothMinorClass_HealthThermometer = 2,
+                    BluetoothMinorClass_HealthWeighingScale = 3,
+                    BluetoothMinorClass_HealthGlucoseMeter = 4,
+                    BluetoothMinorClass_HealthPulseOximeter = 5,
+                    BluetoothMinorClass_HealthHeartRateMonitor = 6,
+                    BluetoothMinorClass_HealthHealthDataDisplay = 7,
+                    BluetoothMinorClass_HealthStepCounter = 8,
+                    BluetoothMinorClass_HealthBodyCompositionAnalyzer = 9,
+                    BluetoothMinorClass_HealthPeakFlowMonitor = 10,
+                    BluetoothMinorClass_HealthMedicationMonitor = 11,
+                    BluetoothMinorClass_HealthKneeProsthesis = 12,
+                    BluetoothMinorClass_HealthAnkleProsthesis = 13,
+                    BluetoothMinorClass_HealthGenericHealthManager = 14,
+                    BluetoothMinorClass_HealthPersonalMobilityDevice = 15
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass {
+    BluetoothMinorClass_Uncategorized = 0,
+    BluetoothMinorClass_ComputerDesktop = 1,
+    BluetoothMinorClass_ComputerServer = 2,
+    BluetoothMinorClass_ComputerLaptop = 3,
+    BluetoothMinorClass_ComputerHandheld = 4,
+    BluetoothMinorClass_ComputerPalmSize = 5,
+    BluetoothMinorClass_ComputerWearable = 6,
+    BluetoothMinorClass_ComputerTablet = 7,
+    BluetoothMinorClass_PhoneCellular = 1,
+    BluetoothMinorClass_PhoneCordless = 2,
+    BluetoothMinorClass_PhoneSmartPhone = 3,
+    BluetoothMinorClass_PhoneWired = 4,
+    BluetoothMinorClass_PhoneIsdn = 5,
+    BluetoothMinorClass_NetworkFullyAvailable = 0,
+    BluetoothMinorClass_NetworkUsed01To17Percent = 8,
+    BluetoothMinorClass_NetworkUsed17To33Percent = 16,
+    BluetoothMinorClass_NetworkUsed33To50Percent = 24,
+    BluetoothMinorClass_NetworkUsed50To67Percent = 32,
+    BluetoothMinorClass_NetworkUsed67To83Percent = 40,
+    BluetoothMinorClass_NetworkUsed83To99Percent = 48,
+    BluetoothMinorClass_NetworkNoServiceAvailable = 56,
+    BluetoothMinorClass_AudioVideoWearableHeadset = 1,
+    BluetoothMinorClass_AudioVideoHandsFree = 2,
+    BluetoothMinorClass_AudioVideoMicrophone = 4,
+    BluetoothMinorClass_AudioVideoLoudspeaker = 5,
+    BluetoothMinorClass_AudioVideoHeadphones = 6,
+    BluetoothMinorClass_AudioVideoPortableAudio = 7,
+    BluetoothMinorClass_AudioVideoCarAudio = 8,
+    BluetoothMinorClass_AudioVideoSetTopBox = 9,
+    BluetoothMinorClass_AudioVideoHifiAudioDevice = 10,
+    BluetoothMinorClass_AudioVideoVcr = 11,
+    BluetoothMinorClass_AudioVideoVideoCamera = 12,
+    BluetoothMinorClass_AudioVideoCamcorder = 13,
+    BluetoothMinorClass_AudioVideoVideoMonitor = 14,
+    BluetoothMinorClass_AudioVideoVideoDisplayAndLoudspeaker = 15,
+    BluetoothMinorClass_AudioVideoVideoConferencing = 16,
+    BluetoothMinorClass_AudioVideoGamingOrToy = 18,
+    BluetoothMinorClass_PeripheralJoystick = 1,
+    BluetoothMinorClass_PeripheralGamepad = 2,
+    BluetoothMinorClass_PeripheralRemoteControl = 3,
+    BluetoothMinorClass_PeripheralSensing = 4,
+    BluetoothMinorClass_PeripheralDigitizerTablet = 5,
+    BluetoothMinorClass_PeripheralCardReader = 6,
+    BluetoothMinorClass_PeripheralDigitalPen = 7,
+    BluetoothMinorClass_PeripheralHandheldScanner = 8,
+    BluetoothMinorClass_PeripheralHandheldGesture = 9,
+    BluetoothMinorClass_WearableWristwatch = 1,
+    BluetoothMinorClass_WearablePager = 2,
+    BluetoothMinorClass_WearableJacket = 3,
+    BluetoothMinorClass_WearableHelmet = 4,
+    BluetoothMinorClass_WearableGlasses = 5,
+    BluetoothMinorClass_ToyRobot = 1,
+    BluetoothMinorClass_ToyVehicle = 2,
+    BluetoothMinorClass_ToyDoll = 3,
+    BluetoothMinorClass_ToyController = 4,
+    BluetoothMinorClass_ToyGame = 5,
+    BluetoothMinorClass_HealthBloodPressureMonitor = 1,
+    BluetoothMinorClass_HealthThermometer = 2,
+    BluetoothMinorClass_HealthWeighingScale = 3,
+    BluetoothMinorClass_HealthGlucoseMeter = 4,
+    BluetoothMinorClass_HealthPulseOximeter = 5,
+    BluetoothMinorClass_HealthHeartRateMonitor = 6,
+    BluetoothMinorClass_HealthHealthDataDisplay = 7,
+    BluetoothMinorClass_HealthStepCounter = 8,
+    BluetoothMinorClass_HealthBodyCompositionAnalyzer = 9,
+    BluetoothMinorClass_HealthPeakFlowMonitor = 10,
+    BluetoothMinorClass_HealthMedicationMonitor = 11,
+    BluetoothMinorClass_HealthKneeProsthesis = 12,
+    BluetoothMinorClass_HealthAnkleProsthesis = 13,
+    BluetoothMinorClass_HealthGenericHealthManager = 14,
+    BluetoothMinorClass_HealthPersonalMobilityDevice = 15
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define BluetoothMinorClass __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                enum BluetoothServiceCapabilities {
+                    BluetoothServiceCapabilities_None = 0x0,
+                    BluetoothServiceCapabilities_LimitedDiscoverableMode = 0x1,
+                    BluetoothServiceCapabilities_PositioningService = 0x8,
+                    BluetoothServiceCapabilities_NetworkingService = 0x10,
+                    BluetoothServiceCapabilities_RenderingService = 0x20,
+                    BluetoothServiceCapabilities_CapturingService = 0x40,
+                    BluetoothServiceCapabilities_ObjectTransferService = 0x80,
+                    BluetoothServiceCapabilities_AudioService = 0x100,
+                    BluetoothServiceCapabilities_TelephoneService = 0x200,
+                    BluetoothServiceCapabilities_InformationService = 0x400
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities {
+    BluetoothServiceCapabilities_None = 0x0,
+    BluetoothServiceCapabilities_LimitedDiscoverableMode = 0x1,
+    BluetoothServiceCapabilities_PositioningService = 0x8,
+    BluetoothServiceCapabilities_NetworkingService = 0x10,
+    BluetoothServiceCapabilities_RenderingService = 0x20,
+    BluetoothServiceCapabilities_CapturingService = 0x40,
+    BluetoothServiceCapabilities_ObjectTransferService = 0x80,
+    BluetoothServiceCapabilities_AudioService = 0x100,
+    BluetoothServiceCapabilities_TelephoneService = 0x200,
+    BluetoothServiceCapabilities_InformationService = 0x400
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define BluetoothServiceCapabilities __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                enum BluetoothError {
+                    BluetoothError_Success = 0,
+                    BluetoothError_RadioNotAvailable = 1,
+                    BluetoothError_ResourceInUse = 2,
+                    BluetoothError_DeviceNotConnected = 3,
+                    BluetoothError_OtherError = 4,
+                    BluetoothError_DisabledByPolicy = 5,
+                    BluetoothError_NotSupported = 6,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x20000
+                    BluetoothError_DisabledByUser = 7,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x20000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000
+                    BluetoothError_ConsentRequired = 8,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+                    BluetoothError_TransportNotSupported = 9
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError {
+    BluetoothError_Success = 0,
+    BluetoothError_RadioNotAvailable = 1,
+    BluetoothError_ResourceInUse = 2,
+    BluetoothError_DeviceNotConnected = 3,
+    BluetoothError_OtherError = 4,
+    BluetoothError_DisabledByPolicy = 5,
+    BluetoothError_NotSupported = 6,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x20000
+    BluetoothError_DisabledByUser = 7,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x20000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000
+    BluetoothError_ConsentRequired = 8,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x30000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+    BluetoothError_TransportNotSupported = 9
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define BluetoothError __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothError;
+#endif /* __cplusplus */
+
 #ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothAdapter_FWD_DEFINED__
 #define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothAdapter_FWD_DEFINED__
 typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothAdapter __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothAdapter;
@@ -168,6 +853,329 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice ABI::Windows::Devices::Bluetooth::IBluetoothClassOfDevice
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothClassOfDevice;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics ABI::Windows::Devices::Bluetooth::IBluetoothClassOfDeviceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothClassOfDeviceStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice ABI::Windows::Devices::Bluetooth::IBluetoothDevice
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDevice;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice2 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice2 ABI::Windows::Devices::Bluetooth::IBluetoothDevice2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDevice2;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice3_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice3_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice3 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice3;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice3 ABI::Windows::Devices::Bluetooth::IBluetoothDevice3
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDevice3;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice4_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice4_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice4 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice4;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice4 ABI::Windows::Devices::Bluetooth::IBluetoothDevice4
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDevice4;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice5_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice5_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice5 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice5;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice5 ABI::Windows::Devices::Bluetooth::IBluetoothDevice5
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDevice5;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics ABI::Windows::Devices::Bluetooth::IBluetoothDeviceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDeviceStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics2 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics2 ABI::Windows::Devices::Bluetooth::IBluetoothDeviceStatics2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDeviceStatics2;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId ABI::Windows::Devices::Bluetooth::IBluetoothDeviceId
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDeviceId;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics ABI::Windows::Devices::Bluetooth::IBluetoothDeviceIdStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothDeviceIdStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDevice;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice2 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice2 ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDevice2;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice3_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice3_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice3 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice3;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice3 ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice3
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDevice3;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice4_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice4_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice4 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice4;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice4 ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice4
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDevice4;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice5_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice5_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice5 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice5;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice5 ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice5
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDevice5;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice6_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice6_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice6 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice6;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice6 ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice6
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDevice6;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics ABI::Windows::Devices::Bluetooth::IBluetoothLEDeviceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDeviceStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics2 __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics2 ABI::Windows::Devices::Bluetooth::IBluetoothLEDeviceStatics2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                interface IBluetoothLEDeviceStatics2;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
 #ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothAdapter_FWD_DEFINED__
 #define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothAdapter_FWD_DEFINED__
 typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothAdapter __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothAdapter;
@@ -176,13 +1184,49 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Storage::Streams::IBuffer* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* >
+#endif /* __cplusplus */
+#endif
+
 /*****************************************************************************
  * IBluetoothAdapter interface
  */
-#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
-#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0xe0000
-#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
-
 #if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
 #ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothAdapter_INTERFACE_DEFINED__
 #define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothAdapter_INTERFACE_DEFINED__
@@ -563,6 +1607,1548 @@
 #endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
 
 /*****************************************************************************
+ * IBluetoothClassOfDevice interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice, 0xd640227e, 0xd7d7, 0x4661, 0x94,0x54, 0x65,0x03,0x9c,0xa1,0x7a,0x2b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                MIDL_INTERFACE("d640227e-d7d7-4661-9454-65039ca17a2b")
+                IBluetoothClassOfDevice : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_RawValue(
+                        UINT32 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_MajorClass(
+                        ABI::Windows::Devices::Bluetooth::BluetoothMajorClass *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_MinorClass(
+                        ABI::Windows::Devices::Bluetooth::BluetoothMinorClass *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_ServiceCapabilities(
+                        ABI::Windows::Devices::Bluetooth::BluetoothServiceCapabilities *value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice, 0xd640227e, 0xd7d7, 0x4661, 0x94,0x54, 0x65,0x03,0x9c,0xa1,0x7a,0x2b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This,
+        TrustLevel *trustLevel);
+
+    /*** IBluetoothClassOfDevice methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_RawValue)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_MajorClass)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_MinorClass)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ServiceCapabilities)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IBluetoothClassOfDevice methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_RawValue(This,value) (This)->lpVtbl->get_RawValue(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_MajorClass(This,value) (This)->lpVtbl->get_MajorClass(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_MinorClass(This,value) (This)->lpVtbl->get_MinorClass(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_ServiceCapabilities(This,value) (This)->lpVtbl->get_ServiceCapabilities(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_Release(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IBluetoothClassOfDevice methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_RawValue(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This,UINT32 *value) {
+    return This->lpVtbl->get_RawValue(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_MajorClass(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass *value) {
+    return This->lpVtbl->get_MajorClass(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_MinorClass(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass *value) {
+    return This->lpVtbl->get_MinorClass(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_ServiceCapabilities(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities *value) {
+    return This->lpVtbl->get_ServiceCapabilities(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define IID_IBluetoothClassOfDevice IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice
+#define IBluetoothClassOfDeviceVtbl __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceVtbl
+#define IBluetoothClassOfDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice
+#define IBluetoothClassOfDevice_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_QueryInterface
+#define IBluetoothClassOfDevice_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_AddRef
+#define IBluetoothClassOfDevice_Release __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_Release
+#define IBluetoothClassOfDevice_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_GetIids
+#define IBluetoothClassOfDevice_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_GetRuntimeClassName
+#define IBluetoothClassOfDevice_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_GetTrustLevel
+#define IBluetoothClassOfDevice_get_RawValue __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_RawValue
+#define IBluetoothClassOfDevice_get_MajorClass __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_MajorClass
+#define IBluetoothClassOfDevice_get_MinorClass __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_MinorClass
+#define IBluetoothClassOfDevice_get_ServiceCapabilities __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_get_ServiceCapabilities
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IBluetoothClassOfDeviceStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics, 0xe46135bd, 0x0fa2, 0x416c, 0x91,0xb4, 0xc1,0xe4,0x8c,0xa0,0x61,0xc1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                MIDL_INTERFACE("e46135bd-0fa2-416c-91b4-c1e48ca061c1")
+                IBluetoothClassOfDeviceStatics : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE FromRawValue(
+                        UINT32 raw_value,
+                        ABI::Windows::Devices::Bluetooth::IBluetoothClassOfDevice **cod) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE FromParts(
+                        ABI::Windows::Devices::Bluetooth::BluetoothMajorClass major,
+                        ABI::Windows::Devices::Bluetooth::BluetoothMinorClass minor,
+                        ABI::Windows::Devices::Bluetooth::BluetoothServiceCapabilities capabilities,
+                        ABI::Windows::Devices::Bluetooth::IBluetoothClassOfDevice **cod) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics, 0xe46135bd, 0x0fa2, 0x416c, 0x91,0xb4, 0xc1,0xe4,0x8c,0xa0,0x61,0xc1)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IBluetoothClassOfDeviceStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *FromRawValue)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics *This,
+        UINT32 raw_value,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice **cod);
+
+    HRESULT (STDMETHODCALLTYPE *FromParts)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass major,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass minor,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities capabilities,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice **cod);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStaticsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IBluetoothClassOfDeviceStatics methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FromRawValue(This,raw_value,cod) (This)->lpVtbl->FromRawValue(This,raw_value,cod)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FromParts(This,major,minor,capabilities,cod) (This)->lpVtbl->FromParts(This,major,minor,capabilities,cod)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_Release(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IBluetoothClassOfDeviceStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FromRawValue(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics* This,UINT32 raw_value,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice **cod) {
+    return This->lpVtbl->FromRawValue(This,raw_value,cod);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FromParts(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMajorClass major,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothMinorClass minor,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothServiceCapabilities capabilities,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice **cod) {
+    return This->lpVtbl->FromParts(This,major,minor,capabilities,cod);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define IID_IBluetoothClassOfDeviceStatics IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics
+#define IBluetoothClassOfDeviceStaticsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStaticsVtbl
+#define IBluetoothClassOfDeviceStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics
+#define IBluetoothClassOfDeviceStatics_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_QueryInterface
+#define IBluetoothClassOfDeviceStatics_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_AddRef
+#define IBluetoothClassOfDeviceStatics_Release __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_Release
+#define IBluetoothClassOfDeviceStatics_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_GetIids
+#define IBluetoothClassOfDeviceStatics_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_GetRuntimeClassName
+#define IBluetoothClassOfDeviceStatics_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_GetTrustLevel
+#define IBluetoothClassOfDeviceStatics_FromRawValue __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FromRawValue
+#define IBluetoothClassOfDeviceStatics_FromParts __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_FromParts
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDeviceStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.BluetoothClassOfDevice
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothClassOfDevice_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothClassOfDevice_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothClassOfDevice[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','B','l','u','e','t','o','o','t','h','C','l','a','s','s','O','f','D','e','v','i','c','e',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothClassOfDevice[] = L"Windows.Devices.Bluetooth.BluetoothClassOfDevice";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothClassOfDevice[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','B','l','u','e','t','o','o','t','h','C','l','a','s','s','O','f','D','e','v','i','c','e',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothClassOfDevice_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IBluetoothDevice interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice, 0x2335b156, 0x90d2, 0x4a04, 0xae,0xf5, 0x0e,0x20,0xb9,0xe6,0xb7,0x07);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                MIDL_INTERFACE("2335b156-90d2-4a04-aef5-0e20b9e6b707")
+                IBluetoothDevice : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_HostName(
+                        ABI::Windows::Networking::IHostName **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Name(
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_ClassOfDevice(
+                        ABI::Windows::Devices::Bluetooth::IBluetoothClassOfDevice **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_SdpRecords(
+                        ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Storage::Streams::IBuffer* > **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_RfcommServices(
+                        ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_ConnectionStatus(
+                        ABI::Windows::Devices::Bluetooth::BluetoothConnectionStatus *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_BluetoothAddress(
+                        UINT64 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE add_NameChanged(
+                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice*,IInspectable* > *handler,
+                        EventRegistrationToken *token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE remove_NameChanged(
+                        EventRegistrationToken token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE add_SdpRecordsChanged(
+                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice*,IInspectable* > *handler,
+                        EventRegistrationToken *token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE remove_SdpRecordsChanged(
+                        EventRegistrationToken token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE add_ConnectionStatusChanged(
+                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice*,IInspectable* > *handler,
+                        EventRegistrationToken *token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE remove_ConnectionStatusChanged(
+                        EventRegistrationToken token) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice, 0x2335b156, 0x90d2, 0x4a04, 0xae,0xf5, 0x0e,0x20,0xb9,0xe6,0xb7,0x07)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        TrustLevel *trustLevel);
+
+    /*** IBluetoothDevice methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_HostName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        __x_ABI_CWindows_CNetworking_CIHostName **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ClassOfDevice)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_SdpRecords)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_RfcommServices)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ConnectionStatus)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_BluetoothAddress)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        UINT64 *value);
+
+    HRESULT (STDMETHODCALLTYPE *add_NameChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_NameChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        EventRegistrationToken token);
+
+    HRESULT (STDMETHODCALLTYPE *add_SdpRecordsChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_SdpRecordsChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        EventRegistrationToken token);
+
+    HRESULT (STDMETHODCALLTYPE *add_ConnectionStatusChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_ConnectionStatusChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *This,
+        EventRegistrationToken token);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IBluetoothDevice methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_DeviceId(This,value) (This)->lpVtbl->get_DeviceId(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_HostName(This,value) (This)->lpVtbl->get_HostName(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_ClassOfDevice(This,value) (This)->lpVtbl->get_ClassOfDevice(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_SdpRecords(This,value) (This)->lpVtbl->get_SdpRecords(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_RfcommServices(This,value) (This)->lpVtbl->get_RfcommServices(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_ConnectionStatus(This,value) (This)->lpVtbl->get_ConnectionStatus(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_BluetoothAddress(This,value) (This)->lpVtbl->get_BluetoothAddress(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_add_NameChanged(This,handler,token) (This)->lpVtbl->add_NameChanged(This,handler,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_remove_NameChanged(This,token) (This)->lpVtbl->remove_NameChanged(This,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_add_SdpRecordsChanged(This,handler,token) (This)->lpVtbl->add_SdpRecordsChanged(This,handler,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_remove_SdpRecordsChanged(This,token) (This)->lpVtbl->remove_SdpRecordsChanged(This,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_add_ConnectionStatusChanged(This,handler,token) (This)->lpVtbl->add_ConnectionStatusChanged(This,handler,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_remove_ConnectionStatusChanged(This,token) (This)->lpVtbl->remove_ConnectionStatusChanged(This,token)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_Release(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IBluetoothDevice methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_DeviceId(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,HSTRING *value) {
+    return This->lpVtbl->get_DeviceId(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_HostName(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,__x_ABI_CWindows_CNetworking_CIHostName **value) {
+    return This->lpVtbl->get_HostName(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_Name(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,HSTRING *value) {
+    return This->lpVtbl->get_Name(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_ClassOfDevice(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothClassOfDevice **value) {
+    return This->lpVtbl->get_ClassOfDevice(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_SdpRecords(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer **value) {
+    return This->lpVtbl->get_SdpRecords(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_RfcommServices(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService **value) {
+    return This->lpVtbl->get_RfcommServices(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_ConnectionStatus(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus *value) {
+    return This->lpVtbl->get_ConnectionStatus(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_BluetoothAddress(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,UINT64 *value) {
+    return This->lpVtbl->get_BluetoothAddress(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_add_NameChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_NameChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_remove_NameChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_NameChanged(This,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_add_SdpRecordsChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_SdpRecordsChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_remove_SdpRecordsChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_SdpRecordsChanged(This,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_add_ConnectionStatusChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_ConnectionStatusChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_remove_ConnectionStatusChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_ConnectionStatusChanged(This,token);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define IID_IBluetoothDevice IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice
+#define IBluetoothDeviceVtbl __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceVtbl
+#define IBluetoothDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice
+#define IBluetoothDevice_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_QueryInterface
+#define IBluetoothDevice_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_AddRef
+#define IBluetoothDevice_Release __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_Release
+#define IBluetoothDevice_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_GetIids
+#define IBluetoothDevice_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_GetRuntimeClassName
+#define IBluetoothDevice_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_GetTrustLevel
+#define IBluetoothDevice_get_DeviceId __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_DeviceId
+#define IBluetoothDevice_get_HostName __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_HostName
+#define IBluetoothDevice_get_Name __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_Name
+#define IBluetoothDevice_get_ClassOfDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_ClassOfDevice
+#define IBluetoothDevice_get_SdpRecords __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_SdpRecords
+#define IBluetoothDevice_get_RfcommServices __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_RfcommServices
+#define IBluetoothDevice_get_ConnectionStatus __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_ConnectionStatus
+#define IBluetoothDevice_get_BluetoothAddress __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_get_BluetoothAddress
+#define IBluetoothDevice_add_NameChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_add_NameChanged
+#define IBluetoothDevice_remove_NameChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_remove_NameChanged
+#define IBluetoothDevice_add_SdpRecordsChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_add_SdpRecordsChanged
+#define IBluetoothDevice_remove_SdpRecordsChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_remove_SdpRecordsChanged
+#define IBluetoothDevice_add_ConnectionStatusChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_add_ConnectionStatusChanged
+#define IBluetoothDevice_remove_ConnectionStatusChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_remove_ConnectionStatusChanged
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IBluetoothDeviceStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics, 0x0991df51, 0x57db, 0x4725, 0xbb,0xd7, 0x84,0xf6,0x43,0x27,0xec,0x2c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                MIDL_INTERFACE("0991df51-57db-4725-bbd7-84f64327ec2c")
+                IBluetoothDeviceStatics : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE FromIdAsync(
+                        HSTRING id,
+                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > **operation) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE FromHostNameAsync(
+                        ABI::Windows::Networking::IHostName *name,
+                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > **operation) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE FromBluetoothAddressAsync(
+                        UINT64 address,
+                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > **operation) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE GetDeviceSelector(
+                        HSTRING *selector) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics, 0x0991df51, 0x57db, 0x4725, 0xbb,0xd7, 0x84,0xf6,0x43,0x27,0xec,0x2c)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IBluetoothDeviceStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *FromIdAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This,
+        HSTRING id,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice **operation);
+
+    HRESULT (STDMETHODCALLTYPE *FromHostNameAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This,
+        __x_ABI_CWindows_CNetworking_CIHostName *name,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice **operation);
+
+    HRESULT (STDMETHODCALLTYPE *FromBluetoothAddressAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This,
+        UINT64 address,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice **operation);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceSelector)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics *This,
+        HSTRING *selector);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStaticsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IBluetoothDeviceStatics methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FromIdAsync(This,id,operation) (This)->lpVtbl->FromIdAsync(This,id,operation)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FromHostNameAsync(This,name,operation) (This)->lpVtbl->FromHostNameAsync(This,name,operation)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FromBluetoothAddressAsync(This,address,operation) (This)->lpVtbl->FromBluetoothAddressAsync(This,address,operation)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetDeviceSelector(This,selector) (This)->lpVtbl->GetDeviceSelector(This,selector)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_Release(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IBluetoothDeviceStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FromIdAsync(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This,HSTRING id,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice **operation) {
+    return This->lpVtbl->FromIdAsync(This,id,operation);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FromHostNameAsync(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This,__x_ABI_CWindows_CNetworking_CIHostName *name,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice **operation) {
+    return This->lpVtbl->FromHostNameAsync(This,name,operation);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FromBluetoothAddressAsync(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This,UINT64 address,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice **operation) {
+    return This->lpVtbl->FromBluetoothAddressAsync(This,address,operation);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetDeviceSelector(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics* This,HSTRING *selector) {
+    return This->lpVtbl->GetDeviceSelector(This,selector);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define IID_IBluetoothDeviceStatics IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics
+#define IBluetoothDeviceStaticsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStaticsVtbl
+#define IBluetoothDeviceStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics
+#define IBluetoothDeviceStatics_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_QueryInterface
+#define IBluetoothDeviceStatics_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_AddRef
+#define IBluetoothDeviceStatics_Release __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_Release
+#define IBluetoothDeviceStatics_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetIids
+#define IBluetoothDeviceStatics_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetRuntimeClassName
+#define IBluetoothDeviceStatics_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetTrustLevel
+#define IBluetoothDeviceStatics_FromIdAsync __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FromIdAsync
+#define IBluetoothDeviceStatics_FromHostNameAsync __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FromHostNameAsync
+#define IBluetoothDeviceStatics_FromBluetoothAddressAsync __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_FromBluetoothAddressAsync
+#define IBluetoothDeviceStatics_GetDeviceSelector __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_GetDeviceSelector
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.BluetoothDevice
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothDevice_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothDevice_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothDevice[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','B','l','u','e','t','o','o','t','h','D','e','v','i','c','e',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothDevice[] = L"Windows.Devices.Bluetooth.BluetoothDevice";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothDevice[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','B','l','u','e','t','o','o','t','h','D','e','v','i','c','e',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothDevice_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IBluetoothDeviceId interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId, 0xc17949af, 0x57c1, 0x4642, 0xbc,0xce, 0xe6,0xc0,0x6b,0x20,0xae,0x76);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                MIDL_INTERFACE("c17949af-57c1-4642-bcce-e6c06b20ae76")
+                IBluetoothDeviceId : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_Id(
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_IsClassicDevice(
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_IsLowEnergyDevice(
+                        boolean *value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId, 0xc17949af, 0x57c1, 0x4642, 0xbc,0xce, 0xe6,0xc0,0x6b,0x20,0xae,0x76)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *This,
+        TrustLevel *trustLevel);
+
+    /*** IBluetoothDeviceId methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsClassicDevice)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsLowEnergyDevice)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId *This,
+        boolean *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IBluetoothDeviceId methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_get_Id(This,value) (This)->lpVtbl->get_Id(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_get_IsClassicDevice(This,value) (This)->lpVtbl->get_IsClassicDevice(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_get_IsLowEnergyDevice(This,value) (This)->lpVtbl->get_IsLowEnergyDevice(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_Release(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IBluetoothDeviceId methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_get_Id(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId* This,HSTRING *value) {
+    return This->lpVtbl->get_Id(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_get_IsClassicDevice(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId* This,boolean *value) {
+    return This->lpVtbl->get_IsClassicDevice(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_get_IsLowEnergyDevice(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId* This,boolean *value) {
+    return This->lpVtbl->get_IsLowEnergyDevice(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define IID_IBluetoothDeviceId IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId
+#define IBluetoothDeviceIdVtbl __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdVtbl
+#define IBluetoothDeviceId __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId
+#define IBluetoothDeviceId_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_QueryInterface
+#define IBluetoothDeviceId_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_AddRef
+#define IBluetoothDeviceId_Release __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_Release
+#define IBluetoothDeviceId_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_GetIids
+#define IBluetoothDeviceId_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_GetRuntimeClassName
+#define IBluetoothDeviceId_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_GetTrustLevel
+#define IBluetoothDeviceId_get_Id __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_get_Id
+#define IBluetoothDeviceId_get_IsClassicDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_get_IsClassicDevice
+#define IBluetoothDeviceId_get_IsLowEnergyDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_get_IsLowEnergyDevice
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IBluetoothDeviceIdStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics, 0xa7884e67, 0x3efb, 0x4f31, 0xbb,0xc2, 0x81,0x0e,0x09,0x97,0x74,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                MIDL_INTERFACE("a7884e67-3efb-4f31-bbc2-810e09977404")
+                IBluetoothDeviceIdStatics : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE FromId(
+                        HSTRING id,
+                        ABI::Windows::Devices::Bluetooth::IBluetoothDeviceId **result) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics, 0xa7884e67, 0x3efb, 0x4f31, 0xbb,0xc2, 0x81,0x0e,0x09,0x97,0x74,0x04)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IBluetoothDeviceIdStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *FromId)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics *This,
+        HSTRING id,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId **result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStaticsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IBluetoothDeviceIdStatics methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_FromId(This,id,result) (This)->lpVtbl->FromId(This,id,result)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_Release(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IBluetoothDeviceIdStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_FromId(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics* This,HSTRING id,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceId **result) {
+    return This->lpVtbl->FromId(This,id,result);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define IID_IBluetoothDeviceIdStatics IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics
+#define IBluetoothDeviceIdStaticsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStaticsVtbl
+#define IBluetoothDeviceIdStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics
+#define IBluetoothDeviceIdStatics_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_QueryInterface
+#define IBluetoothDeviceIdStatics_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_AddRef
+#define IBluetoothDeviceIdStatics_Release __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_Release
+#define IBluetoothDeviceIdStatics_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_GetIids
+#define IBluetoothDeviceIdStatics_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_GetRuntimeClassName
+#define IBluetoothDeviceIdStatics_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_GetTrustLevel
+#define IBluetoothDeviceIdStatics_FromId __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_FromId
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDeviceIdStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.BluetoothDeviceId
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothDeviceId_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothDeviceId_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothDeviceId[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','B','l','u','e','t','o','o','t','h','D','e','v','i','c','e','I','d',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothDeviceId[] = L"Windows.Devices.Bluetooth.BluetoothDeviceId";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothDeviceId[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','B','l','u','e','t','o','o','t','h','D','e','v','i','c','e','I','d',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothDeviceId_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x40000 */
+
+/*****************************************************************************
+ * IBluetoothLEDevice interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice, 0xb5ee2f7b, 0x4ad8, 0x4642, 0xac,0x48, 0x80,0xa0,0xb5,0x00,0xe8,0x87);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                MIDL_INTERFACE("b5ee2f7b-4ad8-4642-ac48-80a0b500e887")
+                IBluetoothLEDevice : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_DeviceId(
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Name(
+                        HSTRING *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_GattServices(
+                        ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_ConnectionStatus(
+                        ABI::Windows::Devices::Bluetooth::BluetoothConnectionStatus *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_BluetoothAddress(
+                        UINT64 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE GetGattService(
+                        GUID uuid,
+                        ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService **service) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE add_NameChanged(
+                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*,IInspectable* > *handler,
+                        EventRegistrationToken *token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE remove_NameChanged(
+                        EventRegistrationToken token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE add_GattServicesChanged(
+                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*,IInspectable* > *handler,
+                        EventRegistrationToken *token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE remove_GattServicesChanged(
+                        EventRegistrationToken token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE add_ConnectionStatusChanged(
+                        ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*,IInspectable* > *handler,
+                        EventRegistrationToken *token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE remove_ConnectionStatusChanged(
+                        EventRegistrationToken token) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice, 0xb5ee2f7b, 0x4ad8, 0x4642, 0xac,0x48, 0x80,0xa0,0xb5,0x00,0xe8,0x87)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        TrustLevel *trustLevel);
+
+    /*** IBluetoothLEDevice methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_DeviceId)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_GattServices)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ConnectionStatus)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_BluetoothAddress)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        UINT64 *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetGattService)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        GUID uuid,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **service);
+
+    HRESULT (STDMETHODCALLTYPE *add_NameChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_NameChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        EventRegistrationToken token);
+
+    HRESULT (STDMETHODCALLTYPE *add_GattServicesChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_GattServicesChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        EventRegistrationToken token);
+
+    HRESULT (STDMETHODCALLTYPE *add_ConnectionStatusChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_ConnectionStatusChanged)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *This,
+        EventRegistrationToken token);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IBluetoothLEDevice methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_DeviceId(This,value) (This)->lpVtbl->get_DeviceId(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_Name(This,value) (This)->lpVtbl->get_Name(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_GattServices(This,value) (This)->lpVtbl->get_GattServices(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_ConnectionStatus(This,value) (This)->lpVtbl->get_ConnectionStatus(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_BluetoothAddress(This,value) (This)->lpVtbl->get_BluetoothAddress(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetGattService(This,uuid,service) (This)->lpVtbl->GetGattService(This,uuid,service)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_add_NameChanged(This,handler,token) (This)->lpVtbl->add_NameChanged(This,handler,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_remove_NameChanged(This,token) (This)->lpVtbl->remove_NameChanged(This,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_add_GattServicesChanged(This,handler,token) (This)->lpVtbl->add_GattServicesChanged(This,handler,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_remove_GattServicesChanged(This,token) (This)->lpVtbl->remove_GattServicesChanged(This,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_add_ConnectionStatusChanged(This,handler,token) (This)->lpVtbl->add_ConnectionStatusChanged(This,handler,token)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_remove_ConnectionStatusChanged(This,token) (This)->lpVtbl->remove_ConnectionStatusChanged(This,token)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_Release(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IBluetoothLEDevice methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_DeviceId(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,HSTRING *value) {
+    return This->lpVtbl->get_DeviceId(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_Name(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,HSTRING *value) {
+    return This->lpVtbl->get_Name(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_GattServices(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService **value) {
+    return This->lpVtbl->get_GattServices(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_ConnectionStatus(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothConnectionStatus *value) {
+    return This->lpVtbl->get_ConnectionStatus(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_BluetoothAddress(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,UINT64 *value) {
+    return This->lpVtbl->get_BluetoothAddress(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetGattService(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,GUID uuid,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **service) {
+    return This->lpVtbl->GetGattService(This,uuid,service);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_add_NameChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_NameChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_remove_NameChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_NameChanged(This,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_add_GattServicesChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_GattServicesChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_remove_GattServicesChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_GattServicesChanged(This,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_add_ConnectionStatusChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_ConnectionStatusChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_remove_ConnectionStatusChanged(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_ConnectionStatusChanged(This,token);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define IID_IBluetoothLEDevice IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice
+#define IBluetoothLEDeviceVtbl __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceVtbl
+#define IBluetoothLEDevice __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice
+#define IBluetoothLEDevice_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_QueryInterface
+#define IBluetoothLEDevice_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_AddRef
+#define IBluetoothLEDevice_Release __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_Release
+#define IBluetoothLEDevice_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetIids
+#define IBluetoothLEDevice_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetRuntimeClassName
+#define IBluetoothLEDevice_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetTrustLevel
+#define IBluetoothLEDevice_get_DeviceId __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_DeviceId
+#define IBluetoothLEDevice_get_Name __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_Name
+#define IBluetoothLEDevice_get_GattServices __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_GattServices
+#define IBluetoothLEDevice_get_ConnectionStatus __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_ConnectionStatus
+#define IBluetoothLEDevice_get_BluetoothAddress __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_get_BluetoothAddress
+#define IBluetoothLEDevice_GetGattService __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_GetGattService
+#define IBluetoothLEDevice_add_NameChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_add_NameChanged
+#define IBluetoothLEDevice_remove_NameChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_remove_NameChanged
+#define IBluetoothLEDevice_add_GattServicesChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_add_GattServicesChanged
+#define IBluetoothLEDevice_remove_GattServicesChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_remove_GattServicesChanged
+#define IBluetoothLEDevice_add_ConnectionStatusChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_add_ConnectionStatusChanged
+#define IBluetoothLEDevice_remove_ConnectionStatusChanged __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_remove_ConnectionStatusChanged
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IBluetoothLEDeviceStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics, 0xc8cf1a19, 0xf0b6, 0x4bf0, 0x86,0x89, 0x41,0x30,0x3d,0xe2,0xd9,0xf4);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                MIDL_INTERFACE("c8cf1a19-f0b6-4bf0-8689-41303de2d9f4")
+                IBluetoothLEDeviceStatics : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE FromIdAsync(
+                        HSTRING id,
+                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > **async) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE FromBluetoothAddressAsync(
+                        UINT64 addr,
+                        ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > **async) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE GetDeviceSelector(
+                        HSTRING *result) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics, 0xc8cf1a19, 0xf0b6, 0x4bf0, 0x86,0x89, 0x41,0x30,0x3d,0xe2,0xd9,0xf4)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IBluetoothLEDeviceStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *FromIdAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics *This,
+        HSTRING id,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice **async);
+
+    HRESULT (STDMETHODCALLTYPE *FromBluetoothAddressAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics *This,
+        UINT64 addr,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice **async);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceSelector)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics *This,
+        HSTRING *result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStaticsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IBluetoothLEDeviceStatics methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FromIdAsync(This,id,async) (This)->lpVtbl->FromIdAsync(This,id,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FromBluetoothAddressAsync(This,addr,async) (This)->lpVtbl->FromBluetoothAddressAsync(This,addr,async)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetDeviceSelector(This,result) (This)->lpVtbl->GetDeviceSelector(This,result)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_Release(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IBluetoothLEDeviceStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FromIdAsync(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics* This,HSTRING id,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice **async) {
+    return This->lpVtbl->FromIdAsync(This,id,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FromBluetoothAddressAsync(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics* This,UINT64 addr,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice **async) {
+    return This->lpVtbl->FromBluetoothAddressAsync(This,addr,async);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetDeviceSelector(__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics* This,HSTRING *result) {
+    return This->lpVtbl->GetDeviceSelector(This,result);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define IID_IBluetoothLEDeviceStatics IID___x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics
+#define IBluetoothLEDeviceStaticsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStaticsVtbl
+#define IBluetoothLEDeviceStatics __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics
+#define IBluetoothLEDeviceStatics_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_QueryInterface
+#define IBluetoothLEDeviceStatics_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_AddRef
+#define IBluetoothLEDeviceStatics_Release __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_Release
+#define IBluetoothLEDeviceStatics_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetIids
+#define IBluetoothLEDeviceStatics_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetRuntimeClassName
+#define IBluetoothLEDeviceStatics_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetTrustLevel
+#define IBluetoothLEDeviceStatics_FromIdAsync __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FromIdAsync
+#define IBluetoothLEDeviceStatics_FromBluetoothAddressAsync __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_FromBluetoothAddressAsync
+#define IBluetoothLEDeviceStatics_GetDeviceSelector __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_GetDeviceSelector
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDeviceStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.BluetoothLEDevice
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothLEDevice_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothLEDevice_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothLEDevice[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','B','l','u','e','t','o','o','t','h','L','E','D','e','v','i','c','e',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothLEDevice[] = L"Windows.Devices.Bluetooth.BluetoothLEDevice";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_BluetoothLEDevice[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','B','l','u','e','t','o','o','t','h','L','E','D','e','v','i','c','e',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_BluetoothLEDevice_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
  * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothAdapter* > interface
  */
 #ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothAdapter_INTERFACE_DEFINED__
@@ -794,6 +3380,1125 @@
 
 #endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothAdapter_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice*,IInspectable* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable, 0xdb56ce1c, 0x5e9f, 0x5138, 0x92,0x27, 0xb1,0xa6,0x6d,0x60,0xbc,0x1b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("db56ce1c-5e9f-5138-9227-b1a66d60bc1b")
+            ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice*,IInspectable* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::BluetoothDevice*, ABI::Windows::Devices::Bluetooth::IBluetoothDevice* >, IInspectable* >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable, 0xdb56ce1c, 0x5e9f, 0x5138, 0x92,0x27, 0xb1,0xa6,0x6d,0x60,0xbc,0x1b)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectableVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *This);
+
+    /*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice*,IInspectable* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *sender,
+        IInspectable *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectableVtbl;
+
+interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectableVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice*,IInspectable* > methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_QueryInterface(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_AddRef(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_Release(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice*,IInspectable* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_Invoke(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice *sender,IInspectable *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_BluetoothDevice_IInspectable IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable
+#define ITypedEventHandler_BluetoothDevice_IInspectableVtbl __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectableVtbl
+#define ITypedEventHandler_BluetoothDevice_IInspectable __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable
+#define ITypedEventHandler_BluetoothDevice_IInspectable_QueryInterface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_QueryInterface
+#define ITypedEventHandler_BluetoothDevice_IInspectable_AddRef __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_AddRef
+#define ITypedEventHandler_BluetoothDevice_IInspectable_Release __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_Release
+#define ITypedEventHandler_BluetoothDevice_IInspectable_Invoke __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothDevice_IInspectable_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice, 0xb2e8cdd1, 0x66aa, 0x5892, 0x85,0xa3, 0x8f,0x0b,0x16,0x5e,0x43,0xfc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("b2e8cdd1-66aa-5892-85a3-8f0b165e43fc")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::BluetoothDevice*, ABI::Windows::Devices::Bluetooth::IBluetoothDevice* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice, 0xb2e8cdd1, 0x66aa, 0x5892, 0x85,0xa3, 0x8f,0x0b,0x16,0x5e,0x43,0xfc)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDeviceVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_BluetoothDevice IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice
+#define IAsyncOperationCompletedHandler_BluetoothDeviceVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDeviceVtbl
+#define IAsyncOperationCompletedHandler_BluetoothDevice __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice
+#define IAsyncOperationCompletedHandler_BluetoothDevice_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_QueryInterface
+#define IAsyncOperationCompletedHandler_BluetoothDevice_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_AddRef
+#define IAsyncOperationCompletedHandler_BluetoothDevice_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_Release
+#define IAsyncOperationCompletedHandler_BluetoothDevice_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice, 0xb58d8d19, 0x44bd, 0x5ac0, 0xa0,0xd6, 0x1b,0x50,0x80,0x0f,0x31,0x81);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("b58d8d19-44bd-5ac0-a0d6-1b50800f3181")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::BluetoothDevice*, ABI::Windows::Devices::Bluetooth::IBluetoothDevice* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice, 0xb58d8d19, 0x44bd, 0x5ac0, 0xa0,0xd6, 0x1b,0x50,0x80,0x0f,0x31,0x81)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDeviceVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothDevice* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothDevice **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothDevice **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_BluetoothDevice IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice
+#define IAsyncOperation_BluetoothDeviceVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDeviceVtbl
+#define IAsyncOperation_BluetoothDevice __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice
+#define IAsyncOperation_BluetoothDevice_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_QueryInterface
+#define IAsyncOperation_BluetoothDevice_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_AddRef
+#define IAsyncOperation_BluetoothDevice_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_Release
+#define IAsyncOperation_BluetoothDevice_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetIids
+#define IAsyncOperation_BluetoothDevice_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetRuntimeClassName
+#define IAsyncOperation_BluetoothDevice_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetTrustLevel
+#define IAsyncOperation_BluetoothDevice_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_put_Completed
+#define IAsyncOperation_BluetoothDevice_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_get_Completed
+#define IAsyncOperation_BluetoothDevice_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothDevice_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice, 0x9156b79f, 0xc54a, 0x5277, 0x8f,0x8b, 0xd2,0xcc,0x43,0xc7,0xe0,0x04);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("9156b79f-c54a-5277-8f8b-d2cc43c7e004")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*, ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice, 0x9156b79f, 0xc54a, 0x5277, 0x8f,0x8b, 0xd2,0xcc,0x43,0xc7,0xe0,0x04)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDeviceVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_BluetoothLEDevice IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice
+#define IAsyncOperationCompletedHandler_BluetoothLEDeviceVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDeviceVtbl
+#define IAsyncOperationCompletedHandler_BluetoothLEDevice __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice
+#define IAsyncOperationCompletedHandler_BluetoothLEDevice_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_QueryInterface
+#define IAsyncOperationCompletedHandler_BluetoothLEDevice_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_AddRef
+#define IAsyncOperationCompletedHandler_BluetoothLEDevice_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_Release
+#define IAsyncOperationCompletedHandler_BluetoothLEDevice_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice, 0x375f9d67, 0x74a2, 0x5f91, 0xa1,0x1d, 0x16,0x90,0x93,0x71,0x8d,0x41);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("375f9d67-74a2-5f91-a11d-169093718d41")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*, ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice, 0x375f9d67, 0x74a2, 0x5f91, 0xa1,0x1d, 0x16,0x90,0x93,0x71,0x8d,0x41)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDeviceVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_BluetoothLEDevice IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice
+#define IAsyncOperation_BluetoothLEDeviceVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDeviceVtbl
+#define IAsyncOperation_BluetoothLEDevice __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice
+#define IAsyncOperation_BluetoothLEDevice_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_QueryInterface
+#define IAsyncOperation_BluetoothLEDevice_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_AddRef
+#define IAsyncOperation_BluetoothLEDevice_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_Release
+#define IAsyncOperation_BluetoothLEDevice_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetIids
+#define IAsyncOperation_BluetoothLEDevice_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetRuntimeClassName
+#define IAsyncOperation_BluetoothLEDevice_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetTrustLevel
+#define IAsyncOperation_BluetoothLEDevice_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_put_Completed
+#define IAsyncOperation_BluetoothLEDevice_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_get_Completed
+#define IAsyncOperation_BluetoothLEDevice_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CBluetoothLEDevice_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*,IInspectable* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable, 0xa90661e2, 0x372e, 0x5d1e, 0xbb,0xbb, 0xb8,0xa2,0xce,0x0e,0x7c,0x4d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("a90661e2-372e-5d1e-bbbb-b8a2ce0e7c4d")
+            ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*,IInspectable* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*, ABI::Windows::Devices::Bluetooth::IBluetoothLEDevice* >, IInspectable* >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable, 0xa90661e2, 0x372e, 0x5d1e, 0xbb,0xbb, 0xb8,0xa2,0xce,0x0e,0x7c,0x4d)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectableVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *This);
+
+    /*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*,IInspectable* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *sender,
+        IInspectable *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectableVtbl;
+
+interface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectableVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*,IInspectable* > methods ***/
+#define __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_QueryInterface(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_AddRef(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_Release(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::Devices::Bluetooth::BluetoothLEDevice*,IInspectable* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_Invoke(__FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable* This,__x_ABI_CWindows_CDevices_CBluetooth_CIBluetoothLEDevice *sender,IInspectable *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_BluetoothLEDevice_IInspectable IID___FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable
+#define ITypedEventHandler_BluetoothLEDevice_IInspectableVtbl __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectableVtbl
+#define ITypedEventHandler_BluetoothLEDevice_IInspectable __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable
+#define ITypedEventHandler_BluetoothLEDevice_IInspectable_QueryInterface __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_QueryInterface
+#define ITypedEventHandler_BluetoothLEDevice_IInspectable_AddRef __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_AddRef
+#define ITypedEventHandler_BluetoothLEDevice_IInspectable_Release __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_Release
+#define ITypedEventHandler_BluetoothLEDevice_IInspectable_Invoke __FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CDevices__CBluetooth__CBluetoothLEDevice_IInspectable_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVectorView<ABI::Windows::Storage::Streams::IBuffer* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CStorage__CStreams__CIBuffer, 0xfd944562, 0x11d6, 0x5eab, 0xbd,0x72, 0x70,0x19,0x93,0xb6,0x8f,0xac);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("fd944562-11d6-5eab-bd72-701993b68fac")
+                IVectorView<ABI::Windows::Storage::Streams::IBuffer* > : IVectorView_impl<ABI::Windows::Storage::Streams::IBuffer* >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer, 0xfd944562, 0x11d6, 0x5eab, 0xbd,0x72, 0x70,0x19,0x93,0xb6,0x8f,0xac)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CStorage__CStreams__CIBufferVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This,
+        TrustLevel *trustLevel);
+
+    /*** IVectorView<ABI::Windows::Storage::Streams::IBuffer* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This,
+        UINT32 index,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer *element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIVectorView_1_Windows__CStorage__CStreams__CIBufferVtbl;
+
+interface __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer {
+    CONST_VTBL __FIVectorView_1_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::Storage::Streams::IBuffer* > methods ***/
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_QueryInterface(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_AddRef(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_Release(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetIids(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::Storage::Streams::IBuffer* > methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetAt(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,UINT32 index,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **value) {
+    return This->lpVtbl->GetAt(This,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_get_Size(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_IndexOf(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,__x_ABI_CWindows_CStorage_CStreams_CIBuffer *element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetMany(__FIVectorView_1_Windows__CStorage__CStreams__CIBuffer* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_IBuffer IID___FIVectorView_1_Windows__CStorage__CStreams__CIBuffer
+#define IVectorView_IBufferVtbl __FIVectorView_1_Windows__CStorage__CStreams__CIBufferVtbl
+#define IVectorView_IBuffer __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer
+#define IVectorView_IBuffer_QueryInterface __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_QueryInterface
+#define IVectorView_IBuffer_AddRef __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_AddRef
+#define IVectorView_IBuffer_Release __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_Release
+#define IVectorView_IBuffer_GetIids __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetIids
+#define IVectorView_IBuffer_GetRuntimeClassName __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName
+#define IVectorView_IBuffer_GetTrustLevel __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel
+#define IVectorView_IBuffer_GetAt __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetAt
+#define IVectorView_IBuffer_get_Size __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_get_Size
+#define IVectorView_IBuffer_IndexOf __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_IndexOf
+#define IVectorView_IBuffer_GetMany __FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIVectorView_1_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVectorView<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService, 0x97df6b82, 0xd15c, 0x597e, 0xba,0x69, 0x49,0x22,0x07,0xa1,0xc1,0x08);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("97df6b82-d15c-597e-ba69-492207a1c108")
+                IVectorView<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService*, ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceService* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService, 0x97df6b82, 0xd15c, 0x597e, 0xba,0x69, 0x49,0x22,0x07,0xa1,0xc1,0x08)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        TrustLevel *trustLevel);
+
+    /*** IVectorView<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        UINT32 index,
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl;
+
+interface __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService {
+    CONST_VTBL __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_QueryInterface(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_AddRef(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Release(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetIids(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetRuntimeClassName(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetTrustLevel(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetAt(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,UINT32 index,__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService **value) {
+    return This->lpVtbl->GetAt(This,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_get_Size(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_IndexOf(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetMany(__FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_RfcommDeviceService IID___FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService
+#define IVectorView_RfcommDeviceServiceVtbl __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl
+#define IVectorView_RfcommDeviceService __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService
+#define IVectorView_RfcommDeviceService_QueryInterface __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_QueryInterface
+#define IVectorView_RfcommDeviceService_AddRef __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_AddRef
+#define IVectorView_RfcommDeviceService_Release __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Release
+#define IVectorView_RfcommDeviceService_GetIids __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetIids
+#define IVectorView_RfcommDeviceService_GetRuntimeClassName __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetRuntimeClassName
+#define IVectorView_RfcommDeviceService_GetTrustLevel __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetTrustLevel
+#define IVectorView_RfcommDeviceService_GetAt __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetAt
+#define IVectorView_RfcommDeviceService_get_Size __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_get_Size
+#define IVectorView_RfcommDeviceService_IndexOf __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_IndexOf
+#define IVectorView_RfcommDeviceService_GetMany __FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIVectorView_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x7c8e7fdd, 0xa1a1, 0x528a, 0x81,0xd1, 0x29,0x67,0x69,0x22,0x7a,0x08);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("7c8e7fdd-a1a1-528a-81d1-296769227a08")
+                IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService*, ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::IGattDeviceService* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService, 0x7c8e7fdd, 0xa1a1, 0x528a, 0x81,0xd1, 0x29,0x67,0x69,0x22,0x7a,0x08)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        TrustLevel *trustLevel);
+
+    /*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        UINT32 index,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        __x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl;
+
+interface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService {
+    CONST_VTBL __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::Devices::Bluetooth::GenericAttributeProfile::GattDeviceService* > methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetAt(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,UINT32 index,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **value) {
+    return This->lpVtbl->GetAt(This,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Size(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_IndexOf(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService *element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetMany(__FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CDevices_CBluetooth_CGenericAttributeProfile_CIGattDeviceService **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_GattDeviceService IID___FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IVectorView_GattDeviceServiceVtbl __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceServiceVtbl
+#define IVectorView_GattDeviceService __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService
+#define IVectorView_GattDeviceService_QueryInterface __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_QueryInterface
+#define IVectorView_GattDeviceService_AddRef __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_AddRef
+#define IVectorView_GattDeviceService_Release __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_Release
+#define IVectorView_GattDeviceService_GetIids __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetIids
+#define IVectorView_GattDeviceService_GetRuntimeClassName __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetRuntimeClassName
+#define IVectorView_GattDeviceService_GetTrustLevel __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetTrustLevel
+#define IVectorView_GattDeviceService_GetAt __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetAt
+#define IVectorView_GattDeviceService_get_Size __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_get_Size
+#define IVectorView_GattDeviceService_IndexOf __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_IndexOf
+#define IVectorView_GattDeviceService_GetMany __FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIVectorView_1_Windows__CDevices__CBluetooth__CGenericAttributeProfile__CGattDeviceService_INTERFACE_DEFINED__ */
+
 /* Begin additional prototypes for all interfaces */
 
 ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
diff --git a/mingw-w64-headers/include/windows.devices.bluetooth.idl b/mingw-w64-headers/include/windows.devices.bluetooth.idl
index c3b64ce..ef14b25 100644
--- a/mingw-w64-headers/include/windows.devices.bluetooth.idl
+++ b/mingw-w64-headers/include/windows.devices.bluetooth.idl
@@ -20,32 +20,232 @@
 #pragma winrt ns_prefix
 #endif
 
+#ifndef DO_NO_IMPORTS
 import "inspectable.idl";
 import "asyncinfo.idl";
 import "eventtoken.idl";
 import "windowscontracts.idl";
 import "windows.foundation.idl";
-/* import "windows.devices.bluetooth.genericattributeprofile.idl"; */
-/* import "windows.devices.bluetooth.rfcomm.idl"; */
+import "windows.devices.bluetooth.genericattributeprofile.idl";
+import "windows.devices.bluetooth.rfcomm.idl";
 import "windows.devices.enumeration.idl";
 import "windows.devices.radios.idl";
-/* import "windows.networking.idl"; */
+import "windows.networking.idl";
 import "windows.storage.streams.idl";
+#endif
 
 namespace Windows.Devices.Bluetooth {
+    typedef enum BluetoothCacheMode BluetoothCacheMode;
+    typedef enum BluetoothConnectionStatus BluetoothConnectionStatus;
+    typedef enum BluetoothMajorClass BluetoothMajorClass;
+    typedef enum BluetoothMinorClass BluetoothMinorClass;
+    typedef enum BluetoothServiceCapabilities BluetoothServiceCapabilities;
+    typedef enum BluetoothError BluetoothError;
+
     interface IBluetoothAdapter;
     interface IBluetoothAdapter2;
     interface IBluetoothAdapter3;
     interface IBluetoothAdapterStatics;
+    interface IBluetoothClassOfDevice;
+    interface IBluetoothClassOfDeviceStatics;
+    interface IBluetoothDevice;
+    interface IBluetoothDevice2;
+    interface IBluetoothDevice3;
+    interface IBluetoothDevice4;
+    interface IBluetoothDevice5;
+    interface IBluetoothDeviceStatics;
+    interface IBluetoothDeviceStatics2;
+    interface IBluetoothDeviceId;
+    interface IBluetoothDeviceIdStatics;
+    interface IBluetoothLEDevice;
+    interface IBluetoothLEDevice2;
+    interface IBluetoothLEDevice3;
+    interface IBluetoothLEDevice4;
+    interface IBluetoothLEDevice5;
+    interface IBluetoothLEDevice6;
+    interface IBluetoothLEDeviceStatics;
+    interface IBluetoothLEDeviceStatics2;
 
     runtimeclass BluetoothAdapter;
+    runtimeclass BluetoothClassOfDevice;
+    runtimeclass BluetoothDevice;
+    runtimeclass BluetoothDeviceId;
+    runtimeclass BluetoothLEDevice;
+
+    namespace Rfcomm {
+        runtimeclass RfcommDeviceService;
+    }
+
+    namespace GenericAttributeProfile {
+        runtimeclass GattDeviceService;
+    }
 
     declare {
         interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.BluetoothAdapter *>;
         interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothAdapter *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.BluetoothDevice *, IInspectable *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.BluetoothDevice *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothDevice *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.BluetoothLEDevice *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothLEDevice *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.BluetoothLEDevice *, IInspectable *>;
+        interface Windows.Foundation.Collections.IVectorView<Windows.Storage.Streams.IBuffer *>;
+        interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService *>;
+        interface Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *>;
     }
 
     [
+        contract(Windows.Foundation.UniversalApiContract, 1.0)
+    ]
+    enum BluetoothCacheMode
+    {
+        Cached = 0,
+        Uncached = 1,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0)
+    ]
+    enum BluetoothConnectionStatus
+    {
+        Disconnected = 0,
+        Connected = 1,
+    };
+
+    [
+         contract(Windows.Foundation.UniversalApiContract, 1.0)
+    ]
+    enum BluetoothMajorClass
+    {
+        Miscellaneous = 0,
+        Computer = 1,
+        Phone = 2,
+        NetworkAccessPoint = 3,
+        AudioVideo = 4,
+        Peripheral = 5,
+        Imaging = 6,
+        Wearable = 7,
+        Toy = 8,
+        Health = 9,
+    };
+
+    [
+         contract(Windows.Foundation.UniversalApiContract, 1.0)
+    ]
+    enum BluetoothMinorClass
+    {
+        Uncategorized = 0,
+        ComputerDesktop = 1,
+        ComputerServer = 2,
+        ComputerLaptop = 3,
+        ComputerHandheld = 4,
+        ComputerPalmSize = 5,
+        ComputerWearable = 6,
+        ComputerTablet = 7,
+        PhoneCellular = 1,
+        PhoneCordless = 2,
+        PhoneSmartPhone = 3,
+        PhoneWired = 4,
+        PhoneIsdn = 5,
+        NetworkFullyAvailable = 0,
+        NetworkUsed01To17Percent = 8,
+        NetworkUsed17To33Percent = 16,
+        NetworkUsed33To50Percent = 24,
+        NetworkUsed50To67Percent = 32,
+        NetworkUsed67To83Percent = 40,
+        NetworkUsed83To99Percent = 48,
+        NetworkNoServiceAvailable = 56,
+        AudioVideoWearableHeadset = 1,
+        AudioVideoHandsFree = 2,
+        AudioVideoMicrophone = 4,
+        AudioVideoLoudspeaker = 5,
+        AudioVideoHeadphones = 6,
+        AudioVideoPortableAudio = 7,
+        AudioVideoCarAudio = 8,
+        AudioVideoSetTopBox = 9,
+        AudioVideoHifiAudioDevice = 10,
+        AudioVideoVcr = 11,
+        AudioVideoVideoCamera = 12,
+        AudioVideoCamcorder = 13,
+        AudioVideoVideoMonitor = 14,
+        AudioVideoVideoDisplayAndLoudspeaker = 15,
+        AudioVideoVideoConferencing = 16,
+        AudioVideoGamingOrToy = 18,
+        PeripheralJoystick = 1,
+        PeripheralGamepad = 2,
+        PeripheralRemoteControl = 3,
+        PeripheralSensing = 4,
+        PeripheralDigitizerTablet = 5,
+        PeripheralCardReader = 6,
+        PeripheralDigitalPen = 7,
+        PeripheralHandheldScanner = 8,
+        PeripheralHandheldGesture = 9,
+        WearableWristwatch = 1,
+        WearablePager = 2,
+        WearableJacket = 3,
+        WearableHelmet = 4,
+        WearableGlasses = 5,
+        ToyRobot = 1,
+        ToyVehicle = 2,
+        ToyDoll = 3,
+        ToyController = 4,
+        ToyGame = 5,
+        HealthBloodPressureMonitor = 1,
+        HealthThermometer = 2,
+        HealthWeighingScale = 3,
+        HealthGlucoseMeter = 4,
+        HealthPulseOximeter = 5,
+        HealthHeartRateMonitor = 6,
+        HealthHealthDataDisplay = 7,
+        HealthStepCounter = 8,
+        HealthBodyCompositionAnalyzer = 9,
+        HealthPeakFlowMonitor = 10,
+        HealthMedicationMonitor = 11,
+        HealthKneeProsthesis = 12,
+        HealthAnkleProsthesis = 13,
+        HealthGenericHealthManager = 14,
+        HealthPersonalMobilityDevice = 15,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        flags
+    ]
+    enum BluetoothServiceCapabilities
+    {
+        None = 0x0,
+        LimitedDiscoverableMode = 0x1,
+        PositioningService = 0x8,
+        NetworkingService = 0x10,
+        RenderingService = 0x20,
+        CapturingService = 0x40,
+        ObjectTransferService = 0x80,
+        AudioService = 0x100,
+        TelephoneService = 0x200,
+        InformationService = 0x400,
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0)
+    ]
+    enum BluetoothError
+    {
+        Success = 0,
+        RadioNotAvailable = 1,
+        ResourceInUse = 2,
+        DeviceNotConnected = 3,
+        OtherError = 4,
+        DisabledByPolicy = 5,
+        NotSupported = 6,
+        [contract(Windows.Foundation.UniversalApiContract, 2.0)]
+        DisabledByUser = 7,
+        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
+        ConsentRequired = 8,
+        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
+        TransportNotSupported = 9,
+    };
+
+    [
         contract(Windows.Foundation.UniversalApiContract, 4.0),
         exclusiveto(Windows.Devices.Bluetooth.BluetoothAdapter),
         uuid(7974f04c-5f7a-4a34-9225-a855f84b1a8b)
@@ -86,4 +286,191 @@
         [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Devices.Bluetooth.IBluetoothAdapter2;
         [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Devices.Bluetooth.IBluetoothAdapter3;
     }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.BluetoothClassOfDevice),
+        uuid(d640227e-d7d7-4661-9454-65039ca17a2b)
+    ]
+    interface IBluetoothClassOfDevice : IInspectable
+    {
+        [propget] HRESULT RawValue([out, retval] UINT32 *value);
+        [propget] HRESULT MajorClass([out, retval] Windows.Devices.Bluetooth.BluetoothMajorClass *value);
+        [propget] HRESULT MinorClass([out, retval] Windows.Devices.Bluetooth.BluetoothMinorClass *value);
+        [propget] HRESULT ServiceCapabilities([out, retval] Windows.Devices.Bluetooth.BluetoothServiceCapabilities *value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.BluetoothClassOfDevice),
+        uuid(e46135bd-0fa2-416c-91b4-c1e48ca061c1)
+    ]
+    interface IBluetoothClassOfDeviceStatics : IInspectable
+    {
+        HRESULT FromRawValue([in] UINT32 raw_value, [out, retval] Windows.Devices.Bluetooth.BluetoothClassOfDevice **cod);
+        HRESULT FromParts([in] Windows.Devices.Bluetooth.BluetoothMajorClass major,
+                          [in] Windows.Devices.Bluetooth.BluetoothMinorClass minor,
+                          [in] Windows.Devices.Bluetooth.BluetoothServiceCapabilities capabilities,
+                          [out, retval] Windows.Devices.Bluetooth.BluetoothClassOfDevice **cod);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.IBluetoothClassOfDeviceStatics, Windows.Foundation.UniversalApiContract, 1.0),
+        threading(both)
+    ]
+    runtimeclass BluetoothClassOfDevice
+    {
+        [default] interface Windows.Devices.Bluetooth.IBluetoothClassOfDevice;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.BluetoothDevice),
+        uuid(2335b156-90d2-4a04-aef5-0e20b9e6b707)
+    ]
+    interface IBluetoothDevice : IInspectable
+    {
+        [propget] HRESULT DeviceId([out, retval] HSTRING *value);
+        [propget] HRESULT HostName([out, retval] Windows.Networking.HostName **value);
+        [propget] HRESULT Name([out, retval] HSTRING *value);
+        [propget] HRESULT ClassOfDevice([out, retval] Windows.Devices.Bluetooth.BluetoothClassOfDevice **value);
+        [propget] HRESULT SdpRecords([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Storage.Streams.IBuffer *> **value);
+        [propget] HRESULT RfcommServices([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService *> **value);
+        [propget] HRESULT ConnectionStatus([out, retval] Windows.Devices.Bluetooth.BluetoothConnectionStatus *value);
+        [propget] HRESULT BluetoothAddress([out, retval] UINT64 *value);
+        [eventadd] HRESULT NameChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.BluetoothDevice *, IInspectable *> *handler,
+                                       [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT NameChanged([in] EventRegistrationToken token);
+        [eventadd] HRESULT SdpRecordsChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.BluetoothDevice*, IInspectable *> *handler,
+                                             [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT SdpRecordsChanged([in] EventRegistrationToken token);
+        [eventadd] HRESULT ConnectionStatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.BluetoothDevice *, IInspectable *> *handler,
+                                                   [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT ConnectionStatusChanged([in] EventRegistrationToken token);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.BluetoothDevice),
+        uuid(0991df51-57db-4725-bbd7-84f64327ec2c)
+    ]
+    interface IBluetoothDeviceStatics : IInspectable
+    {
+        HRESULT FromIdAsync([in] HSTRING id, [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothDevice *> **operation);
+        HRESULT FromHostNameAsync([in] Windows.Networking.HostName *name,
+                                  [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothDevice *> **operation);
+        HRESULT FromBluetoothAddressAsync([in] UINT64 address,
+                                          [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothDevice *> **operation);
+        HRESULT GetDeviceSelector([out, retval] HSTRING *selector);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.IBluetoothDeviceStatics, Windows.Foundation.UniversalApiContract, 1.0),
+        static(Windows.Devices.Bluetooth.IBluetoothDeviceStatics2, Windows.Foundation.UniversalApiContract, 2.0),
+        threading(both)
+    ]
+    runtimeclass BluetoothDevice
+    {
+        [default] interface Windows.Devices.Bluetooth.IBluetoothDevice;
+        [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.Devices.Bluetooth.IBluetoothDevice2;
+        [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Devices.Bluetooth.IBluetoothDevice3;
+        [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Devices.Bluetooth.IBluetoothDevice4;
+        [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Devices.Bluetooth.IBluetoothDevice5;
+        interface Windows.Foundation.IClosable;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        exclusiveto(Windows.Devices.Bluetooth.BluetoothDeviceId),
+        uuid(c17949af-57c1-4642-bcce-e6c06b20ae76)
+    ]
+    interface IBluetoothDeviceId : IInspectable
+    {
+        [propget] HRESULT Id([out, retval] HSTRING *value);
+        [propget] HRESULT IsClassicDevice([out, retval] boolean *value);
+        [propget] HRESULT IsLowEnergyDevice([out, retval] boolean *value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 5.0),
+        exclusiveto(Windows.Devices.Bluetooth.BluetoothDeviceId),
+        uuid(a7884e67-3efb-4f31-bbc2-810e09977404)
+    ]
+    interface IBluetoothDeviceIdStatics : IInspectable
+    {
+        HRESULT FromId([in] HSTRING id, [out, retval] Windows.Devices.Bluetooth.BluetoothDeviceId **result);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 4.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.IBluetoothDeviceIdStatics, Windows.Foundation.UniversalApiContract, 5.0),
+        threading(both)
+    ]
+    runtimeclass BluetoothDeviceId
+    {
+        [default] interface Windows.Devices.Bluetooth.IBluetoothDeviceId;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.BluetoothLEDevice),
+        uuid(b5ee2f7b-4ad8-4642-ac48-80a0b500e887)
+    ]
+    interface IBluetoothLEDevice : IInspectable
+    {
+        [propget] HRESULT DeviceId([out, retval] HSTRING *value);
+        [propget] HRESULT Name([out, retval] HSTRING *value);
+        [propget] HRESULT GattServices([out, retval] Windows.Foundation.Collections.IVectorView<Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService *> **value);
+        [propget] HRESULT ConnectionStatus([out, retval] Windows.Devices.Bluetooth.BluetoothConnectionStatus *value);
+        [propget] HRESULT BluetoothAddress([out, retval] UINT64 *value);
+        HRESULT GetGattService([in] GUID uuid,
+                               [out, retval] Windows.Devices.Bluetooth.GenericAttributeProfile.GattDeviceService **service);
+        [eventadd] HRESULT NameChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.BluetoothLEDevice *, IInspectable *> *handler,
+                                       [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT NameChanged([in] EventRegistrationToken token);
+        [eventadd] HRESULT GattServicesChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.BluetoothLEDevice *, IInspectable *> *handler,
+                                               [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT GattServicesChanged([in] EventRegistrationToken token);
+        [eventadd] HRESULT ConnectionStatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.Devices.Bluetooth.BluetoothLEDevice *, IInspectable *> *handler,
+                                                   [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT ConnectionStatusChanged([in] EventRegistrationToken token);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.BluetoothLEDevice),
+        uuid(c8cf1a19-f0b6-4bf0-8689-41303de2d9f4)
+    ]
+    interface IBluetoothLEDeviceStatics : IInspectable
+    {
+        HRESULT FromIdAsync([in] HSTRING id,
+                            [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothLEDevice *> **async);
+        [overload("FromBluetoothAddressAsync")]
+        HRESULT FromBluetoothAddressAsync([in] UINT64 addr,
+                                          [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.BluetoothLEDevice *> **async);
+        HRESULT GetDeviceSelector([out, retval] HSTRING *result);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.IBluetoothLEDeviceStatics, Windows.Foundation.UniversalApiContract, 1.0),
+        static(Windows.Devices.Bluetooth.IBluetoothLEDeviceStatics2, Windows.Foundation.UniversalApiContract, 2.0),
+        threading(both)
+    ]
+    runtimeclass BluetoothLEDevice
+    {
+        [default] interface Windows.Devices.Bluetooth.IBluetoothLEDevice;
+        [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.Devices.Bluetooth.IBluetoothLEDevice2;
+        [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Devices.Bluetooth.IBluetoothLEDevice3;
+        [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Devices.Bluetooth.IBluetoothLEDevice4;
+        [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Devices.Bluetooth.IBluetoothLEDevice5;
+        [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.Devices.Bluetooth.IBluetoothLEDevice6;
+        interface Windows.Foundation.IClosable;
+    }
 }
diff --git a/mingw-w64-headers/include/windows.devices.bluetooth.rfcomm.h b/mingw-w64-headers/include/windows.devices.bluetooth.rfcomm.h
new file mode 100644
index 0000000..c1c3a5a
--- /dev/null
+++ b/mingw-w64-headers/include/windows.devices.bluetooth.rfcomm.h
@@ -0,0 +1,1361 @@
+/*** Autogenerated by WIDL 10.11 from include/windows.devices.bluetooth.rfcomm.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_devices_bluetooth_rfcomm_h__
+#define __windows_devices_bluetooth_rfcomm_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceService
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    interface IRfcommDeviceService;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceServiceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    interface IRfcommDeviceServiceStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommDeviceService_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommDeviceService_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    class RfcommDeviceService;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommDeviceService __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommDeviceService;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommDeviceService_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommServiceId_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommServiceId_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    class RfcommServiceId;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommServiceId __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommServiceId;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CRfcommServiceId_FWD_DEFINED__ */
+
+#ifndef ____FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+#define ____FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+typedef interface __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer;
+#ifdef __cplusplus
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+#define ____FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService;
+#ifdef __cplusplus
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService ABI::Windows::Foundation::IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <asyncinfo.h>
+#include <eventtoken.h>
+#include <windowscontracts.h>
+#include <windows.foundation.h>
+#include <windows.devices.bluetooth.h>
+#include <windows.networking.h>
+#include <windows.networking.sockets.h>
+#include <windows.storage.streams.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0xe0000
+#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                enum BluetoothCacheMode {
+                    BluetoothCacheMode_Cached = 0,
+                    BluetoothCacheMode_Uncached = 1
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode {
+    BluetoothCacheMode_Cached = 0,
+    BluetoothCacheMode_Uncached = 1
+};
+#ifdef WIDL_using_Windows_Devices_Bluetooth
+#define BluetoothCacheMode __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode
+#endif /* WIDL_using_Windows_Devices_Bluetooth */
+#endif
+
+#endif /* ____x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode;
+#endif /* __cplusplus */
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceService
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    interface IRfcommDeviceService;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService2 __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService2 ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceService2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    interface IRfcommDeviceService2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService3_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService3_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService3 __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService3;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService3 ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceService3
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    interface IRfcommDeviceService3;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceServiceStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    interface IRfcommDeviceServiceStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics2 __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics2 ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceServiceStatics2
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    interface IRfcommDeviceServiceStatics2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceId_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceId_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceId __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceId;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceId ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommServiceId
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    interface IRfcommServiceId;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceIdStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceIdStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceIdStatics __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceIdStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceIdStatics ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommServiceIdStatics
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    interface IRfcommServiceIdStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+#define ____FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+typedef interface __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer;
+#ifdef __cplusplus
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+#define ____FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* >
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * IRfcommDeviceService interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService, 0xae81ff1f, 0xc5a1, 0x4c40, 0x8c,0x28, 0xf3,0xef,0xd6,0x90,0x62,0xf3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    MIDL_INTERFACE("ae81ff1f-c5a1-4c40-8c28-f3efd69062f3")
+                    IRfcommDeviceService : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_ConnectionHostName(
+                            ABI::Windows::Networking::IHostName **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ConnectionServiceName(
+                            HSTRING *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ServiceId(
+                            ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommServiceId **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_ProtectionLevel(
+                            ABI::Windows::Networking::Sockets::SocketProtectionLevel *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_MaxProtectionLevel(
+                            ABI::Windows::Networking::Sockets::SocketProtectionLevel *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetSdpRawAttributesAsync(
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > **operation) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetSdpRawAttributesWithCacheModeAsync(
+                            ABI::Windows::Devices::Bluetooth::BluetoothCacheMode cache_mode,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > **operation) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService, 0xae81ff1f, 0xc5a1, 0x4c40, 0x8c,0x28, 0xf3,0xef,0xd6,0x90,0x62,0xf3)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        TrustLevel *trustLevel);
+
+    /*** IRfcommDeviceService methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_ConnectionHostName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        __x_ABI_CWindows_CNetworking_CIHostName **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ConnectionServiceName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        HSTRING *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ServiceId)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceId **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_ProtectionLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        __x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_MaxProtectionLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        __x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetSdpRawAttributesAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **operation);
+
+    HRESULT (STDMETHODCALLTYPE *GetSdpRawAttributesWithCacheModeAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode cache_mode,
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **operation);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IRfcommDeviceService methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ConnectionHostName(This,value) (This)->lpVtbl->get_ConnectionHostName(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ConnectionServiceName(This,value) (This)->lpVtbl->get_ConnectionServiceName(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ServiceId(This,value) (This)->lpVtbl->get_ServiceId(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ProtectionLevel(This,value) (This)->lpVtbl->get_ProtectionLevel(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_MaxProtectionLevel(This,value) (This)->lpVtbl->get_MaxProtectionLevel(This,value)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetSdpRawAttributesAsync(This,operation) (This)->lpVtbl->GetSdpRawAttributesAsync(This,operation)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetSdpRawAttributesWithCacheModeAsync(This,cache_mode,operation) (This)->lpVtbl->GetSdpRawAttributesWithCacheModeAsync(This,cache_mode,operation)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_Release(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IRfcommDeviceService methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ConnectionHostName(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,__x_ABI_CWindows_CNetworking_CIHostName **value) {
+    return This->lpVtbl->get_ConnectionHostName(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ConnectionServiceName(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,HSTRING *value) {
+    return This->lpVtbl->get_ConnectionServiceName(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ServiceId(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceId **value) {
+    return This->lpVtbl->get_ServiceId(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ProtectionLevel(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,__x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel *value) {
+    return This->lpVtbl->get_ProtectionLevel(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_MaxProtectionLevel(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,__x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel *value) {
+    return This->lpVtbl->get_MaxProtectionLevel(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetSdpRawAttributesAsync(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **operation) {
+    return This->lpVtbl->GetSdpRawAttributesAsync(This,operation);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetSdpRawAttributesWithCacheModeAsync(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService* This,__x_ABI_CWindows_CDevices_CBluetooth_CBluetoothCacheMode cache_mode,__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **operation) {
+    return This->lpVtbl->GetSdpRawAttributesWithCacheModeAsync(This,cache_mode,operation);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_Rfcomm
+#define IID_IRfcommDeviceService IID___x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService
+#define IRfcommDeviceServiceVtbl __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceVtbl
+#define IRfcommDeviceService __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService
+#define IRfcommDeviceService_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_QueryInterface
+#define IRfcommDeviceService_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_AddRef
+#define IRfcommDeviceService_Release __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_Release
+#define IRfcommDeviceService_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetIids
+#define IRfcommDeviceService_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetRuntimeClassName
+#define IRfcommDeviceService_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetTrustLevel
+#define IRfcommDeviceService_get_ConnectionHostName __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ConnectionHostName
+#define IRfcommDeviceService_get_ConnectionServiceName __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ConnectionServiceName
+#define IRfcommDeviceService_get_ServiceId __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ServiceId
+#define IRfcommDeviceService_get_ProtectionLevel __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_ProtectionLevel
+#define IRfcommDeviceService_get_MaxProtectionLevel __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_get_MaxProtectionLevel
+#define IRfcommDeviceService_GetSdpRawAttributesAsync __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetSdpRawAttributesAsync
+#define IRfcommDeviceService_GetSdpRawAttributesWithCacheModeAsync __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_GetSdpRawAttributesWithCacheModeAsync
+#endif /* WIDL_using_Windows_Devices_Bluetooth_Rfcomm */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IRfcommDeviceServiceStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics, 0xa4a149ef, 0x626d, 0x41ac, 0xb2,0x53, 0x87,0xac,0x5c,0x27,0xe2,0x8a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Devices {
+            namespace Bluetooth {
+                namespace Rfcomm {
+                    MIDL_INTERFACE("a4a149ef-626d-41ac-b253-87ac5c27e28a")
+                    IRfcommDeviceServiceStatics : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE FromIdAsync(
+                            HSTRING id,
+                            ABI::Windows::Foundation::IAsyncOperation<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > **operation) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetDeviceSelector(
+                            ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommServiceId *id,
+                            HSTRING *selector) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics, 0xa4a149ef, 0x626d, 0x41ac, 0xb2,0x53, 0x87,0xac,0x5c,0x27,0xe2,0x8a)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IRfcommDeviceServiceStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *FromIdAsync)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics *This,
+        HSTRING id,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService **operation);
+
+    HRESULT (STDMETHODCALLTYPE *GetDeviceSelector)(
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceId *id,
+        HSTRING *selector);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStaticsVtbl;
+
+interface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics {
+    CONST_VTBL __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IRfcommDeviceServiceStatics methods ***/
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_FromIdAsync(This,id,operation) (This)->lpVtbl->FromIdAsync(This,id,operation)
+#define __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetDeviceSelector(This,id,selector) (This)->lpVtbl->GetDeviceSelector(This,id,selector)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_QueryInterface(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_AddRef(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_Release(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetIids(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetRuntimeClassName(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetTrustLevel(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IRfcommDeviceServiceStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_FromIdAsync(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics* This,HSTRING id,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService **operation) {
+    return This->lpVtbl->FromIdAsync(This,id,operation);
+}
+static inline HRESULT __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetDeviceSelector(__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics* This,__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommServiceId *id,HSTRING *selector) {
+    return This->lpVtbl->GetDeviceSelector(This,id,selector);
+}
+#endif
+#ifdef WIDL_using_Windows_Devices_Bluetooth_Rfcomm
+#define IID_IRfcommDeviceServiceStatics IID___x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics
+#define IRfcommDeviceServiceStaticsVtbl __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStaticsVtbl
+#define IRfcommDeviceServiceStatics __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics
+#define IRfcommDeviceServiceStatics_QueryInterface __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_QueryInterface
+#define IRfcommDeviceServiceStatics_AddRef __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_AddRef
+#define IRfcommDeviceServiceStatics_Release __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_Release
+#define IRfcommDeviceServiceStatics_GetIids __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetIids
+#define IRfcommDeviceServiceStatics_GetRuntimeClassName __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetRuntimeClassName
+#define IRfcommDeviceServiceStatics_GetTrustLevel __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetTrustLevel
+#define IRfcommDeviceServiceStatics_FromIdAsync __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_FromIdAsync
+#define IRfcommDeviceServiceStatics_GetDeviceSelector __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_GetDeviceSelector
+#endif /* WIDL_using_Windows_Devices_Bluetooth_Rfcomm */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceServiceStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_Rfcomm_RfcommDeviceService_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_Rfcomm_RfcommDeviceService_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_Rfcomm_RfcommDeviceService[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','R','f','c','o','m','m','.','R','f','c','o','m','m','D','e','v','i','c','e','S','e','r','v','i','c','e',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_Rfcomm_RfcommDeviceService[] = L"Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_Rfcomm_RfcommDeviceService[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','R','f','c','o','m','m','.','R','f','c','o','m','m','D','e','v','i','c','e','S','e','r','v','i','c','e',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_Rfcomm_RfcommDeviceService_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*
+ * Class Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef RUNTIMECLASS_Windows_Devices_Bluetooth_Rfcomm_RfcommServiceId_DEFINED
+#define RUNTIMECLASS_Windows_Devices_Bluetooth_Rfcomm_RfcommServiceId_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_Devices_Bluetooth_Rfcomm_RfcommServiceId[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','R','f','c','o','m','m','.','R','f','c','o','m','m','S','e','r','v','i','c','e','I','d',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_Rfcomm_RfcommServiceId[] = L"Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_Devices_Bluetooth_Rfcomm_RfcommServiceId[] = {'W','i','n','d','o','w','s','.','D','e','v','i','c','e','s','.','B','l','u','e','t','o','o','t','h','.','R','f','c','o','m','m','.','R','f','c','o','m','m','S','e','r','v','i','c','e','I','d',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_Devices_Bluetooth_Rfcomm_RfcommServiceId_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+
+/*****************************************************************************
+ * IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* > interface
+ */
+#ifndef ____FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
+#define ____FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer, 0x57dc41e6, 0x8b4d, 0x5910, 0x97,0x03, 0xd7,0xc6,0x68,0x43,0x68,0x52);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("57dc41e6-8b4d-5910-9703-d7c668436852")
+                IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* > : IMapView_impl<UINT32, ABI::Windows::Storage::Streams::IBuffer* >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer, 0x57dc41e6, 0x8b4d, 0x5910, 0x97,0x03, 0xd7,0xc6,0x68,0x43,0x68,0x52)
+#endif
+#else
+typedef struct __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        TrustLevel *trustLevel);
+
+    /*** IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Lookup)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        UINT32 key,
+        __x_ABI_CWindows_CStorage_CStreams_CIBuffer **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        unsigned int *size);
+
+    HRESULT (STDMETHODCALLTYPE *HasKey)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        UINT32 key,
+        boolean *found);
+
+    HRESULT (STDMETHODCALLTYPE *Split)(
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **first,
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **second);
+
+    END_INTERFACE
+} __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl;
+
+interface __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer {
+    CONST_VTBL __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* > methods ***/
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Lookup(This,key,value) (This)->lpVtbl->Lookup(This,key,value)
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_get_Size(This,size) (This)->lpVtbl->get_Size(This,size)
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_HasKey(This,key,found) (This)->lpVtbl->HasKey(This,key,found)
+#define __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Split(This,first,second) (This)->lpVtbl->Split(This,first,second)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_QueryInterface(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_AddRef(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Release(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetIids(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* > methods ***/
+static inline HRESULT __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Lookup(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,UINT32 key,__x_ABI_CWindows_CStorage_CStreams_CIBuffer **value) {
+    return This->lpVtbl->Lookup(This,key,value);
+}
+static inline HRESULT __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_get_Size(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,unsigned int *size) {
+    return This->lpVtbl->get_Size(This,size);
+}
+static inline HRESULT __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_HasKey(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,UINT32 key,boolean *found) {
+    return This->lpVtbl->HasKey(This,key,found);
+}
+static inline HRESULT __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Split(__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **first,__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **second) {
+    return This->lpVtbl->Split(This,first,second);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IMapView_UINT32_IBuffer IID___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer
+#define IMapView_UINT32_IBufferVtbl __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl
+#define IMapView_UINT32_IBuffer __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer
+#define IMapView_UINT32_IBuffer_QueryInterface __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_QueryInterface
+#define IMapView_UINT32_IBuffer_AddRef __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_AddRef
+#define IMapView_UINT32_IBuffer_Release __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Release
+#define IMapView_UINT32_IBuffer_GetIids __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetIids
+#define IMapView_UINT32_IBuffer_GetRuntimeClassName __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName
+#define IMapView_UINT32_IBuffer_GetTrustLevel __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel
+#define IMapView_UINT32_IBuffer_Lookup __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Lookup
+#define IMapView_UINT32_IBuffer_get_Size __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_get_Size
+#define IMapView_UINT32_IBuffer_HasKey __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_HasKey
+#define IMapView_UINT32_IBuffer_Split __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Split
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer, 0x92c2e4d0, 0x7c25, 0x596b, 0x91,0x35, 0x10,0xd1,0x47,0x2e,0x69,0x68);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("92c2e4d0-7c25-596b-9135-10d1472e6968")
+            IAsyncOperationCompletedHandler<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer, 0x92c2e4d0, 0x7c25, 0x596b, 0x91,0x35, 0x10,0xd1,0x47,0x2e,0x69,0x68)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_QueryInterface(__FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_AddRef(__FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Release(__FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Invoke(__FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_IMapView_UINT32_IBuffer IID___FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer
+#define IAsyncOperationCompletedHandler_IMapView_UINT32_IBufferVtbl __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl
+#define IAsyncOperationCompletedHandler_IMapView_UINT32_IBuffer __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer
+#define IAsyncOperationCompletedHandler_IMapView_UINT32_IBuffer_QueryInterface __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_QueryInterface
+#define IAsyncOperationCompletedHandler_IMapView_UINT32_IBuffer_AddRef __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_AddRef
+#define IAsyncOperationCompletedHandler_IMapView_UINT32_IBuffer_Release __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Release
+#define IAsyncOperationCompletedHandler_IMapView_UINT32_IBuffer_Invoke __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > interface
+ */
+#ifndef ____FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer, 0xd4904ded, 0xbc1d, 0x5933, 0xae,0xcf, 0xe4,0x2c,0x5d,0x46,0x5b,0xff);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("d4904ded-bc1d-5933-aecf-e42c5d465bff")
+            IAsyncOperation<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > : IAsyncOperation_impl<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer, 0xd4904ded, 0xbc1d, 0x5933, 0xae,0xcf, 0xe4,0x2c,0x5d,0x46,0x5b,0xff)
+#endif
+#else
+typedef struct __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        __FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *This,
+        __FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl;
+
+interface __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer {
+    CONST_VTBL __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > methods ***/
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_QueryInterface(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_AddRef(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Release(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetIids(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Foundation::Collections::IMapView<UINT32,ABI::Windows::Storage::Streams::IBuffer* >* > methods ***/
+static inline HRESULT __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_put_Completed(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,__FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_get_Completed(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,__FIAsyncOperationCompletedHandler_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetResults(__FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer* This,__FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_IMapView_UINT32_IBuffer IID___FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer
+#define IAsyncOperation_IMapView_UINT32_IBufferVtbl __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBufferVtbl
+#define IAsyncOperation_IMapView_UINT32_IBuffer __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer
+#define IAsyncOperation_IMapView_UINT32_IBuffer_QueryInterface __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_QueryInterface
+#define IAsyncOperation_IMapView_UINT32_IBuffer_AddRef __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_AddRef
+#define IAsyncOperation_IMapView_UINT32_IBuffer_Release __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_Release
+#define IAsyncOperation_IMapView_UINT32_IBuffer_GetIids __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetIids
+#define IAsyncOperation_IMapView_UINT32_IBuffer_GetRuntimeClassName __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetRuntimeClassName
+#define IAsyncOperation_IMapView_UINT32_IBuffer_GetTrustLevel __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetTrustLevel
+#define IAsyncOperation_IMapView_UINT32_IBuffer_put_Completed __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_put_Completed
+#define IAsyncOperation_IMapView_UINT32_IBuffer_get_Completed __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_get_Completed
+#define IAsyncOperation_IMapView_UINT32_IBuffer_GetResults __FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1___FIMapView_2_UINT32_Windows__CStorage__CStreams__CIBuffer_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > interface
+ */
+#ifndef ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService, 0x5c772518, 0x442f, 0x58ed, 0x80,0xcb, 0x53,0x8d,0x34,0xb8,0x82,0x95);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("5c772518-442f-58ed-80cb-538d34b88295")
+            IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > : IAsyncOperationCompletedHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService*, ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceService* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService, 0x5c772518, 0x442f, 0x58ed, 0x80,0xcb, 0x53,0x8d,0x34,0xb8,0x82,0x95)
+#endif
+#else
+typedef struct __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This);
+
+    /*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *info,
+        AsyncStatus status);
+
+    END_INTERFACE
+} __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl;
+
+interface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_QueryInterface(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_AddRef(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Release(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAsyncOperationCompletedHandler<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > methods ***/
+static inline HRESULT __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Invoke(__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperationCompletedHandler_RfcommDeviceService IID___FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService
+#define IAsyncOperationCompletedHandler_RfcommDeviceServiceVtbl __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl
+#define IAsyncOperationCompletedHandler_RfcommDeviceService __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService
+#define IAsyncOperationCompletedHandler_RfcommDeviceService_QueryInterface __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_QueryInterface
+#define IAsyncOperationCompletedHandler_RfcommDeviceService_AddRef __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_AddRef
+#define IAsyncOperationCompletedHandler_RfcommDeviceService_Release __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Release
+#define IAsyncOperationCompletedHandler_RfcommDeviceService_Invoke __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > interface
+ */
+#ifndef ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService, 0x0df56bd7, 0xc8f6, 0x5c32, 0x96,0x44, 0xaa,0x0b,0xcf,0x28,0xd7,0x8c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("0df56bd7-c8f6-5c32-9644-aa0bcf28d78c")
+            IAsyncOperation<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > : IAsyncOperation_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService*, ABI::Windows::Devices::Bluetooth::Rfcomm::IRfcommDeviceService* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService, 0x0df56bd7, 0xc8f6, 0x5c32, 0x96,0x44, 0xaa,0x0b,0xcf,0x28,0xd7,0x8c)
+#endif
+#else
+typedef struct __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        __FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *This,
+        __x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService **results);
+
+    END_INTERFACE
+} __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl;
+
+interface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService {
+    CONST_VTBL __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > methods ***/
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_QueryInterface(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_AddRef(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Release(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetIids(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetRuntimeClassName(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetTrustLevel(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncOperation<ABI::Windows::Devices::Bluetooth::Rfcomm::RfcommDeviceService* > methods ***/
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_put_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_get_Completed(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,__FIAsyncOperationCompletedHandler_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static inline HRESULT __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetResults(__FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService* This,__x_ABI_CWindows_CDevices_CBluetooth_CRfcomm_CIRfcommDeviceService **results) {
+    return This->lpVtbl->GetResults(This,results);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IAsyncOperation_RfcommDeviceService IID___FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService
+#define IAsyncOperation_RfcommDeviceServiceVtbl __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceServiceVtbl
+#define IAsyncOperation_RfcommDeviceService __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService
+#define IAsyncOperation_RfcommDeviceService_QueryInterface __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_QueryInterface
+#define IAsyncOperation_RfcommDeviceService_AddRef __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_AddRef
+#define IAsyncOperation_RfcommDeviceService_Release __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_Release
+#define IAsyncOperation_RfcommDeviceService_GetIids __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetIids
+#define IAsyncOperation_RfcommDeviceService_GetRuntimeClassName __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetRuntimeClassName
+#define IAsyncOperation_RfcommDeviceService_GetTrustLevel __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetTrustLevel
+#define IAsyncOperation_RfcommDeviceService_put_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_put_Completed
+#define IAsyncOperation_RfcommDeviceService_get_Completed __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_get_Completed
+#define IAsyncOperation_RfcommDeviceService_GetResults __FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_GetResults
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FIAsyncOperation_1_Windows__CDevices__CBluetooth__CRfcomm__CRfcommDeviceService_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_devices_bluetooth_rfcomm_h__ */
diff --git a/mingw-w64-headers/include/windows.devices.bluetooth.rfcomm.idl b/mingw-w64-headers/include/windows.devices.bluetooth.rfcomm.idl
new file mode 100644
index 0000000..14f9aca
--- /dev/null
+++ b/mingw-w64-headers/include/windows.devices.bluetooth.rfcomm.idl
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2025 Vibhav Pant
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifdef __WIDL__
+#pragma winrt ns_prefix
+#endif
+
+#ifndef DO_NO_IMPORTS
+import "inspectable.idl";
+import "asyncinfo.idl";
+import "eventtoken.idl";
+import "windowscontracts.idl";
+import "windows.foundation.idl";
+import "windows.devices.bluetooth.idl";
+import "windows.networking.idl";
+import "windows.networking.sockets.idl";
+import "windows.storage.streams.idl";
+#endif
+
+namespace Windows.Devices.Bluetooth {
+    typedef enum BluetoothCacheMode BluetoothCacheMode;
+}
+
+namespace Windows.Devices.Bluetooth.Rfcomm {
+    interface IRfcommDeviceService;
+    interface IRfcommDeviceService2;
+    interface IRfcommDeviceService3;
+    interface IRfcommDeviceServiceStatics;
+    interface IRfcommDeviceServiceStatics2;
+    interface IRfcommServiceId;
+    interface IRfcommServiceIdStatics;
+
+    runtimeclass RfcommDeviceService;
+    runtimeclass RfcommServiceId;
+
+    declare {
+        interface Windows.Foundation.Collections.IMapView<UINT32, Windows.Storage.Streams.IBuffer *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Foundation.Collections.IMapView<UINT32, Windows.Storage.Streams.IBuffer *> *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IMapView<UINT32, Windows.Storage.Streams.IBuffer *> *>;
+        interface Windows.Foundation.AsyncOperationCompletedHandler<Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService *>;
+        interface Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService *>;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        exclusiveto(Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService),
+        uuid(ae81ff1f-c5a1-4c40-8c28-f3efd69062f3)
+    ]
+    interface IRfcommDeviceService : IInspectable
+    {
+        [propget] HRESULT ConnectionHostName([out, retval] Windows.Networking.HostName **value);
+        [propget] HRESULT ConnectionServiceName([out, retval] HSTRING *value);
+        [propget] HRESULT ServiceId([out, retval] Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId **value);
+        [propget] HRESULT ProtectionLevel([out, retval] Windows.Networking.Sockets.SocketProtectionLevel *value);
+        [propget] HRESULT MaxProtectionLevel([out, retval] Windows.Networking.Sockets.SocketProtectionLevel *value);
+        [overload("GetSdpRawAttributesAsync")] HRESULT GetSdpRawAttributesAsync([out, retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IMapView<UINT32, Windows.Storage.Streams.IBuffer *> *> **operation);
+        [overload("GetSdpRawAttributesAsync")] HRESULT GetSdpRawAttributesWithCacheModeAsync([in] Windows.Devices.Bluetooth.BluetoothCacheMode cache_mode,
+                                                                                             [out, retval] Windows.Foundation.IAsyncOperation<Windows.Foundation.Collections.IMapView<UINT32, Windows.Storage.Streams.IBuffer *> *> **operation);
+    }
+
+    [
+         contract(Windows.Foundation.UniversalApiContract, 1.0),
+         exclusiveto(Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService),
+         uuid(a4a149ef-626d-41ac-b253-87ac5c27e28a)
+    ]
+    interface IRfcommDeviceServiceStatics : IInspectable
+    {
+        HRESULT FromIdAsync([in] HSTRING id, [out, retval] Windows.Foundation.IAsyncOperation<Windows.Devices.Bluetooth.Rfcomm.RfcommDeviceService *> **operation);
+        HRESULT GetDeviceSelector([in] Windows.Devices.Bluetooth.Rfcomm.RfcommServiceId *id, [out] [retval] HSTRING *selector);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.Rfcomm.IRfcommDeviceServiceStatics, Windows.Foundation.UniversalApiContract, 1.0),
+        static(Windows.Devices.Bluetooth.Rfcomm.IRfcommDeviceServiceStatics2, Windows.Foundation.UniversalApiContract, 3.0),
+        threading(both)
+    ]
+    runtimeclass RfcommDeviceService
+    {
+        [default] interface Windows.Devices.Bluetooth.Rfcomm.IRfcommDeviceService;
+        interface Windows.Devices.Bluetooth.Rfcomm.IRfcommDeviceService2;
+        interface Windows.Foundation.IClosable;
+        [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Devices.Bluetooth.Rfcomm.IRfcommDeviceService3;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 1.0),
+        marshaling_behavior(agile),
+        static(Windows.Devices.Bluetooth.Rfcomm.IRfcommServiceIdStatics, Windows.Foundation.UniversalApiContract, 1.0),
+        threading(both)
+    ]
+    runtimeclass RfcommServiceId
+    {
+        [default] interface Windows.Devices.Bluetooth.Rfcomm.IRfcommServiceId;
+    }
+}
diff --git a/mingw-w64-headers/include/windows.networking.sockets.h b/mingw-w64-headers/include/windows.networking.sockets.h
new file mode 100644
index 0000000..de57553
--- /dev/null
+++ b/mingw-w64-headers/include/windows.networking.sockets.h
@@ -0,0 +1,126 @@
+/*** Autogenerated by WIDL 10.11 from include/windows.networking.sockets.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_networking_sockets_h__
+#define __windows_networking_sockets_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+#include <windowscontracts.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0xe0000
+#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Networking {
+            namespace Sockets {
+                enum SocketProtectionLevel {
+                    SocketProtectionLevel_PlainSocket = 0,
+                    SocketProtectionLevel_Ssl = 1,
+                    SocketProtectionLevel_SslAllowNullEncryption = 2,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+                    SocketProtectionLevel_BluetoothEncryptionAllowNullAuthentication = 3,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+                    SocketProtectionLevel_BluetoothEncryptionWithAuthentication = 4,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+                    SocketProtectionLevel_Ssl3AllowWeakEncryption = 5,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+                    SocketProtectionLevel_Tls10 = 6,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+                    SocketProtectionLevel_Tls11 = 7,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+                    SocketProtectionLevel_Tls12 = 8,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+                    SocketProtectionLevel_Unspecified = 9,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x100000
+                    SocketProtectionLevel_Tls13 = 10
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x100000 */
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel {
+    SocketProtectionLevel_PlainSocket = 0,
+    SocketProtectionLevel_Ssl = 1,
+    SocketProtectionLevel_SslAllowNullEncryption = 2,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+    SocketProtectionLevel_BluetoothEncryptionAllowNullAuthentication = 3,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+    SocketProtectionLevel_BluetoothEncryptionWithAuthentication = 4,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+    SocketProtectionLevel_Ssl3AllowWeakEncryption = 5,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+    SocketProtectionLevel_Tls10 = 6,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+    SocketProtectionLevel_Tls11 = 7,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
+    SocketProtectionLevel_Tls12 = 8,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+    SocketProtectionLevel_Unspecified = 9,
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x100000
+    SocketProtectionLevel_Tls13 = 10
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x100000 */
+};
+#ifdef WIDL_using_Windows_Networking_Sockets
+#define SocketProtectionLevel __x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel
+#endif /* WIDL_using_Windows_Networking_Sockets */
+#endif
+
+#endif /* ____x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel __x_ABI_CWindows_CNetworking_CSockets_CSocketProtectionLevel;
+#endif /* __cplusplus */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_networking_sockets_h__ */
diff --git a/mingw-w64-headers/include/windows.networking.sockets.idl b/mingw-w64-headers/include/windows.networking.sockets.idl
new file mode 100644
index 0000000..5dfe586
--- /dev/null
+++ b/mingw-w64-headers/include/windows.networking.sockets.idl
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2025 Vibhav Pant
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifdef __WIDL__
+#pragma winrt ns_prefix
+#endif
+
+import "windowscontracts.idl";
+
+namespace Windows.Networking.Sockets {
+    typedef enum SocketProtectionLevel SocketProtectionLevel;
+
+    [contract(Windows.Foundation.UniversalApiContract, 1.0)]
+    enum SocketProtectionLevel
+    {
+        PlainSocket = 0,
+        Ssl = 1,
+        SslAllowNullEncryption = 2,
+        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
+        BluetoothEncryptionAllowNullAuthentication = 3,
+        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
+        BluetoothEncryptionWithAuthentication = 4,
+        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
+        Ssl3AllowWeakEncryption = 5,
+        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
+        Tls10 = 6,
+        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
+        Tls11 = 7,
+        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
+        Tls12 = 8,
+        [contract(Windows.Foundation.UniversalApiContract, 5.0)]
+        Unspecified = 9,
+        [contract(Windows.Foundation.UniversalApiContract, 16.0)]
+        Tls13 = 10,
+    };
+}
diff --git a/mingw-w64-headers/include/windows.ui.viewmanagement.core.h b/mingw-w64-headers/include/windows.ui.viewmanagement.core.h
new file mode 100644
index 0000000..c373eab
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.viewmanagement.core.h
@@ -0,0 +1,3481 @@
+/*** Autogenerated by WIDL 10.11 from include/windows.ui.viewmanagement.core.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_ui_viewmanagement_core_h__
+#define __windows_ui_viewmanagement_core_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView ABI::Windows::UI::ViewManagement::Core::ICoreInputView
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputView;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 ABI::Windows::UI::ViewManagement::Core::ICoreInputView2
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputView2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 ABI::Windows::UI::ViewManagement::Core::ICoreInputView3
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputView3;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 ABI::Windows::UI::ViewManagement::Core::ICoreInputView4
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputView4;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs ABI::Windows::UI::ViewManagement::Core::ICoreInputViewHidingEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewHidingEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion ABI::Windows::UI::ViewManagement::Core::ICoreInputViewOcclusion
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewOcclusion;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs ABI::Windows::UI::ViewManagement::Core::ICoreInputViewOcclusionsChangedEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewOcclusionsChangedEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs ABI::Windows::UI::ViewManagement::Core::ICoreInputViewShowingEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewShowingEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics ABI::Windows::UI::ViewManagement::Core::ICoreInputViewStatics
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 ABI::Windows::UI::ViewManagement::Core::ICoreInputViewStatics2
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewStatics2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs ABI::Windows::UI::ViewManagement::Core::ICoreInputViewTransferringXYFocusEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewTransferringXYFocusEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputView_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputView_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    class CoreInputView;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputView __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputView;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputView_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewHidingEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewHidingEventArgs_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    class CoreInputViewHidingEventArgs;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewHidingEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewHidingEventArgs;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewHidingEventArgs_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusion_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusion_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    class CoreInputViewOcclusion;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusion __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusion;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusion_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionsChangedEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionsChangedEventArgs_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    class CoreInputViewOcclusionsChangedEventArgs;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionsChangedEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionsChangedEventArgs;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionsChangedEventArgs_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewShowingEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewShowingEventArgs_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    class CoreInputViewShowingEventArgs;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewShowingEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewShowingEventArgs;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewShowingEventArgs_FWD_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewTransferringXYFocusEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewTransferringXYFocusEventArgs_FWD_DEFINED__
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    class CoreInputViewTransferringXYFocusEventArgs;
+                }
+            }
+        }
+    }
+}
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewTransferringXYFocusEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewTransferringXYFocusEventArgs;
+#endif /* defined __cplusplus */
+#endif /* defined ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewTransferringXYFocusEventArgs_FWD_DEFINED__ */
+
+#ifndef ____FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,IInspectable* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewHidingEventArgs* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusionsChangedEventArgs* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewShowingEventArgs* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_FWD_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_FWD_DEFINED__
+typedef interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs;
+#ifdef __cplusplus
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewTransferringXYFocusEventArgs* >
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <asyncinfo.h>
+#include <eventtoken.h>
+#include <windowscontracts.h>
+#include <windows.foundation.h>
+#include <windows.ui.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if !defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+#define WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION 0xe0000
+#endif // defined(WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION)
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x70000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewKind_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewKind_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    enum CoreInputViewKind {
+                        CoreInputViewKind_Default = 0,
+                        CoreInputViewKind_Keyboard = 1,
+                        CoreInputViewKind_Handwriting = 2,
+                        CoreInputViewKind_Emoji = 3,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000
+                        CoreInputViewKind_Symbols = 4
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000 */
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewKind {
+    CoreInputViewKind_Default = 0,
+    CoreInputViewKind_Keyboard = 1,
+    CoreInputViewKind_Handwriting = 2,
+    CoreInputViewKind_Emoji = 3,
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000
+    CoreInputViewKind_Symbols = 4
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000 */
+};
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define CoreInputViewKind __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewKind
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewKind_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x70000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewKind __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewKind;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionKind_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionKind_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    enum CoreInputViewOcclusionKind {
+                        CoreInputViewOcclusionKind_Docked = 0,
+                        CoreInputViewOcclusionKind_Floating = 1,
+                        CoreInputViewOcclusionKind_Overlay = 2
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionKind {
+    CoreInputViewOcclusionKind_Docked = 0,
+    CoreInputViewOcclusionKind_Floating = 1,
+    CoreInputViewOcclusionKind_Overlay = 2
+};
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define CoreInputViewOcclusionKind __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionKind
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionKind_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionKind __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionKind;
+#endif /* __cplusplus */
+
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x60000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection_ENUM_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection_ENUM_DEFINED__
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    enum CoreInputViewXYFocusTransferDirection {
+                        CoreInputViewXYFocusTransferDirection_Up = 0,
+                        CoreInputViewXYFocusTransferDirection_Right = 1,
+                        CoreInputViewXYFocusTransferDirection_Down = 2,
+                        CoreInputViewXYFocusTransferDirection_Left = 3
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection {
+    CoreInputViewXYFocusTransferDirection_Up = 0,
+    CoreInputViewXYFocusTransferDirection_Right = 1,
+    CoreInputViewXYFocusTransferDirection_Down = 2,
+    CoreInputViewXYFocusTransferDirection_Left = 3
+};
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define CoreInputViewXYFocusTransferDirection __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection_ENUM_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x60000 */
+#ifndef __cplusplus
+typedef enum __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection;
+#endif /* __cplusplus */
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView ABI::Windows::UI::ViewManagement::Core::ICoreInputView
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputView;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 ABI::Windows::UI::ViewManagement::Core::ICoreInputView2
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputView2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 ABI::Windows::UI::ViewManagement::Core::ICoreInputView3
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputView3;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 ABI::Windows::UI::ViewManagement::Core::ICoreInputView4
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputView4;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs ABI::Windows::UI::ViewManagement::Core::ICoreInputViewHidingEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewHidingEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion ABI::Windows::UI::ViewManagement::Core::ICoreInputViewOcclusion
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewOcclusion;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs ABI::Windows::UI::ViewManagement::Core::ICoreInputViewOcclusionsChangedEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewOcclusionsChangedEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs ABI::Windows::UI::ViewManagement::Core::ICoreInputViewShowingEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewShowingEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics ABI::Windows::UI::ViewManagement::Core::ICoreInputViewStatics
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewStatics;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 ABI::Windows::UI::ViewManagement::Core::ICoreInputViewStatics2
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewStatics2;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs;
+#ifdef __cplusplus
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs ABI::Windows::UI::ViewManagement::Core::ICoreInputViewTransferringXYFocusEventArgs
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    interface ICoreInputViewTransferringXYFocusEventArgs;
+                }
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+#define ____FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+typedef interface __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion;
+#ifdef __cplusplus
+#define __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion ABI::Windows::Foundation::Collections::IIterable<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+#define ____FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+typedef interface __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion;
+#ifdef __cplusplus
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion ABI::Windows::Foundation::Collections::IIterator<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* >
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+#define ____FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_FWD_DEFINED__
+typedef interface __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion;
+#ifdef __cplusplus
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* >
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * ICoreInputView interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView, 0xc770cd7a, 0x7001, 0x4c32, 0xbf,0x94, 0x25,0xc1,0xf5,0x54,0xcb,0xf1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("c770cd7a-7001-4c32-bf94-25c1f554cbf1")
+                    ICoreInputView : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE add_OcclusionsChanged(
+                            ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusionsChangedEventArgs* > *handler,
+                            EventRegistrationToken *token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE remove_OcclusionsChanged(
+                            EventRegistrationToken token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE GetCoreInputViewOcclusions(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > **result) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE TryShowPrimaryView(
+                            boolean *result) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE TryHidePrimaryView(
+                            boolean *result) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView, 0xc770cd7a, 0x7001, 0x4c32, 0xbf,0x94, 0x25,0xc1,0xf5,0x54,0xcb,0xf1)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputView methods ***/
+    HRESULT (STDMETHODCALLTYPE *add_OcclusionsChanged)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This,
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_OcclusionsChanged)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This,
+        EventRegistrationToken token);
+
+    HRESULT (STDMETHODCALLTYPE *GetCoreInputViewOcclusions)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This,
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion **result);
+
+    HRESULT (STDMETHODCALLTYPE *TryShowPrimaryView)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This,
+        boolean *result);
+
+    HRESULT (STDMETHODCALLTYPE *TryHidePrimaryView)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *This,
+        boolean *result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewVtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputView methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_add_OcclusionsChanged(This,handler,token) (This)->lpVtbl->add_OcclusionsChanged(This,handler,token)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_remove_OcclusionsChanged(This,token) (This)->lpVtbl->remove_OcclusionsChanged(This,token)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetCoreInputViewOcclusions(This,result) (This)->lpVtbl->GetCoreInputViewOcclusions(This,result)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_TryShowPrimaryView(This,result) (This)->lpVtbl->TryShowPrimaryView(This,result)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_TryHidePrimaryView(This,result) (This)->lpVtbl->TryHidePrimaryView(This,result)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputView methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_add_OcclusionsChanged(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This,__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_OcclusionsChanged(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_remove_OcclusionsChanged(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_OcclusionsChanged(This,token);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetCoreInputViewOcclusions(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This,__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion **result) {
+    return This->lpVtbl->GetCoreInputViewOcclusions(This,result);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_TryShowPrimaryView(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This,boolean *result) {
+    return This->lpVtbl->TryShowPrimaryView(This,result);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_TryHidePrimaryView(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView* This,boolean *result) {
+    return This->lpVtbl->TryHidePrimaryView(This,result);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputView IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView
+#define ICoreInputViewVtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewVtbl
+#define ICoreInputView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView
+#define ICoreInputView_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_QueryInterface
+#define ICoreInputView_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_AddRef
+#define ICoreInputView_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_Release
+#define ICoreInputView_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetIids
+#define ICoreInputView_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetRuntimeClassName
+#define ICoreInputView_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetTrustLevel
+#define ICoreInputView_add_OcclusionsChanged __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_add_OcclusionsChanged
+#define ICoreInputView_remove_OcclusionsChanged __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_remove_OcclusionsChanged
+#define ICoreInputView_GetCoreInputViewOcclusions __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_GetCoreInputViewOcclusions
+#define ICoreInputView_TryShowPrimaryView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_TryShowPrimaryView
+#define ICoreInputView_TryHidePrimaryView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_TryHidePrimaryView
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+
+/*****************************************************************************
+ * ICoreInputView2 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x60000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2, 0x0ed726c1, 0xe09a, 0x4ae8, 0xae,0xdf, 0xdf,0xa4,0x85,0x7d,0x1a,0x01);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("0ed726c1-e09a-4ae8-aedf-dfa4857d1a01")
+                    ICoreInputView2 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE add_XYFocusTransferringFromPrimaryView(
+                            ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewTransferringXYFocusEventArgs* > *handler,
+                            EventRegistrationToken *token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE remove_XYFocusTransferringFromPrimaryView(
+                            EventRegistrationToken token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE add_XYFocusTransferredToPrimaryView(
+                            ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,IInspectable* > *handler,
+                            EventRegistrationToken *token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE remove_XYFocusTransferredToPrimaryView(
+                            EventRegistrationToken token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE TryTransferXYFocusToPrimaryView(
+                            ABI::Windows::Foundation::Rect origin,
+                            ABI::Windows::UI::ViewManagement::Core::CoreInputViewXYFocusTransferDirection direction,
+                            boolean *result) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2, 0x0ed726c1, 0xe09a, 0x4ae8, 0xae,0xdf, 0xdf,0xa4,0x85,0x7d,0x1a,0x01)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputView2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *add_XYFocusTransferringFromPrimaryView)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This,
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_XYFocusTransferringFromPrimaryView)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This,
+        EventRegistrationToken token);
+
+    HRESULT (STDMETHODCALLTYPE *add_XYFocusTransferredToPrimaryView)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This,
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_XYFocusTransferredToPrimaryView)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This,
+        EventRegistrationToken token);
+
+    HRESULT (STDMETHODCALLTYPE *TryTransferXYFocusToPrimaryView)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 *This,
+        __x_ABI_CWindows_CFoundation_CRect origin,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection direction,
+        boolean *result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2Vtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2 {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputView2 methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_add_XYFocusTransferringFromPrimaryView(This,handler,token) (This)->lpVtbl->add_XYFocusTransferringFromPrimaryView(This,handler,token)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_remove_XYFocusTransferringFromPrimaryView(This,token) (This)->lpVtbl->remove_XYFocusTransferringFromPrimaryView(This,token)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_add_XYFocusTransferredToPrimaryView(This,handler,token) (This)->lpVtbl->add_XYFocusTransferredToPrimaryView(This,handler,token)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_remove_XYFocusTransferredToPrimaryView(This,token) (This)->lpVtbl->remove_XYFocusTransferredToPrimaryView(This,token)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_TryTransferXYFocusToPrimaryView(This,origin,direction,result) (This)->lpVtbl->TryTransferXYFocusToPrimaryView(This,origin,direction,result)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputView2 methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_add_XYFocusTransferringFromPrimaryView(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This,__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_XYFocusTransferringFromPrimaryView(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_remove_XYFocusTransferringFromPrimaryView(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_XYFocusTransferringFromPrimaryView(This,token);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_add_XYFocusTransferredToPrimaryView(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This,__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_XYFocusTransferredToPrimaryView(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_remove_XYFocusTransferredToPrimaryView(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_XYFocusTransferredToPrimaryView(This,token);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_TryTransferXYFocusToPrimaryView(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2* This,__x_ABI_CWindows_CFoundation_CRect origin,__x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection direction,boolean *result) {
+    return This->lpVtbl->TryTransferXYFocusToPrimaryView(This,origin,direction,result);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputView2 IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2
+#define ICoreInputView2Vtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2Vtbl
+#define ICoreInputView2 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2
+#define ICoreInputView2_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_QueryInterface
+#define ICoreInputView2_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_AddRef
+#define ICoreInputView2_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_Release
+#define ICoreInputView2_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_GetIids
+#define ICoreInputView2_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_GetRuntimeClassName
+#define ICoreInputView2_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_GetTrustLevel
+#define ICoreInputView2_add_XYFocusTransferringFromPrimaryView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_add_XYFocusTransferringFromPrimaryView
+#define ICoreInputView2_remove_XYFocusTransferringFromPrimaryView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_remove_XYFocusTransferringFromPrimaryView
+#define ICoreInputView2_add_XYFocusTransferredToPrimaryView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_add_XYFocusTransferredToPrimaryView
+#define ICoreInputView2_remove_XYFocusTransferredToPrimaryView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_remove_XYFocusTransferredToPrimaryView
+#define ICoreInputView2_TryTransferXYFocusToPrimaryView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_TryTransferXYFocusToPrimaryView
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView2_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x60000 */
+
+/*****************************************************************************
+ * ICoreInputView3 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x70000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3, 0xbc941653, 0x3ab9, 0x4849, 0x8f,0x58, 0x46,0xe7,0xf0,0x35,0x3c,0xfc);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("bc941653-3ab9-4849-8f58-46e7f0353cfc")
+                    ICoreInputView3 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE TryShow(
+                            boolean *result) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE TryShowWithKind(
+                            ABI::Windows::UI::ViewManagement::Core::CoreInputViewKind type,
+                            boolean *result) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE TryHide(
+                            boolean *result) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3, 0xbc941653, 0x3ab9, 0x4849, 0x8f,0x58, 0x46,0xe7,0xf0,0x35,0x3c,0xfc)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputView3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *TryShow)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 *This,
+        boolean *result);
+
+    HRESULT (STDMETHODCALLTYPE *TryShowWithKind)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewKind type,
+        boolean *result);
+
+    HRESULT (STDMETHODCALLTYPE *TryHide)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 *This,
+        boolean *result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3Vtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3 {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputView3 methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_TryShow(This,result) (This)->lpVtbl->TryShow(This,result)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_TryShowWithKind(This,type,result) (This)->lpVtbl->TryShowWithKind(This,type,result)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_TryHide(This,result) (This)->lpVtbl->TryHide(This,result)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputView3 methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_TryShow(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3* This,boolean *result) {
+    return This->lpVtbl->TryShow(This,result);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_TryShowWithKind(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewKind type,boolean *result) {
+    return This->lpVtbl->TryShowWithKind(This,type,result);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_TryHide(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3* This,boolean *result) {
+    return This->lpVtbl->TryHide(This,result);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputView3 IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3
+#define ICoreInputView3Vtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3Vtbl
+#define ICoreInputView3 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3
+#define ICoreInputView3_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_QueryInterface
+#define ICoreInputView3_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_AddRef
+#define ICoreInputView3_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_Release
+#define ICoreInputView3_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_GetIids
+#define ICoreInputView3_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_GetRuntimeClassName
+#define ICoreInputView3_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_GetTrustLevel
+#define ICoreInputView3_TryShow __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_TryShow
+#define ICoreInputView3_TryShowWithKind __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_TryShowWithKind
+#define ICoreInputView3_TryHide __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_TryHide
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView3_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x70000 */
+
+/*****************************************************************************
+ * ICoreInputView4 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4, 0x002863d6, 0xd9ef, 0x57eb, 0x8c,0xef, 0x77,0xf6,0xce,0x1b,0x7e,0xe7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("002863d6-d9ef-57eb-8cef-77f6ce1b7ee7")
+                    ICoreInputView4 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE add_PrimaryViewShowing(
+                            ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewShowingEventArgs* > *handler,
+                            EventRegistrationToken *token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE remove_PrimaryViewShowing(
+                            EventRegistrationToken token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE add_PrimaryViewHiding(
+                            ABI::Windows::Foundation::ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewHidingEventArgs* > *handler,
+                            EventRegistrationToken *token) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE remove_PrimaryViewHiding(
+                            EventRegistrationToken token) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4, 0x002863d6, 0xd9ef, 0x57eb, 0x8c,0xef, 0x77,0xf6,0xce,0x1b,0x7e,0xe7)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputView4 methods ***/
+    HRESULT (STDMETHODCALLTYPE *add_PrimaryViewShowing)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This,
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_PrimaryViewShowing)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This,
+        EventRegistrationToken token);
+
+    HRESULT (STDMETHODCALLTYPE *add_PrimaryViewHiding)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This,
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs *handler,
+        EventRegistrationToken *token);
+
+    HRESULT (STDMETHODCALLTYPE *remove_PrimaryViewHiding)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 *This,
+        EventRegistrationToken token);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4Vtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4 {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputView4 methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_add_PrimaryViewShowing(This,handler,token) (This)->lpVtbl->add_PrimaryViewShowing(This,handler,token)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_remove_PrimaryViewShowing(This,token) (This)->lpVtbl->remove_PrimaryViewShowing(This,token)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_add_PrimaryViewHiding(This,handler,token) (This)->lpVtbl->add_PrimaryViewHiding(This,handler,token)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_remove_PrimaryViewHiding(This,token) (This)->lpVtbl->remove_PrimaryViewHiding(This,token)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputView4 methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_add_PrimaryViewShowing(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This,__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_PrimaryViewShowing(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_remove_PrimaryViewShowing(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_PrimaryViewShowing(This,token);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_add_PrimaryViewHiding(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This,__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs *handler,EventRegistrationToken *token) {
+    return This->lpVtbl->add_PrimaryViewHiding(This,handler,token);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_remove_PrimaryViewHiding(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4* This,EventRegistrationToken token) {
+    return This->lpVtbl->remove_PrimaryViewHiding(This,token);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputView4 IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4
+#define ICoreInputView4Vtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4Vtbl
+#define ICoreInputView4 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4
+#define ICoreInputView4_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_QueryInterface
+#define ICoreInputView4_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_AddRef
+#define ICoreInputView4_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_Release
+#define ICoreInputView4_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_GetIids
+#define ICoreInputView4_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_GetRuntimeClassName
+#define ICoreInputView4_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_GetTrustLevel
+#define ICoreInputView4_add_PrimaryViewShowing __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_add_PrimaryViewShowing
+#define ICoreInputView4_remove_PrimaryViewShowing __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_remove_PrimaryViewShowing
+#define ICoreInputView4_add_PrimaryViewHiding __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_add_PrimaryViewHiding
+#define ICoreInputView4_remove_PrimaryViewHiding __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_remove_PrimaryViewHiding
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView4_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000 */
+
+/*****************************************************************************
+ * ICoreInputViewHidingEventArgs interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs, 0xeada47bd, 0xbac5, 0x5336, 0x84,0x8d, 0x41,0x08,0x35,0x84,0xda,0xad);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("eada47bd-bac5-5336-848d-41083584daad")
+                    ICoreInputViewHidingEventArgs : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE TryCancel(
+                            boolean *result) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs, 0xeada47bd, 0xbac5, 0x5336, 0x84,0x8d, 0x41,0x08,0x35,0x84,0xda,0xad)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputViewHidingEventArgs methods ***/
+    HRESULT (STDMETHODCALLTYPE *TryCancel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs *This,
+        boolean *result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgsVtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputViewHidingEventArgs methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_TryCancel(This,result) (This)->lpVtbl->TryCancel(This,result)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputViewHidingEventArgs methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_TryCancel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs* This,boolean *result) {
+    return This->lpVtbl->TryCancel(This,result);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputViewHidingEventArgs IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs
+#define ICoreInputViewHidingEventArgsVtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgsVtbl
+#define ICoreInputViewHidingEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs
+#define ICoreInputViewHidingEventArgs_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_QueryInterface
+#define ICoreInputViewHidingEventArgs_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_AddRef
+#define ICoreInputViewHidingEventArgs_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_Release
+#define ICoreInputViewHidingEventArgs_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_GetIids
+#define ICoreInputViewHidingEventArgs_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_GetRuntimeClassName
+#define ICoreInputViewHidingEventArgs_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_GetTrustLevel
+#define ICoreInputViewHidingEventArgs_TryCancel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_TryCancel
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000 */
+
+/*****************************************************************************
+ * ICoreInputViewOcclusion interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion, 0xcc36ce06, 0x3865, 0x4177, 0xb5,0xf5, 0x8b,0x65,0xe0,0xb9,0xce,0x84);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("cc36ce06-3865-4177-b5f5-8b65e0b9ce84")
+                    ICoreInputViewOcclusion : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_OccludingRect(
+                            ABI::Windows::Foundation::Rect *rect) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_OcclusionKind(
+                            ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusionKind *kind) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion, 0xcc36ce06, 0x3865, 0x4177, 0xb5,0xf5, 0x8b,0x65,0xe0,0xb9,0xce,0x84)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputViewOcclusion methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_OccludingRect)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *This,
+        __x_ABI_CWindows_CFoundation_CRect *rect);
+
+    HRESULT (STDMETHODCALLTYPE *get_OcclusionKind)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionKind *kind);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionVtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputViewOcclusion methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_get_OccludingRect(This,rect) (This)->lpVtbl->get_OccludingRect(This,rect)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_get_OcclusionKind(This,kind) (This)->lpVtbl->get_OcclusionKind(This,kind)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputViewOcclusion methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_get_OccludingRect(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion* This,__x_ABI_CWindows_CFoundation_CRect *rect) {
+    return This->lpVtbl->get_OccludingRect(This,rect);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_get_OcclusionKind(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewOcclusionKind *kind) {
+    return This->lpVtbl->get_OcclusionKind(This,kind);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputViewOcclusion IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion
+#define ICoreInputViewOcclusionVtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionVtbl
+#define ICoreInputViewOcclusion __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion
+#define ICoreInputViewOcclusion_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_QueryInterface
+#define ICoreInputViewOcclusion_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_AddRef
+#define ICoreInputViewOcclusion_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_Release
+#define ICoreInputViewOcclusion_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_GetIids
+#define ICoreInputViewOcclusion_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_GetRuntimeClassName
+#define ICoreInputViewOcclusion_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_GetTrustLevel
+#define ICoreInputViewOcclusion_get_OccludingRect __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_get_OccludingRect
+#define ICoreInputViewOcclusion_get_OcclusionKind __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_get_OcclusionKind
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+
+/*****************************************************************************
+ * ICoreInputViewOcclusionsChangedEventArgs interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs, 0xbe1027e8, 0xb3ee, 0x4df7, 0x95,0x54, 0x89,0xcd,0xc6,0x60,0x82,0xc2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("be1027e8-b3ee-4df7-9554-89cdc66082c2")
+                    ICoreInputViewOcclusionsChangedEventArgs : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Occlusions(
+                            ABI::Windows::Foundation::Collections::IVectorView<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > **value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Handled(
+                            boolean *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE put_Handled(
+                            boolean value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs, 0xbe1027e8, 0xb3ee, 0x4df7, 0x95,0x54, 0x89,0xcd,0xc6,0x60,0x82,0xc2)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputViewOcclusionsChangedEventArgs methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Occlusions)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *This,
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Handled)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Handled)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *This,
+        boolean value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgsVtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputViewOcclusionsChangedEventArgs methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_get_Occlusions(This,value) (This)->lpVtbl->get_Occlusions(This,value)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_get_Handled(This,value) (This)->lpVtbl->get_Handled(This,value)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_put_Handled(This,value) (This)->lpVtbl->put_Handled(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputViewOcclusionsChangedEventArgs methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_get_Occlusions(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs* This,__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion **value) {
+    return This->lpVtbl->get_Occlusions(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_get_Handled(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs* This,boolean *value) {
+    return This->lpVtbl->get_Handled(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_put_Handled(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs* This,boolean value) {
+    return This->lpVtbl->put_Handled(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputViewOcclusionsChangedEventArgs IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs
+#define ICoreInputViewOcclusionsChangedEventArgsVtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgsVtbl
+#define ICoreInputViewOcclusionsChangedEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs
+#define ICoreInputViewOcclusionsChangedEventArgs_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_QueryInterface
+#define ICoreInputViewOcclusionsChangedEventArgs_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_AddRef
+#define ICoreInputViewOcclusionsChangedEventArgs_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_Release
+#define ICoreInputViewOcclusionsChangedEventArgs_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_GetIids
+#define ICoreInputViewOcclusionsChangedEventArgs_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_GetRuntimeClassName
+#define ICoreInputViewOcclusionsChangedEventArgs_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_GetTrustLevel
+#define ICoreInputViewOcclusionsChangedEventArgs_get_Occlusions __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_get_Occlusions
+#define ICoreInputViewOcclusionsChangedEventArgs_get_Handled __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_get_Handled
+#define ICoreInputViewOcclusionsChangedEventArgs_put_Handled __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_put_Handled
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+
+/*****************************************************************************
+ * ICoreInputViewShowingEventArgs interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs, 0xca52261b, 0xfb9e, 0x5daf, 0xa9,0x8c, 0x26,0x2b,0x8b,0x76,0xaf,0x50);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("ca52261b-fb9e-5daf-a98c-262b8b76af50")
+                    ICoreInputViewShowingEventArgs : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE TryCancel(
+                            boolean *result) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs, 0xca52261b, 0xfb9e, 0x5daf, 0xa9,0x8c, 0x26,0x2b,0x8b,0x76,0xaf,0x50)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputViewShowingEventArgs methods ***/
+    HRESULT (STDMETHODCALLTYPE *TryCancel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs *This,
+        boolean *result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgsVtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputViewShowingEventArgs methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_TryCancel(This,result) (This)->lpVtbl->TryCancel(This,result)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputViewShowingEventArgs methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_TryCancel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs* This,boolean *result) {
+    return This->lpVtbl->TryCancel(This,result);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputViewShowingEventArgs IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs
+#define ICoreInputViewShowingEventArgsVtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgsVtbl
+#define ICoreInputViewShowingEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs
+#define ICoreInputViewShowingEventArgs_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_QueryInterface
+#define ICoreInputViewShowingEventArgs_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_AddRef
+#define ICoreInputViewShowingEventArgs_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_Release
+#define ICoreInputViewShowingEventArgs_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_GetIids
+#define ICoreInputViewShowingEventArgs_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_GetRuntimeClassName
+#define ICoreInputViewShowingEventArgs_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_GetTrustLevel
+#define ICoreInputViewShowingEventArgs_TryCancel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_TryCancel
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000 */
+
+/*****************************************************************************
+ * ICoreInputViewStatics interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics, 0x7d9b97cd, 0xedbe, 0x49cf, 0xa5,0x4f, 0x33,0x7d,0xe0,0x52,0x90,0x7f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("7d9b97cd-edbe-49cf-a54f-337de052907f")
+                    ICoreInputViewStatics : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE GetForCurrentView(
+                            ABI::Windows::UI::ViewManagement::Core::ICoreInputView **result) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics, 0x7d9b97cd, 0xedbe, 0x49cf, 0xa5,0x4f, 0x33,0x7d,0xe0,0x52,0x90,0x7f)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputViewStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetForCurrentView)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView **result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStaticsVtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputViewStatics methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetForCurrentView(This,result) (This)->lpVtbl->GetForCurrentView(This,result)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputViewStatics methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetForCurrentView(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView **result) {
+    return This->lpVtbl->GetForCurrentView(This,result);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputViewStatics IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics
+#define ICoreInputViewStaticsVtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStaticsVtbl
+#define ICoreInputViewStatics __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics
+#define ICoreInputViewStatics_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_QueryInterface
+#define ICoreInputViewStatics_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_AddRef
+#define ICoreInputViewStatics_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_Release
+#define ICoreInputViewStatics_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetIids
+#define ICoreInputViewStatics_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetRuntimeClassName
+#define ICoreInputViewStatics_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetTrustLevel
+#define ICoreInputViewStatics_GetForCurrentView __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_GetForCurrentView
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+
+/*****************************************************************************
+ * ICoreInputViewStatics2 interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x80000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2, 0x7ebc0862, 0xd049, 0x4e52, 0x87,0xb0, 0x1e,0x90,0xe9,0x8c,0x49,0xed);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("7ebc0862-d049-4e52-87b0-1e90e98c49ed")
+                    ICoreInputViewStatics2 : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE GetForUIContext(
+                            ABI::Windows::UI::IUIContext *context,
+                            ABI::Windows::UI::ViewManagement::Core::ICoreInputView **result) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2, 0x7ebc0862, 0xd049, 0x4e52, 0x87,0xb0, 0x1e,0x90,0xe9,0x8c,0x49,0xed)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputViewStatics2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetForUIContext)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 *This,
+        __x_ABI_CWindows_CUI_CIUIContext *context,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView **result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2Vtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2 {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputViewStatics2 methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetForUIContext(This,context,result) (This)->lpVtbl->GetForUIContext(This,context,result)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputViewStatics2 methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetForUIContext(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2* This,__x_ABI_CWindows_CUI_CIUIContext *context,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView **result) {
+    return This->lpVtbl->GetForUIContext(This,context,result);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputViewStatics2 IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2
+#define ICoreInputViewStatics2Vtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2Vtbl
+#define ICoreInputViewStatics2 __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2
+#define ICoreInputViewStatics2_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_QueryInterface
+#define ICoreInputViewStatics2_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_AddRef
+#define ICoreInputViewStatics2_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_Release
+#define ICoreInputViewStatics2_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetIids
+#define ICoreInputViewStatics2_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetRuntimeClassName
+#define ICoreInputViewStatics2_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetTrustLevel
+#define ICoreInputViewStatics2_GetForUIContext __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_GetForUIContext
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewStatics2_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x80000 */
+
+/*****************************************************************************
+ * ICoreInputViewTransferringXYFocusEventArgs interface
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x60000
+#ifndef ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs, 0x04de169f, 0xba02, 0x4850, 0x8b,0x55, 0xd8,0x2d,0x03,0xba,0x6d,0x7f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace ViewManagement {
+                namespace Core {
+                    MIDL_INTERFACE("04de169f-ba02-4850-8b55-d82d03ba6d7f")
+                    ICoreInputViewTransferringXYFocusEventArgs : public IInspectable
+                    {
+                        virtual HRESULT STDMETHODCALLTYPE get_Origin(
+                            ABI::Windows::Foundation::Rect *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_Direction(
+                            ABI::Windows::UI::ViewManagement::Core::CoreInputViewXYFocusTransferDirection *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE put_TransferHandled(
+                            boolean value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_TransferHandled(
+                            boolean *value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE put_KeepPrimaryViewVisible(
+                            boolean value) = 0;
+
+                        virtual HRESULT STDMETHODCALLTYPE get_KeepPrimaryViewVisible(
+                            boolean *value) = 0;
+
+                    };
+                }
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs, 0x04de169f, 0xba02, 0x4850, 0x8b,0x55, 0xd8,0x2d,0x03,0xba,0x6d,0x7f)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        TrustLevel *trustLevel);
+
+    /*** ICoreInputViewTransferringXYFocusEventArgs methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Origin)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        __x_ABI_CWindows_CFoundation_CRect *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Direction)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_TransferHandled)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        boolean value);
+
+    HRESULT (STDMETHODCALLTYPE *get_TransferHandled)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_KeepPrimaryViewVisible)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        boolean value);
+
+    HRESULT (STDMETHODCALLTYPE *get_KeepPrimaryViewVisible)(
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *This,
+        boolean *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgsVtbl;
+
+interface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs {
+    CONST_VTBL __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICoreInputViewTransferringXYFocusEventArgs methods ***/
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_Origin(This,value) (This)->lpVtbl->get_Origin(This,value)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_Direction(This,value) (This)->lpVtbl->get_Direction(This,value)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_put_TransferHandled(This,value) (This)->lpVtbl->put_TransferHandled(This,value)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_TransferHandled(This,value) (This)->lpVtbl->get_TransferHandled(This,value)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_put_KeepPrimaryViewVisible(This,value) (This)->lpVtbl->put_KeepPrimaryViewVisible(This,value)
+#define __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_KeepPrimaryViewVisible(This,value) (This)->lpVtbl->get_KeepPrimaryViewVisible(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_QueryInterface(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_AddRef(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_Release(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_GetIids(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_GetRuntimeClassName(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_GetTrustLevel(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICoreInputViewTransferringXYFocusEventArgs methods ***/
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_Origin(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,__x_ABI_CWindows_CFoundation_CRect *value) {
+    return This->lpVtbl->get_Origin(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_Direction(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CCoreInputViewXYFocusTransferDirection *value) {
+    return This->lpVtbl->get_Direction(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_put_TransferHandled(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,boolean value) {
+    return This->lpVtbl->put_TransferHandled(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_TransferHandled(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,boolean *value) {
+    return This->lpVtbl->get_TransferHandled(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_put_KeepPrimaryViewVisible(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,boolean value) {
+    return This->lpVtbl->put_KeepPrimaryViewVisible(This,value);
+}
+static inline HRESULT __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_KeepPrimaryViewVisible(__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs* This,boolean *value) {
+    return This->lpVtbl->get_KeepPrimaryViewVisible(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_UI_ViewManagement_Core
+#define IID_ICoreInputViewTransferringXYFocusEventArgs IID___x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs
+#define ICoreInputViewTransferringXYFocusEventArgsVtbl __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgsVtbl
+#define ICoreInputViewTransferringXYFocusEventArgs __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs
+#define ICoreInputViewTransferringXYFocusEventArgs_QueryInterface __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_QueryInterface
+#define ICoreInputViewTransferringXYFocusEventArgs_AddRef __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_AddRef
+#define ICoreInputViewTransferringXYFocusEventArgs_Release __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_Release
+#define ICoreInputViewTransferringXYFocusEventArgs_GetIids __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_GetIids
+#define ICoreInputViewTransferringXYFocusEventArgs_GetRuntimeClassName __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_GetRuntimeClassName
+#define ICoreInputViewTransferringXYFocusEventArgs_GetTrustLevel __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_GetTrustLevel
+#define ICoreInputViewTransferringXYFocusEventArgs_get_Origin __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_Origin
+#define ICoreInputViewTransferringXYFocusEventArgs_get_Direction __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_Direction
+#define ICoreInputViewTransferringXYFocusEventArgs_put_TransferHandled __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_put_TransferHandled
+#define ICoreInputViewTransferringXYFocusEventArgs_get_TransferHandled __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_TransferHandled
+#define ICoreInputViewTransferringXYFocusEventArgs_put_KeepPrimaryViewVisible __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_put_KeepPrimaryViewVisible
+#define ICoreInputViewTransferringXYFocusEventArgs_get_KeepPrimaryViewVisible __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_get_KeepPrimaryViewVisible
+#endif /* WIDL_using_Windows_UI_ViewManagement_Core */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x60000 */
+
+/*
+ * Class Windows.UI.ViewManagement.Core.CoreInputView
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+#ifndef RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputView_DEFINED
+#define RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputView_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputView[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputView[] = L"Windows.UI.ViewManagement.Core.CoreInputView";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputView[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputView_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+
+/*
+ * Class Windows.UI.ViewManagement.Core.CoreInputViewHidingEventArgs
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000
+#ifndef RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewHidingEventArgs_DEFINED
+#define RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewHidingEventArgs_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewHidingEventArgs[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','H','i','d','i','n','g','E','v','e','n','t','A','r','g','s',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewHidingEventArgs[] = L"Windows.UI.ViewManagement.Core.CoreInputViewHidingEventArgs";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewHidingEventArgs[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','H','i','d','i','n','g','E','v','e','n','t','A','r','g','s',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewHidingEventArgs_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000 */
+
+/*
+ * Class Windows.UI.ViewManagement.Core.CoreInputViewOcclusion
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+#ifndef RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewOcclusion_DEFINED
+#define RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewOcclusion_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewOcclusion[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','O','c','c','l','u','s','i','o','n',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewOcclusion[] = L"Windows.UI.ViewManagement.Core.CoreInputViewOcclusion";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewOcclusion[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','O','c','c','l','u','s','i','o','n',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewOcclusion_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+
+/*
+ * Class Windows.UI.ViewManagement.Core.CoreInputViewOcclusionsChangedEventArgs
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000
+#ifndef RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewOcclusionsChangedEventArgs_DEFINED
+#define RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewOcclusionsChangedEventArgs_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewOcclusionsChangedEventArgs[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','O','c','c','l','u','s','i','o','n','s','C','h','a','n','g','e','d','E','v','e','n','t','A','r','g','s',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewOcclusionsChangedEventArgs[] = L"Windows.UI.ViewManagement.Core.CoreInputViewOcclusionsChangedEventArgs";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewOcclusionsChangedEventArgs[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','O','c','c','l','u','s','i','o','n','s','C','h','a','n','g','e','d','E','v','e','n','t','A','r','g','s',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewOcclusionsChangedEventArgs_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x50000 */
+
+/*
+ * Class Windows.UI.ViewManagement.Core.CoreInputViewShowingEventArgs
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000
+#ifndef RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewShowingEventArgs_DEFINED
+#define RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewShowingEventArgs_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewShowingEventArgs[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','S','h','o','w','i','n','g','E','v','e','n','t','A','r','g','s',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewShowingEventArgs[] = L"Windows.UI.ViewManagement.Core.CoreInputViewShowingEventArgs";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewShowingEventArgs[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','S','h','o','w','i','n','g','E','v','e','n','t','A','r','g','s',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewShowingEventArgs_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0xa0000 */
+
+/*
+ * Class Windows.UI.ViewManagement.Core.CoreInputViewTransferringXYFocusEventArgs
+ */
+#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x60000
+#ifndef RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewTransferringXYFocusEventArgs_DEFINED
+#define RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewTransferringXYFocusEventArgs_DEFINED
+#if !defined(_MSC_VER) && !defined(__MINGW32__)
+static const WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewTransferringXYFocusEventArgs[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','T','r','a','n','s','f','e','r','r','i','n','g','X','Y','F','o','c','u','s','E','v','e','n','t','A','r','g','s',0};
+#elif defined(__GNUC__) && !defined(__cplusplus)
+const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewTransferringXYFocusEventArgs[] = L"Windows.UI.ViewManagement.Core.CoreInputViewTransferringXYFocusEventArgs";
+#else
+extern const DECLSPEC_SELECTANY WCHAR RuntimeClass_Windows_UI_ViewManagement_Core_CoreInputViewTransferringXYFocusEventArgs[] = {'W','i','n','d','o','w','s','.','U','I','.','V','i','e','w','M','a','n','a','g','e','m','e','n','t','.','C','o','r','e','.','C','o','r','e','I','n','p','u','t','V','i','e','w','T','r','a','n','s','f','e','r','r','i','n','g','X','Y','F','o','c','u','s','E','v','e','n','t','A','r','g','s',0};
+#endif
+#endif /* RUNTIMECLASS_Windows_UI_ViewManagement_Core_CoreInputViewTransferringXYFocusEventArgs_DEFINED */
+#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x60000 */
+
+/*****************************************************************************
+ * IIterable<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > interface
+ */
+#ifndef ____FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_INTERFACE_DEFINED__
+#define ____FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion, 0x0a11958b, 0x63da, 0x5566, 0x91,0x3a, 0x18,0x05,0x50,0xda,0xd2,0x6a);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("0a11958b-63da-5566-913a-180550dad26a")
+                IIterable<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > : IIterable_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion*, ABI::Windows::UI::ViewManagement::Core::ICoreInputViewOcclusion* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion, 0x0a11958b, 0x63da, 0x5566, 0x91,0x3a, 0x18,0x05,0x50,0xda,0xd2,0x6a)
+#endif
+#else
+typedef struct __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterable<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *First)(
+        __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion **value);
+
+    END_INTERFACE
+} __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl;
+
+interface __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion {
+    CONST_VTBL __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterable<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > methods ***/
+#define __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_First(This,value) (This)->lpVtbl->First(This,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_QueryInterface(__FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_AddRef(__FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_Release(__FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetIids(__FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetRuntimeClassName(__FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetTrustLevel(__FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterable<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > methods ***/
+static inline HRESULT __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_First(__FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion **value) {
+    return This->lpVtbl->First(This,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterable_CoreInputViewOcclusion IID___FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion
+#define IIterable_CoreInputViewOcclusionVtbl __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl
+#define IIterable_CoreInputViewOcclusion __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion
+#define IIterable_CoreInputViewOcclusion_QueryInterface __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_QueryInterface
+#define IIterable_CoreInputViewOcclusion_AddRef __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_AddRef
+#define IIterable_CoreInputViewOcclusion_Release __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_Release
+#define IIterable_CoreInputViewOcclusion_GetIids __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetIids
+#define IIterable_CoreInputViewOcclusion_GetRuntimeClassName __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetRuntimeClassName
+#define IIterable_CoreInputViewOcclusion_GetTrustLevel __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetTrustLevel
+#define IIterable_CoreInputViewOcclusion_First __FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_First
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterable_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IIterator<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > interface
+ */
+#ifndef ____FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_INTERFACE_DEFINED__
+#define ____FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion, 0x5bb57354, 0x4f40, 0x5ef3, 0xa5,0xd1, 0x6a,0x60,0x49,0xf9,0x05,0xa1);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("5bb57354-4f40-5ef3-a5d1-6a6049f905a1")
+                IIterator<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > : IIterator_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion*, ABI::Windows::UI::ViewManagement::Core::ICoreInputViewOcclusion* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion, 0x5bb57354, 0x4f40, 0x5ef3, 0xa5,0xd1, 0x6a,0x60,0x49,0xf9,0x05,0xa1)
+#endif
+#else
+typedef struct __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        TrustLevel *trustLevel);
+
+    /*** IIterator<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Current)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_HasCurrent)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *MoveNext)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        UINT32 items_size,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl;
+
+interface __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion {
+    CONST_VTBL __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IIterator<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > methods ***/
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_get_Current(This,value) (This)->lpVtbl->get_Current(This,value)
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_get_HasCurrent(This,value) (This)->lpVtbl->get_HasCurrent(This,value)
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_MoveNext(This,value) (This)->lpVtbl->MoveNext(This,value)
+#define __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetMany(This,items_size,items,value) (This)->lpVtbl->GetMany(This,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_QueryInterface(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_AddRef(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_Release(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetIids(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetRuntimeClassName(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetTrustLevel(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IIterator<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > methods ***/
+static inline HRESULT __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_get_Current(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion **value) {
+    return This->lpVtbl->get_Current(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_get_HasCurrent(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,boolean *value) {
+    return This->lpVtbl->get_HasCurrent(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_MoveNext(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,boolean *value) {
+    return This->lpVtbl->MoveNext(This,value);
+}
+static inline HRESULT __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetMany(__FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,UINT32 items_size,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IIterator_CoreInputViewOcclusion IID___FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion
+#define IIterator_CoreInputViewOcclusionVtbl __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl
+#define IIterator_CoreInputViewOcclusion __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion
+#define IIterator_CoreInputViewOcclusion_QueryInterface __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_QueryInterface
+#define IIterator_CoreInputViewOcclusion_AddRef __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_AddRef
+#define IIterator_CoreInputViewOcclusion_Release __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_Release
+#define IIterator_CoreInputViewOcclusion_GetIids __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetIids
+#define IIterator_CoreInputViewOcclusion_GetRuntimeClassName __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetRuntimeClassName
+#define IIterator_CoreInputViewOcclusion_GetTrustLevel __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetTrustLevel
+#define IIterator_CoreInputViewOcclusion_get_Current __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_get_Current
+#define IIterator_CoreInputViewOcclusion_get_HasCurrent __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_get_HasCurrent
+#define IIterator_CoreInputViewOcclusion_MoveNext __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_MoveNext
+#define IIterator_CoreInputViewOcclusion_GetMany __FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIIterator_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVectorView<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > interface
+ */
+#ifndef ____FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_INTERFACE_DEFINED__
+#define ____FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion, 0xe0963578, 0xa246, 0x5680, 0x86,0xd1, 0x27,0x51,0x94,0x23,0xe2,0x12);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Collections {
+                template<>
+                MIDL_INTERFACE("e0963578-a246-5680-86d1-27519423e212")
+                IVectorView<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > : IVectorView_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion*, ABI::Windows::UI::ViewManagement::Core::ICoreInputViewOcclusion* > >
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion, 0xe0963578, 0xa246, 0x5680, 0x86,0xd1, 0x27,0x51,0x94,0x23,0xe2,0x12)
+#endif
+#else
+typedef struct __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        TrustLevel *trustLevel);
+
+    /*** IVectorView<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetAt)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        UINT32 index,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *IndexOf)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *element,
+        UINT32 *index,
+        BOOLEAN *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetMany)(
+        __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion *This,
+        UINT32 start_index,
+        UINT32 items_size,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion **items,
+        UINT32 *value);
+
+    END_INTERFACE
+} __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl;
+
+interface __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion {
+    CONST_VTBL __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVectorView<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > methods ***/
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetAt(This,index,value) (This)->lpVtbl->GetAt(This,index,value)
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_IndexOf(This,element,index,value) (This)->lpVtbl->IndexOf(This,element,index,value)
+#define __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetMany(This,start_index,items_size,items,value) (This)->lpVtbl->GetMany(This,start_index,items_size,items,value)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_QueryInterface(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_AddRef(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_Release(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetIids(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static inline HRESULT __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetRuntimeClassName(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static inline HRESULT __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetTrustLevel(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVectorView<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusion* > methods ***/
+static inline HRESULT __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetAt(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,UINT32 index,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion **value) {
+    return This->lpVtbl->GetAt(This,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_get_Size(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,UINT32 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_IndexOf(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion *element,UINT32 *index,BOOLEAN *value) {
+    return This->lpVtbl->IndexOf(This,element,index,value);
+}
+static inline HRESULT __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetMany(__FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion* This,UINT32 start_index,UINT32 items_size,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusion **items,UINT32 *value) {
+    return This->lpVtbl->GetMany(This,start_index,items_size,items,value);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation_Collections
+#define IID_IVectorView_CoreInputViewOcclusion IID___FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion
+#define IVectorView_CoreInputViewOcclusionVtbl __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionVtbl
+#define IVectorView_CoreInputViewOcclusion __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion
+#define IVectorView_CoreInputViewOcclusion_QueryInterface __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_QueryInterface
+#define IVectorView_CoreInputViewOcclusion_AddRef __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_AddRef
+#define IVectorView_CoreInputViewOcclusion_Release __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_Release
+#define IVectorView_CoreInputViewOcclusion_GetIids __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetIids
+#define IVectorView_CoreInputViewOcclusion_GetRuntimeClassName __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetRuntimeClassName
+#define IVectorView_CoreInputViewOcclusion_GetTrustLevel __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetTrustLevel
+#define IVectorView_CoreInputViewOcclusion_GetAt __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetAt
+#define IVectorView_CoreInputViewOcclusion_get_Size __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_get_Size
+#define IVectorView_CoreInputViewOcclusion_IndexOf __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_IndexOf
+#define IVectorView_CoreInputViewOcclusion_GetMany __FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_GetMany
+#endif /* WIDL_using_Windows_Foundation_Collections */
+#endif
+
+#endif
+
+#endif  /* ____FIVectorView_1_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusion_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,IInspectable* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable, 0x2bc0e7f6, 0xc772, 0x56e0, 0x94,0x39, 0x65,0x06,0x66,0xc7,0x8d,0x0c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("2bc0e7f6-c772-56e0-9439-650666c78d0c")
+            ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,IInspectable* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputView*, ABI::Windows::UI::ViewManagement::Core::ICoreInputView* >, IInspectable* >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable, 0x2bc0e7f6, 0xc772, 0x56e0, 0x94,0x39, 0x65,0x06,0x66,0xc7,0x8d,0x0c)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectableVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable *This);
+
+    /*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,IInspectable* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,
+        IInspectable *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectableVtbl;
+
+interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectableVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,IInspectable* > methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_QueryInterface(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_AddRef(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_Release(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,IInspectable* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_Invoke(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,IInspectable *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_CoreInputView_IInspectable IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable
+#define ITypedEventHandler_CoreInputView_IInspectableVtbl __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectableVtbl
+#define ITypedEventHandler_CoreInputView_IInspectable __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable
+#define ITypedEventHandler_CoreInputView_IInspectable_QueryInterface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_QueryInterface
+#define ITypedEventHandler_CoreInputView_IInspectable_AddRef __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_AddRef
+#define ITypedEventHandler_CoreInputView_IInspectable_Release __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_Release
+#define ITypedEventHandler_CoreInputView_IInspectable_Invoke __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_IInspectable_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewHidingEventArgs* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs, 0x3188afc6, 0x4b93, 0x58a0, 0xb5,0xb0, 0xcb,0xed,0x65,0xbe,0x0c,0x7e);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("3188afc6-4b93-58a0-b5b0-cbed65be0c7e")
+            ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewHidingEventArgs* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputView*, ABI::Windows::UI::ViewManagement::Core::ICoreInputView* >, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputViewHidingEventArgs*, ABI::Windows::UI::ViewManagement::Core::ICoreInputViewHidingEventArgs* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs, 0x3188afc6, 0x4b93, 0x58a0, 0xb5,0xb0, 0xcb,0xed,0x65,0xbe,0x0c,0x7e)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs *This);
+
+    /*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewHidingEventArgs* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgsVtbl;
+
+interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewHidingEventArgs* > methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_QueryInterface(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_AddRef(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_Release(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewHidingEventArgs* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_Invoke(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewHidingEventArgs *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_CoreInputView_CoreInputViewHidingEventArgs IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs
+#define ITypedEventHandler_CoreInputView_CoreInputViewHidingEventArgsVtbl __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgsVtbl
+#define ITypedEventHandler_CoreInputView_CoreInputViewHidingEventArgs __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs
+#define ITypedEventHandler_CoreInputView_CoreInputViewHidingEventArgs_QueryInterface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_QueryInterface
+#define ITypedEventHandler_CoreInputView_CoreInputViewHidingEventArgs_AddRef __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_AddRef
+#define ITypedEventHandler_CoreInputView_CoreInputViewHidingEventArgs_Release __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_Release
+#define ITypedEventHandler_CoreInputView_CoreInputViewHidingEventArgs_Invoke __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewHidingEventArgs_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusionsChangedEventArgs* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs, 0x5adecf04, 0xedd1, 0x5133, 0xab,0xc7, 0x58,0x2a,0x02,0x7f,0x09,0xbb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("5adecf04-edd1-5133-abc7-582a027f09bb")
+            ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusionsChangedEventArgs* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputView*, ABI::Windows::UI::ViewManagement::Core::ICoreInputView* >, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusionsChangedEventArgs*, ABI::Windows::UI::ViewManagement::Core::ICoreInputViewOcclusionsChangedEventArgs* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs, 0x5adecf04, 0xedd1, 0x5133, 0xab,0xc7, 0x58,0x2a,0x02,0x7f,0x09,0xbb)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs *This);
+
+    /*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusionsChangedEventArgs* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgsVtbl;
+
+interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusionsChangedEventArgs* > methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_QueryInterface(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_AddRef(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_Release(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewOcclusionsChangedEventArgs* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_Invoke(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewOcclusionsChangedEventArgs *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_CoreInputView_CoreInputViewOcclusionsChangedEventArgs IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs
+#define ITypedEventHandler_CoreInputView_CoreInputViewOcclusionsChangedEventArgsVtbl __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgsVtbl
+#define ITypedEventHandler_CoreInputView_CoreInputViewOcclusionsChangedEventArgs __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs
+#define ITypedEventHandler_CoreInputView_CoreInputViewOcclusionsChangedEventArgs_QueryInterface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_QueryInterface
+#define ITypedEventHandler_CoreInputView_CoreInputViewOcclusionsChangedEventArgs_AddRef __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_AddRef
+#define ITypedEventHandler_CoreInputView_CoreInputViewOcclusionsChangedEventArgs_Release __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_Release
+#define ITypedEventHandler_CoreInputView_CoreInputViewOcclusionsChangedEventArgs_Invoke __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewOcclusionsChangedEventArgs_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewShowingEventArgs* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs, 0xa300e2f9, 0x737b, 0x5330, 0x8e,0xa2, 0x68,0xe7,0xa3,0xaa,0xed,0xb2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("a300e2f9-737b-5330-8ea2-68e7a3aaedb2")
+            ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewShowingEventArgs* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputView*, ABI::Windows::UI::ViewManagement::Core::ICoreInputView* >, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputViewShowingEventArgs*, ABI::Windows::UI::ViewManagement::Core::ICoreInputViewShowingEventArgs* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs, 0xa300e2f9, 0x737b, 0x5330, 0x8e,0xa2, 0x68,0xe7,0xa3,0xaa,0xed,0xb2)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs *This);
+
+    /*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewShowingEventArgs* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgsVtbl;
+
+interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewShowingEventArgs* > methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_QueryInterface(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_AddRef(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_Release(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewShowingEventArgs* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_Invoke(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewShowingEventArgs *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_CoreInputView_CoreInputViewShowingEventArgs IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs
+#define ITypedEventHandler_CoreInputView_CoreInputViewShowingEventArgsVtbl __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgsVtbl
+#define ITypedEventHandler_CoreInputView_CoreInputViewShowingEventArgs __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs
+#define ITypedEventHandler_CoreInputView_CoreInputViewShowingEventArgs_QueryInterface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_QueryInterface
+#define ITypedEventHandler_CoreInputView_CoreInputViewShowingEventArgs_AddRef __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_AddRef
+#define ITypedEventHandler_CoreInputView_CoreInputViewShowingEventArgs_Release __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_Release
+#define ITypedEventHandler_CoreInputView_CoreInputViewShowingEventArgs_Invoke __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewShowingEventArgs_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewTransferringXYFocusEventArgs* > interface
+ */
+#ifndef ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_INTERFACE_DEFINED__
+#define ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs, 0x881e8198, 0x7ff6, 0x5cd9, 0x8a,0x64, 0x6d,0xd4,0x29,0x22,0x67,0xad);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template<>
+            MIDL_INTERFACE("881e8198-7ff6-5cd9-8a64-6dd4292267ad")
+            ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewTransferringXYFocusEventArgs* > : ITypedEventHandler_impl<ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputView*, ABI::Windows::UI::ViewManagement::Core::ICoreInputView* >, ABI::Windows::Foundation::Internal::AggregateType<ABI::Windows::UI::ViewManagement::Core::CoreInputViewTransferringXYFocusEventArgs*, ABI::Windows::UI::ViewManagement::Core::ICoreInputViewTransferringXYFocusEventArgs* > >
+            {
+            };
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs, 0x881e8198, 0x7ff6, 0x5cd9, 0x8a,0x64, 0x6d,0xd4,0x29,0x22,0x67,0xad)
+#endif
+#else
+typedef struct __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs *This);
+
+    /*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewTransferringXYFocusEventArgs* > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs *This,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,
+        __x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *args);
+
+    END_INTERFACE
+} __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgsVtbl;
+
+interface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs {
+    CONST_VTBL __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_Release(This) (This)->lpVtbl->Release(This)
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewTransferringXYFocusEventArgs* > methods ***/
+#define __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_Invoke(This,sender,args) (This)->lpVtbl->Invoke(This,sender,args)
+#else
+/*** IUnknown methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_QueryInterface(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_AddRef(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static inline ULONG __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_Release(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ITypedEventHandler<ABI::Windows::UI::ViewManagement::Core::CoreInputView*,ABI::Windows::UI::ViewManagement::Core::CoreInputViewTransferringXYFocusEventArgs* > methods ***/
+static inline HRESULT __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_Invoke(__FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs* This,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputView *sender,__x_ABI_CWindows_CUI_CViewManagement_CCore_CICoreInputViewTransferringXYFocusEventArgs *args) {
+    return This->lpVtbl->Invoke(This,sender,args);
+}
+#endif
+#ifdef WIDL_using_Windows_Foundation
+#define IID_ITypedEventHandler_CoreInputView_CoreInputViewTransferringXYFocusEventArgs IID___FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs
+#define ITypedEventHandler_CoreInputView_CoreInputViewTransferringXYFocusEventArgsVtbl __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgsVtbl
+#define ITypedEventHandler_CoreInputView_CoreInputViewTransferringXYFocusEventArgs __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs
+#define ITypedEventHandler_CoreInputView_CoreInputViewTransferringXYFocusEventArgs_QueryInterface __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_QueryInterface
+#define ITypedEventHandler_CoreInputView_CoreInputViewTransferringXYFocusEventArgs_AddRef __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_AddRef
+#define ITypedEventHandler_CoreInputView_CoreInputViewTransferringXYFocusEventArgs_Release __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_Release
+#define ITypedEventHandler_CoreInputView_CoreInputViewTransferringXYFocusEventArgs_Invoke __FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_Invoke
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____FITypedEventHandler_2_Windows__CUI__CViewManagement__CCore__CCoreInputView_Windows__CUI__CViewManagement__CCore__CCoreInputViewTransferringXYFocusEventArgs_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_ui_viewmanagement_core_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.viewmanagement.core.idl b/mingw-w64-headers/include/windows.ui.viewmanagement.core.idl
new file mode 100644
index 0000000..be392aa
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.viewmanagement.core.idl
@@ -0,0 +1,292 @@
+/*
+ * Copyright 2025 Zhiyi Zhang for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifdef __WIDL__
+#pragma winrt ns_prefix
+#endif
+
+#ifndef DO_NO_IMPORTS
+import "inspectable.idl";
+import "asyncinfo.idl";
+import "eventtoken.idl";
+import "windowscontracts.idl";
+import "windows.foundation.idl";
+import "windows.ui.idl";
+#endif
+
+namespace Windows.UI.ViewManagement.Core
+{
+    typedef enum CoreInputViewKind CoreInputViewKind;
+    typedef enum CoreInputViewOcclusionKind CoreInputViewOcclusionKind;
+    typedef enum CoreInputViewXYFocusTransferDirection CoreInputViewXYFocusTransferDirection;
+
+    interface ICoreInputView;
+    interface ICoreInputView2;
+    interface ICoreInputView3;
+    interface ICoreInputView4;
+    interface ICoreInputViewHidingEventArgs;
+    interface ICoreInputViewOcclusion;
+    interface ICoreInputViewOcclusionsChangedEventArgs;
+    interface ICoreInputViewShowingEventArgs;
+    interface ICoreInputViewStatics;
+    interface ICoreInputViewStatics2;
+    interface ICoreInputViewTransferringXYFocusEventArgs;
+
+    runtimeclass CoreInputView;
+    runtimeclass CoreInputViewHidingEventArgs;
+    runtimeclass CoreInputViewOcclusion;
+    runtimeclass CoreInputViewOcclusionsChangedEventArgs;
+    runtimeclass CoreInputViewShowingEventArgs;
+    runtimeclass CoreInputViewTransferringXYFocusEventArgs;
+
+    declare
+    {
+        interface Windows.Foundation.Collections.IIterable<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *>;
+        interface Windows.Foundation.Collections.IIterator<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *>;
+        interface Windows.Foundation.Collections.IVectorView<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, IInspectable *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewHidingEventArgs *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewOcclusionsChangedEventArgs *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewShowingEventArgs *>;
+        interface Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewTransferringXYFocusEventArgs *>;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 7.0)
+    ]
+    enum CoreInputViewKind
+    {
+        Default = 0,
+        Keyboard = 1,
+        Handwriting = 2,
+        Emoji = 3,
+        [contract(Windows.Foundation.UniversalApiContract, 10.0)] Symbols = 4
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 5.0)
+    ]
+    enum CoreInputViewOcclusionKind
+    {
+        Docked = 0,
+        Floating = 1,
+        Overlay = 2
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 6.0)
+    ]
+    enum CoreInputViewXYFocusTransferDirection
+    {
+        Up = 0,
+        Right = 1,
+        Down = 2,
+        Left = 3
+    };
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 5.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView),
+        uuid(c770cd7a-7001-4c32-bf94-25c1f554cbf1)
+    ]
+    interface ICoreInputView : IInspectable
+    {
+        [eventadd] HRESULT OcclusionsChanged([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewOcclusionsChangedEventArgs *> *handler, [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT OcclusionsChanged([in] EventRegistrationToken token);
+        HRESULT GetCoreInputViewOcclusions([out, retval] Windows.Foundation.Collections.IVectorView<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *> **result);
+        HRESULT TryShowPrimaryView([out, retval] boolean *result);
+        HRESULT TryHidePrimaryView([out, retval] boolean *result);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 6.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView),
+        uuid(0ed726c1-e09a-4ae8-aedf-dfa4857d1a01)
+    ]
+    interface ICoreInputView2 : IInspectable
+    {
+        [eventadd] HRESULT XYFocusTransferringFromPrimaryView([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewTransferringXYFocusEventArgs *> *handler, [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT XYFocusTransferringFromPrimaryView([in] EventRegistrationToken token);
+        [eventadd] HRESULT XYFocusTransferredToPrimaryView([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, IInspectable *> *handler, [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT XYFocusTransferredToPrimaryView([in] EventRegistrationToken token);
+        HRESULT TryTransferXYFocusToPrimaryView([in] Windows.Foundation.Rect origin, [in] Windows.UI.ViewManagement.Core.CoreInputViewXYFocusTransferDirection direction, [out, retval] boolean *result);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 7.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView),
+        uuid(bc941653-3ab9-4849-8f58-46e7f0353cfc)
+    ]
+    interface ICoreInputView3 : IInspectable
+    {
+        [overload("TryShow")] HRESULT TryShow([out, retval] boolean *result);
+        [overload("TryShow")] HRESULT TryShowWithKind([in] Windows.UI.ViewManagement.Core.CoreInputViewKind type, [out, retval] boolean *result);
+        HRESULT TryHide([out, retval] boolean *result);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 10.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView),
+        uuid(002863d6-d9ef-57eb-8cef-77f6ce1b7ee7)
+    ]
+    interface ICoreInputView4 : IInspectable
+    {
+        [eventadd] HRESULT PrimaryViewShowing([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewShowingEventArgs *> *handler, [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT PrimaryViewShowing([in] EventRegistrationToken token);
+        [eventadd] HRESULT PrimaryViewHiding([in] Windows.Foundation.TypedEventHandler<Windows.UI.ViewManagement.Core.CoreInputView *, Windows.UI.ViewManagement.Core.CoreInputViewHidingEventArgs *> *handler, [out, retval] EventRegistrationToken *token);
+        [eventremove] HRESULT PrimaryViewHiding([in] EventRegistrationToken token);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 10.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewHidingEventArgs),
+        uuid(eada47bd-bac5-5336-848d-41083584daad)
+    ]
+    interface ICoreInputViewHidingEventArgs : IInspectable
+    {
+        HRESULT TryCancel([out, retval] boolean *result);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 5.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewOcclusion),
+        uuid(cc36ce06-3865-4177-b5f5-8b65e0b9ce84)
+    ]
+    interface ICoreInputViewOcclusion : IInspectable
+    {
+        [propget] HRESULT OccludingRect([out, retval] Windows.Foundation.Rect *rect);
+        [propget] HRESULT OcclusionKind([out, retval] Windows.UI.ViewManagement.Core.CoreInputViewOcclusionKind *kind);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 5.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewOcclusionsChangedEventArgs),
+        uuid(be1027e8-b3ee-4df7-9554-89cdc66082c2)
+    ]
+    interface ICoreInputViewOcclusionsChangedEventArgs : IInspectable
+    {
+        [propget] HRESULT Occlusions([out, retval] Windows.Foundation.Collections.IVectorView<Windows.UI.ViewManagement.Core.CoreInputViewOcclusion *> **value);
+        [propget] HRESULT Handled([out, retval] boolean *value);
+        [propput] HRESULT Handled([in] boolean value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 10.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewShowingEventArgs),
+        uuid(ca52261b-fb9e-5daf-a98c-262b8b76af50)
+    ]
+    interface ICoreInputViewShowingEventArgs : IInspectable
+    {
+        HRESULT TryCancel([out, retval] boolean *result);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 5.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView),
+        uuid(7d9b97cd-edbe-49cf-a54f-337de052907f)
+    ]
+    interface ICoreInputViewStatics : IInspectable
+    {
+        HRESULT GetForCurrentView([out, retval] Windows.UI.ViewManagement.Core.CoreInputView **result);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 8.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputView),
+        uuid(7ebc0862-d049-4e52-87b0-1e90e98c49ed)
+    ]
+    interface ICoreInputViewStatics2 : IInspectable
+    {
+        HRESULT GetForUIContext([in] Windows.UI.UIContext *context, [out, retval] Windows.UI.ViewManagement.Core.CoreInputView **result);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 6.0),
+        exclusiveto(Windows.UI.ViewManagement.Core.CoreInputViewTransferringXYFocusEventArgs),
+        uuid(04de169f-ba02-4850-8b55-d82d03ba6d7f)
+    ]
+    interface ICoreInputViewTransferringXYFocusEventArgs : IInspectable
+    {
+        [propget] HRESULT Origin([out, retval] Windows.Foundation.Rect *value);
+        [propget] HRESULT Direction([out, retval] Windows.UI.ViewManagement.Core.CoreInputViewXYFocusTransferDirection *value);
+        [propput] HRESULT TransferHandled([in] boolean value);
+        [propget] HRESULT TransferHandled([out, retval] boolean *value);
+        [propput] HRESULT KeepPrimaryViewVisible([in] boolean value);
+        [propget] HRESULT KeepPrimaryViewVisible([out, retval] boolean *value);
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 5.0),
+        marshaling_behavior(agile),
+        static(Windows.UI.ViewManagement.Core.ICoreInputViewStatics, Windows.Foundation.UniversalApiContract, 5.0),
+        static(Windows.UI.ViewManagement.Core.ICoreInputViewStatics2, Windows.Foundation.UniversalApiContract, 8.0),
+        threading(both)
+    ]
+    runtimeclass CoreInputView
+    {
+        [default] interface Windows.UI.ViewManagement.Core.ICoreInputView;
+        [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.UI.ViewManagement.Core.ICoreInputView2;
+        [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.UI.ViewManagement.Core.ICoreInputView3;
+        [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.UI.ViewManagement.Core.ICoreInputView4;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 10.0),
+        marshaling_behavior(agile)
+    ]
+    runtimeclass CoreInputViewHidingEventArgs
+    {
+        [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewHidingEventArgs;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 5.0),
+        marshaling_behavior(agile)
+    ]
+    runtimeclass CoreInputViewOcclusion
+    {
+        [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewOcclusion;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 5.0),
+        marshaling_behavior(agile)
+    ]
+    runtimeclass CoreInputViewOcclusionsChangedEventArgs
+    {
+        [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewOcclusionsChangedEventArgs;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 10.0),
+        marshaling_behavior(agile)
+    ]
+    runtimeclass CoreInputViewShowingEventArgs
+    {
+        [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewShowingEventArgs;
+    }
+
+    [
+        contract(Windows.Foundation.UniversalApiContract, 6.0),
+        marshaling_behavior(agile)
+    ]
+    runtimeclass CoreInputViewTransferringXYFocusEventArgs
+    {
+        [default] interface Windows.UI.ViewManagement.Core.ICoreInputViewTransferringXYFocusEventArgs;
+    }
+}