ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/bluetoothapis.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 10085 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef _INC_BLUETOOTHAPIS
7 #define _INC_BLUETOOTHAPIS
8
9 #include <_mingw.h>
10 #include <bthdef.h>
11 #include <bthsdpdef.h>
12
13 #define BLUETOOTH_MAX_NAME_SIZE 248
14
15 #ifdef __cplusplus
16 extern "C" {
17 #endif
18
19 typedef LPVOID HBLUETOOTH_DEVICE_FIND;
20 typedef LPVOID HBLUETOOTH_RADIO_FIND;
21 typedef LPVOID HBLUETOOTH_AUTHENTICATION_REGISTRATION;
22 typedef LPVOID HBLUETOOTH_CONTAINER_ELEMENT;
23
24 typedef struct _BLUETOOTH_ADDRESS {
25 __C89_NAMELESS union {
26 BTH_ADDR ullLong;
27 BYTE rgBytes[6];
28 };
29 } BLUETOOTH_ADDRESS;
30
31 typedef struct _BLUETOOTH_COD_PAIRS {
32 ULONG ulCODMask;
33 LPCWSTR pcszDescription;
34 } BLUETOOTH_COD_PAIRS;
35
36 typedef struct _BLUETOOTH_DEVICE_INFO {
37 DWORD dwSize;
38 BLUETOOTH_ADDRESS Address;
39 ULONG ulClassofDevice;
40 WINBOOL fConnected;
41 WINBOOL fRemembered;
42 WINBOOL fAuthenticated;
43 SYSTEMTIME stLastSeen;
44 SYSTEMTIME stLastUsed;
45 WCHAR szName[BLUETOOTH_MAX_NAME_SIZE];
46 } BLUETOOTH_DEVICE_INFO, *PBLUETOOTH_DEVICE_INFO;
47
48 typedef struct _BLUETOOTH_DEVICE_SEARCH_PARAMS {
49 DWORD dwSize;
50 WINBOOL fReturnAuthenticated;
51 WINBOOL fReturnRemembered;
52 WINBOOL fReturnUnknown;
53 WINBOOL fReturnConnected;
54 WINBOOL fIssueInquiry;
55 UCHAR cTimeoutMultiplier;
56 HANDLE hRadio;
57 } BLUETOOTH_DEVICE_SEARCH_PARAMS;
58
59 typedef struct _BLUETOOTH_FIND_RADIO_PARAMS {
60 DWORD dwSize;
61 } BLUETOOTH_FIND_RADIO_PARAMS;
62
63 typedef struct _BLUETOOTH_RADIO_INFO {
64 DWORD dwSize;
65 BLUETOOTH_ADDRESS address;
66 WCHAR szName[BLUETOOTH_MAX_NAME_SIZE];
67 ULONG ulClassofDevice;
68 USHORT lmpSubversion;
69 USHORT manufacturer;
70 } BLUETOOTH_RADIO_INFO, *PBLUETOOTH_RADIO_INFO;
71
72 typedef enum _BLUETOOTH_AUTHENTICATION_METHOD {
73 BLUETOOTH_AUTHENTICATION_METHOD_LEGACY = 0x1,
74 BLUETOOTH_AUTHENTICATION_METHOD_OOB,
75 BLUETOOTH_AUTHENTICATION_METHOD_NUMERIC_COMPARISON,
76 BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY_NOTIFICATION,
77 BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY
78 } BLUETOOTH_AUTHENTICATION_METHOD;
79
80 typedef enum _BLUETOOTH_IO_CAPABILITY {
81 BLUETOOTH_IO_CAPABILITY_DISPLAYONLY = 0x00,
82 BLUETOOTH_IO_CAPABILITY_DISPLAYYESNO = 0x01,
83 BLUETOOTH_IO_CAPABILITY_KEYBOARDONLY = 0x02,
84 BLUETOOTH_IO_CAPABILITY_NOINPUTNOOUTPUT = 0x03,
85 BLUETOOTH_IO_CAPABILITY_UNDEFINED = 0xff
86 } BLUETOOTH_IO_CAPABILITY;
87
88 typedef enum _BLUETOOTH_AUTHENTICATION_REQUIREMENTS {
89 MITMProtectionNotRequired = 0x00,
90 MITMProtectionRequired = 0x01,
91 MITMProtectionNotRequiredBonding = 0x02,
92 MITMProtectionRequiredBonding = 0x03,
93 MITMProtectionNotRequiredGeneralBonding = 0x04,
94 MITMProtectionRequiredGeneralBonding = 0x05,
95 MITMProtectionNotDefined = 0xff
96 } BLUETOOTH_AUTHENTICATION_REQUIREMENTS;
97
98 typedef struct _BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS {
99 BLUETOOTH_DEVICE_INFO deviceInfo;
100 BLUETOOTH_AUTHENTICATION_METHOD authenticationMethod;
101 BLUETOOTH_IO_CAPABILITY ioCapability;
102 BLUETOOTH_AUTHENTICATION_REQUIREMENTS authenticationRequirements;
103 __C89_NAMELESS union {
104 ULONG Numeric_Value;
105 ULONG Passkey;
106 } ;
107 } BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS, *PBLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS;
108
109 #define BLUETOOTH_MAX_SERVICE_NAME_SIZE 256
110 #define BLUETOOTH_DEVICE_NAME_SIZE 256
111 typedef struct _BLUETOOTH_LOCAL_SERVICE_INFO {
112 BOOL Enabled;
113 BLUETOOTH_ADDRESS btAddr;
114 WCHAR szName[BLUETOOTH_MAX_SERVICE_NAME_SIZE];
115 WCHAR szDeviceString[BLUETOOTH_DEVICE_NAME_SIZE];
116 } BLUETOOTH_LOCAL_SERVICE_INFO;
117
118 #define BTH_MAX_PIN_SIZE 16
119 typedef struct _BLUETOOTH_PIN_INFO {
120 UCHAR pin[BTH_MAX_PIN_SIZE];
121 UCHAR pinLength;
122 } BLUETOOTH_PIN_INFO, *PBLUETOOTH_PIN_INFO;
123
124 typedef struct _BLUETOOTH_OOB_DATA_INFO {
125 UCHAR C[16];
126 UCHAR R[16];
127 } BLUETOOTH_OOB_DATA_INFO, *PBLUETOOTH_OOB_DATA_INFO;
128
129 typedef struct _BLUETOOTH_NUMERIC_COMPARISON_INFO {
130 ULONG NumericValue;
131 } BLUETOOTH_NUMERIC_COMPARISON_INFO, *PBLUETOOTH_NUMERIC_COMPARISON_INFO;
132
133 typedef struct _BLUETOOTH_PASSKEY_INFO {
134 ULONG passkey;
135 } BLUETOOTH_PASSKEY_INFO, *PBLUETOOTH_PASSKEY_INFO;
136
137 typedef struct _BLUETOOTH_AUTHENTICATE_RESPONSE {
138 BLUETOOTH_ADDRESS bthAddressRemote;
139 BLUETOOTH_AUTHENTICATION_METHOD authMethod;
140 __C89_NAMELESS union {
141 BLUETOOTH_PIN_INFO pinInfo;
142 BLUETOOTH_OOB_DATA_INFO oobInfo;
143 BLUETOOTH_NUMERIC_COMPARISON_INFO numericCompInfo;
144 BLUETOOTH_PASSKEY_INFO passkeyInfo;
145 };
146 UCHAR negativeResponse;
147 } BLUETOOTH_AUTHENTICATE_RESPONSE, *PBLUETOOTH_AUTHENTICATE_RESPONSE;
148
149 typedef WINBOOL (*PFN_DEVICE_CALLBACK)(LPVOID pvParam,PBLUETOOTH_DEVICE_INFO pDevice);
150 typedef WINBOOL (*CALLBACK PFN_AUTHENTICATION_CALLBACK_EX)(LPVOID pvParam,PBLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS pAuthCallbackParams);
151 typedef WINBOOL (*PFN_AUTHENTICATION_CALLBACK)(LPVOID pvParam,PBLUETOOTH_DEVICE_INFO pDevice);
152 typedef WINBOOL (*PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK)(ULONG uAttribId,LPBYTE pValueStream,ULONG cbStreamSize,LPVOID pvParam);
153
154 typedef struct _BLUETOOTH_SELECT_DEVICE_PARAMS {
155 DWORD dwSize;
156 ULONG cNumOfClasses;
157 BLUETOOTH_COD_PAIRS *prgClassOfDevices;
158 LPWSTR pszInfo;
159 HWND hwndParent;
160 BOOL fForceAuthentication;
161 BOOL fShowAuthenticated;
162 BOOL fShowRemembered;
163 BOOL fShowUnknown;
164 BOOL fAddNewDeviceWizard;
165 BOOL fSkipServicesPage;
166 PFN_DEVICE_CALLBACK pfnDeviceCallback;
167 LPVOID pvParam;
168 DWORD cNumDevices;
169 PBLUETOOTH_DEVICE_INFO pDevices;
170 } BLUETOOTH_SELECT_DEVICE_PARAMS;
171
172 DWORD WINAPI BluetoothAuthenticateMultipleDevices(
173 HWND hwndParent,
174 HANDLE hRadio,
175 DWORD cDevices,
176 BLUETOOTH_DEVICE_INFO *pbtdi
177 );
178
179 HRESULT WINAPI BluetoothAuthenticateDeviceEx(
180 HWND hwndParentIn,
181 HANDLE hRadioIn,
182 BLUETOOTH_DEVICE_INFO *pbtdiInout,
183 PBLUETOOTH_OOB_DATA_INFO pbtOobData,
184 BLUETOOTH_AUTHENTICATION_REQUIREMENTS authenticationRequirement
185 );
186
187 WINBOOL WINAPI BluetoothDisplayDeviceProperties(
188 HWND hwndParent,
189 BLUETOOTH_DEVICE_INFO *pbtdi
190 );
191
192 WINBOOL WINAPI BluetoothEnableDiscovery(
193 HANDLE hRadio,
194 WINBOOL fEnabled
195 );
196
197 WINBOOL WINAPI BluetoothEnableIncomingConnections(
198 HANDLE hRadio,
199 WINBOOL fEnabled
200 );
201
202 DWORD WINAPI BluetoothEnumerateInstalledServices(
203 HANDLE hRadio,
204 BLUETOOTH_DEVICE_INFO *pbtdi,
205 DWORD *pcServices,
206 GUID *pGuidServices
207 );
208
209 WINBOOL WINAPI BluetoothFindDeviceClose(
210 HBLUETOOTH_DEVICE_FIND hFind
211 );
212
213 HBLUETOOTH_DEVICE_FIND WINAPI BluetoothFindFirstDevice(
214 BLUETOOTH_DEVICE_SEARCH_PARAMS *pbtsp,
215 BLUETOOTH_DEVICE_INFO *pbtdi
216 );
217
218 HBLUETOOTH_RADIO_FIND WINAPI BluetoothFindFirstRadio(
219 BLUETOOTH_FIND_RADIO_PARAMS *pbtfrp,
220 HANDLE *phRadio
221 );
222
223 WINBOOL WINAPI BluetoothFindNextDevice(
224 HBLUETOOTH_DEVICE_FIND hFind,
225 BLUETOOTH_DEVICE_INFO *pbtdi
226 );
227
228 WINBOOL WINAPI BluetoothFindNextRadio(
229 HBLUETOOTH_RADIO_FIND hFind,
230 HANDLE *phRadio
231 );
232
233 WINBOOL WINAPI BluetoothFindRadioClose(
234 HBLUETOOTH_RADIO_FIND hFind
235 );
236
237 DWORD WINAPI BluetoothGetDeviceInfo(
238 HANDLE hRadio,
239 BLUETOOTH_DEVICE_INFO *pbtdi
240 );
241
242 DWORD WINAPI BluetoothGetRadioInfo(
243 HANDLE hRadio,
244 PBLUETOOTH_RADIO_INFO pRadioInfo
245 );
246
247 WINBOOL WINAPI BluetoothIsDiscoverable(
248 HANDLE hRadio
249 );
250
251 WINBOOL WINAPI BluetoothIsConnectable(
252 HANDLE hRadio
253 );
254
255 DWORD WINAPI BluetoothRegisterForAuthentication(
256 BLUETOOTH_DEVICE_INFO *pbtdi,
257 HBLUETOOTH_AUTHENTICATION_REGISTRATION *phRegHandle,
258 PFN_AUTHENTICATION_CALLBACK pfnCallback,
259 PVOID pvParam
260 );
261
262 HRESULT WINAPI BluetoothRegisterForAuthenticationEx(
263 const BLUETOOTH_DEVICE_INFO *pbtdiln,
264 HBLUETOOTH_AUTHENTICATION_REGISTRATION *phRegHandleOut,
265 PFN_AUTHENTICATION_CALLBACK_EX pfnCallbackIn,
266 PVOID pvParam
267 );
268
269 DWORD WINAPI BluetoothRemoveDevice(
270 BLUETOOTH_ADDRESS *pAddress
271 );
272
273 WINBOOL WINAPI BluetoothSdpEnumAttributes(
274 LPBYTE pSDPStream,
275 ULONG cbStreamSize,
276 PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK pfnCallback,
277 LPVOID pvParam
278 );
279
280 DWORD WINAPI BluetoothSdpGetAttributeValue(
281 LPBYTE pRecordStream,
282 ULONG cbRecordLength,
283 USHORT usAttributeId,
284 PSDP_ELEMENT_DATA pAttributeData
285 );
286
287 DWORD WINAPI BluetoothSdpGetContainerElementData(
288 LPBYTE pContainerStream,
289 ULONG cbContainerLength,
290 HBLUETOOTH_CONTAINER_ELEMENT *pElement,
291 PSDP_ELEMENT_DATA pData
292 );
293
294 DWORD BluetoothSdpGetElementData(
295 LPBYTE pSdpStream,
296 ULONG cbSpdStreamLength,
297 PSDP_ELEMENT_DATA pData
298 );
299
300 DWORD BluetoothSdpGetString(
301 LPBYTE pRecordStream,
302 ULONG cbRecordLength,
303 PSDP_STRING_TYPE_DATA pStringData,
304 USHORT usStringOffset,
305 PWCHAR pszString,
306 PULONG pcchStringLength
307 );
308
309 WINBOOL WINAPI BluetoothSelectDevices(
310 BLUETOOTH_SELECT_DEVICE_PARAMS *pbtsdp
311 );
312
313 WINBOOL WINAPI BluetoothSelectDevicesFree(
314 BLUETOOTH_SELECT_DEVICE_PARAMS *pbtsdp
315 );
316
317 DWORD WINAPI BluetoothSendAuthenticationResponse(
318 HANDLE hRadio,
319 BLUETOOTH_DEVICE_INFO *pbtdi,
320 LPWSTR pszPasskey
321 );
322
323 HRESULT WINAPI BluetoothSendAuthenticationResponseEx(
324 HANDLE hRadioIn,
325 PBLUETOOTH_AUTHENTICATE_RESPONSE pauthResponse
326 );
327
328 DWORD WINAPI BluetoothSetLocalServiceInfo(
329 HANDLE hRadioIn,
330 const GUID *pClassGuid,
331 ULONG ulInstance,
332 const BLUETOOTH_LOCAL_SERVICE_INFO *pServiceInfoIn
333 );
334
335 DWORD WINAPI BluetoothSetServiceState(
336 HANDLE hRadio,
337 BLUETOOTH_DEVICE_INFO *pbtdi,
338 GUID *pGuidService,
339 DWORD dwServiceFlags
340 );
341
342 WINBOOL WINAPI BluetoothUnregisterAuthentication(
343 HBLUETOOTH_AUTHENTICATION_REGISTRATION hRegHandle
344 );
345
346 DWORD WINAPI BluetoothUpdateDeviceRecord(
347 BLUETOOTH_DEVICE_INFO *pbtdi
348 );
349
350 #ifdef __cplusplus
351 }
352 #endif
353
354 #endif /*_INC_BLUETOOTHAPIS*/
355