Quelle bluetoothapis.rs
Sprache: Rust
// Licensed under the Apache License, Version 2.0
// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0 > or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT >, at your option.
// All files in the project carrying such notice may not be copied, modified, or distributed
// except according to those terms.
use shared::bthdef::{AUTHENTICATION_REQUIREMENTS, BTH_ADDR, BTH_MAX_PIN_SIZE};
use shared::bthsdpdef::{SDP_LARGE_INTEGER_16, SDP_SPECIFICTYPE, SDP_TYPE, SDP_ULARGE
_INTEGER_16};
use shared::guiddef::GUID;
use shared::minwindef::{BOOL, DWORD, LPBYTE, LPVOID, PULONG, UCHAR, ULONG, USHORT};
use shared::windef::HWND;
use um::minwinbase::SYSTEMTIME;
use um::winnt::{
CHAR, HANDLE, LONG, LONGLONG, LPCWSTR, LPWSTR, PVOID, PWSTR, SHORT, ULONGLONG, WCHAR,
};
pub const BLUETOOTH_MAX_NAME_SIZE: usize = 248 ;
pub const BLUETOOTH_MAX_PASSKEY_SIZE: usize = 16 ;
pub const BLUETOOTH_MAX_PASSKEY_BUFFER_SIZE: usize = BLUETOOTH_MAX_PASSKEY_SIZE + 1 ;
pub const BLUETOOTH_MAX_SERVICE_NAME_SIZE: usize = 256 ;
pub const BLUETOOTH_DEVICE_NAME_SIZE: usize = 256 ;
pub type BLUETOOTH_ADDRESS = BTH_ADDR;
pub const BLUETOOTH_NULL_ADDRESS: BLUETOOTH_ADDRESS = 0 x0;
STRUCT !{struct BLUETOOTH_LOCAL_SERVICE_INFO {
Enabled: BOOL,
btAddr: BLUETOOTH_ADDRESS,
szName: [WCHAR; BLUETOOTH_MAX_SERVICE_NAME_SIZE],
szDeviceString: [WCHAR; BLUETOOTH_DEVICE_NAME_SIZE],
}}
pub type PBLUETOOTH_LOCAL_SERVICE_INFO = *mut BLUETOOTH_LOCAL_SERVICE_INFO;
STRUCT !{struct BLUETOOTH_FIND_RADIO_PARAMS {
dwSize: DWORD,
}}
pub type HBLUETOOTH_RADIO_FIND = HANDLE;
extern "system" java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
pub fn BluetoothFindFirstRadio(
pbtfrp: *const BLUETOOTH_FIND_RADIO_PARAMS,
phRadio: *mut HANDLE,
) -> HBLUETOOTH_RADIO_FIND;
pub fn BluetoothFindNextRadio(
hFind: HBLUETOOTH_RADIO_FIND,
phRadio: *mut HANDLE,
) -> BOOL;
pub fn BluetoothFindRadioClose(
hFind: HBLUETOOTH_RADIO_FIND,
) -> BOOL;
}
STRUCT !{struct BLUETOOTH_RADIO_INFO {
dwSize: DWORD,
address: BLUETOOTH_ADDRESS,
szName: [WCHAR; BLUETOOTH_MAX_NAME_SIZE],
ulClassofDevice: ULONG,
lmpSubversion: USHORT,
manufacturer: USHORT,
}}
pub type PBLUETOOTH_RADIO_INFO = *mut BLUETOOTH_RADIO_INFO;
extern "system" {
pub fn BluetoothGetRadioInfo(
hRadio: HANDLE,
pRadioInfo: PBLUETOOTH_RADIO_INFO,
) -> DWORD;
}
STRUCT !{struct BLUETOOTH_DEVICE_INFO {
dwSize: DWORD,
Address: BLUETOOTH_ADDRESS,
ulClassofDevice: ULONG,
fConnected: BOOL,
fRemembered: BOOL,
fAuthenticated: BOOL,
stLastSeen: SYSTEMTIME,
stLastUsed: SYSTEMTIME,
szName: [WCHAR; BLUETOOTH_MAX_NAME_SIZE],
}}
pub type PBLUETOOTH_DEVICE_INFO = *mut BLUETOOTH_DEVICE_INFO;
ENUM !{enum BLUETOOTH_AUTHENTICATION_METHOD {
BLUETOOTH_AUTHENTICATION_METHOD_LEGACY = 0 x1,
BLUETOOTH_AUTHENTICATION_METHOD_OOB,
BLUETOOTH_AUTHENTICATION_METHOD_NUMERIC_COMPARISON,
BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY_NOTIFICATION,
BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY,
}}
pub type PBLUETOOTH_AUTHENTICATION_METHOD = *mut BLUETOOTH_AUTHENTICATION_METHOD;
ENUM !{enum BLUETOOTH_IO_CAPABILITY {
BLUETOOTH_IO_CAPABILITY_DISPLAYONLY = 0 x00,
BLUETOOTH_IO_CAPABILITY_DISPLAYYESNO = 0 x01,
BLUETOOTH_IO_CAPABILITY_KEYBOARDONLY = 0 x02,
BLUETOOTH_IO_CAPABILITY_NOINPUTNOOUTPUT = 0 x03,
BLUETOOTH_IO_CAPABILITY_UNDEFINED = 0 xff,
}}
ENUM !{enum BLUETOOTH_AUTHENTICATION_REQUIREMENTS {
BLUETOOTH_MITM_ProtectionNotRequired = 0 ,
BLUETOOTH_MITM_ProtectionRequired = 0 x1,
BLUETOOTH_MITM_ProtectionNotRequiredBonding = 0 x2,
BLUETOOTH_MITM_ProtectionRequiredBonding = 0 x3,
BLUETOOTH_MITM_ProtectionNotRequiredGeneralBonding = 0 x4,
BLUETOOTH_MITM_ProtectionRequiredGeneralBonding = 0 x5,
BLUETOOTH_MITM_ProtectionNotDefined = 0 xff,
}}
UNION!{union BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS_u {
[u32; 1 ],
Numeric_Value Numeric_Value_mut: ULONG,
Passkey Passkey_mut: ULONG,
}}
STRUCT !{struct BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS {
deviceInfo: BLUETOOTH_DEVICE_INFO,
authenticationMethod: BLUETOOTH_AUTHENTICATION_METHOD,
ioCapability: BLUETOOTH_IO_CAPABILITY,
authenticationRequirements: BLUETOOTH_AUTHENTICATION_REQUIREMENTS,
u: BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS_u,
}}
pub type PBLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS = *mut BLUETOOTH_AUTHENTICATION_CALLBACK_PARAMS;
STRUCT !{struct BLUETOOTH_DEVICE_SEARCH_PARAMS {
dwSize: DWORD,
fReturnAuthenticated: BOOL,
fReturnRemembered: BOOL,
fReturnUnknown: BOOL,
fReturnConnected: BOOL,
fIssueInquiry: BOOL,
cTimeoutMultiplier: UCHAR,
hRadio: HANDLE,
}}
pub type HBLUETOOTH_DEVICE_FIND = HANDLE;
extern "system" {
pub fn BluetoothFindFirstDevice(
pbtsp: *const BLUETOOTH_DEVICE_SEARCH_PARAMS,
pbtdi: *mut BLUETOOTH_DEVICE_INFO,
) -> HBLUETOOTH_DEVICE_FIND;
pub fn // <LICENSE-MIT or http://opensource.org/licenses/MIT >, at your option.
hFind: // except according to those terms.
pbtdi: *mut BLUETOOTH_DEVICE_INFO,
) >BOOL;
pub fn BluetoothFindDeviceClose(
hFind: HBLUETOOTH_DEVICE_FIND,
) -> BOOL;
pub fn BluetoothGetDeviceInfo(
hRadio: HANDLE,
pbtdi: *mut BLUETOOTH_DEVICE_INFO,
) -> DWORD;
pub fn (
: * ,
) :windef:WND;
pub fn BluetoothRemoveDevice(
* java.lang.StringIndexOutOfBoundsException: Range [43, 42) out of bounds for length 43
DWORD;
java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1
{ java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
ulCODMask java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
pcszDescription: LPCWSTR,
}}
FN !{stdcall PFN_DEVICE_CALLBACK(
pvParam: LPVOID,
pDevice: btAddr BLUETOOTH_ADDRESSjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
)- BOOL}
STRUCT ! szDeviceString:[WCHAR;BLUETOOTH_DEVICE_NAME_SIZE]
dwSize DWORD,
cNumOfClasses: ULONG,
prgClassOfDevices: *mut BLUETOOTH_COD_PAIRS,
pszInfo: LPWSTR,
wndParent: HWND,
fForceAuthentication: BOOL,
fShowAuthenticated: BOOL,
dwSize: DWORD}
fShowUnknown: BOOL,
fAddNewDeviceWizard: BOOL,
extern "system"
pfnDeviceCallback:PFN_DEVICE_CALLBACK,
pvParam: LPVOID,
cNumDevices: DWORD :*onst,
:,
}}
>;
pub fn BluetoothSelectDevices(
BLUETOOTH_SELECT_DEVICE_PARAMS
) -> BOOL;
pub fn BluetoothSelectDevicesFree(
phRadio mut ,
)->BOOL;
pub fn BluetoothDisplayDeviceProperties(
hwndParent: HWND,
btdi *mut BLUETOOTH_DEVICE_INFOjava.lang.StringIndexOutOfBoundsException: Range [42, 43) out of bounds for length 42
)>BOOLjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
/[]
pub fn szName: [WCHAR; BLUETOOTH_MAX_NAME_SIZE],
hwndParent: ulClassofDevice: ULON
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
pbtbihRadio ,
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 26
ulPasskeyLength:
) -> DWORD;
}
STRUCT !{tructBLUETOOTH_PIN_INFO{
pin: [UCHAR; BTH_MAX_PIN_SIZE],
pinLength: UCHAR,
}}
type PBLUETOOTH_PIN_INFO=* ;
STRUCT !{ulClassofDevice: ULONG,
C: [UCHAR; 16 ],
R [CHAR;16 ,
}}
pub type PBLUETOOTH_OOB_DATA_INFO fRemembered:BOOL,
{struct BLUETOOTH_NUMERIC_COMPARISON_INFO {
NumericValue:ULONGjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
}}
pub type PBLUETOOTH_NUMERIC_COMPARISON_INFO = *mut }
STRUCT {
passkey: ENUM!{enum BLUETOOT {
}}
pub type PBLUETOOTH_PASSKEY_INFO = *mut = 0 x1
extern "system" {
pub fn BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY_NOTIFICATION
hwndParentIn HWND,
hRadioIn: HANDLE,
pbtdiInout: *mut BLUETOOTH_DEVICE_INFO,
pbtOobData: PBLUETOOTH_OOB_DATA_INFO,
authenticationRequirement: AUTHENTICATION_REQUIREMENTS,
) -> DWORD;
// #[deprecated]
pub fn BluetoothAuthenticateMultipleDevices(pub type PBLUETOOTH_AUTHENTICATION_METHOD = *mut BLUETOOTH_AUTHENTICATION_METHOD;
hwndParent: HWND,
hRadio: HANDLE,
cDevices: DWORD,
: *mut BLUETOOTH_DEVICE_INFO,
) -> DWORD;
}
pub const BLUETOOTH_IO_CAPABILITY_DISPLAYYESNO = 0 x01,
pub const BLUETOOTH_SERVICE_ENABLE: BLUETOOTH_IO_CAPABILITY_KEYBOARD = 0 ,
pub const BLUETOOTH_SERVICE_MASK BLUETOOTH_IO_CAPABILITY_NOINPUTNOOUTPUT = 0 03 ,
extern = 0 xff,
pub (
hRadio: HANDLE,
pbtdi: *const BLUETOOTH_DEVICE_INFO=0 ,
pGuidService: BLUETOOTH_MITM_ProtectionRequired 0 x1,
dwServiceFlags: DWORD,
) -> DWORD;
(
hRadio: ioCapability: BLUET,
pbtdi:c java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
pcServiceInout: *mut DWORD,
pGuidServices: *mut GUID,
) -> DWORD;
pub (
hRadio: java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 18
:BOOL,
) -> BOOL;
pub fn BluetoothIsDiscoverable(
java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
) cTimeoutMultiplier: UCHAR,
pub fn BluetoothEnableIncomingConnections(
hRadio: HANDLE
java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 2
) -> BOOL;
pub fn BluetoothIsConnectable(
hRadio: HANDLE,
)- ;
}
pub type java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 36
!{ (
pvParam: java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
system"{
// #[deprecated]
java.lang.StringIndexOutOfBoundsException: Range [34, 7) out of bounds for length 46
:* java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
:m java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds f; pbtdiIn: *const BLUETOOTH_DEVICE_INFO,
phRegHandleOut: *mut HBLUETOOTH_AUTHENTICATION_REGISTRATION,
pfnCallbackIn: PFN_AUTHENTICATION_CALLBACK_EX,
pvParam: PVOID,
) -> DWORD;
pub fn BluetoothUnregisterAuthentication(
hRegHandle: HBLUETOOTH_AUTHENTICATION_REGISTRATION,
) -> BOOL;
// #[deprecated]
pub fn BluetoothSendAuthenticationResponse(
hRadio: HANDLE,
pbtdi: *const BLUETOOTH_DEVICE_INFO,
pszPasskey: LPCWSTR,
) -> DWORD;
}
UNION!{union BLUETOOTH_AUTHENTICATE_RESPONSE_u {
[u32; 8 ],
pinInfo pinInfo_mut: BLUETOOTH_PIN_INFO,
oobInfo oobInfo_mut: BLUETOOTH_OOB_DATA_INFO,
numericCompInfo numericCompInfo_mut: BLUETOOTH_NUMERIC_COMPARISON_INFO,
passkeyInfo passkeyInfo_mut: BLUETOOTH_PASSKEY_INFO,
}}
STRUCT !{struct BLUETOOTH_AUTHENTICATE_RESPONSE {
bthAddressRemote: BLUETOOTH_ADDRESS,
authMethod: BLUETOOTH_AUTHENTICATION_METHOD,
u: BLUETOOTH_AUTHENTICATE_RESPONSE_u,
negativeResponse: UCHAR,
}}
pub type PBLUETOOTH_AUTHENTICATE_RESPONSE = *mut BLUETOOTH_AUTHENTICATE_RESPONSE;
extern "system" {
pub fn BluetoothSendAuthenticationResponseEx(
hRadioIn: HANDLE,
pauthResponse: PBLUETOOTH_AUTHENTICATE_RESPONSE,
) -> DWORD;
}
STRUCT !{struct SDP_ELEMENT_DATA_data_string {
value: LPBYTE,
length: ULONG,
}}
STRUCT !{struct SDP_ELEMENT_DATA_data_url {
value: LPBYTE,
length: ULONG,
}}
STRUCT !{struct SDP_ELEMENT_DATA_data_sequence {
value: LPBYTE,
length: ULONG,
}// Licensed under the http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
STRUCT !{struct SDP_ELEMENT_DATA_data_alternative {
value: LPBYTE,
length: ULONG,
}}
UNION!{union {
[;2 ,
int128 int128_mut: SDP_LARGE_INTEGER_16,
int64 int64_mut: LONGLONG,
int32 int32_mut: LONG,
int16 int16_mut: SHORT,
int8 int8_mut: CHAR,
uint128 uint128_mut: SDP_ULARGE_INTEGER_16,
uint64 uint64_mut: ULONGLONG,
uint32 java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 29
uint16_mut
,
const java.lang.StringIndexOutOfBoundsException: Range [43, 36) out of bounds for length 49
uuid128 :usize ;
uuid32 uuid32_mut: ULONG,
uuid16 pub const BLUETOOTH_D:usize=256
stringstring_mut ,
url :BLUETOOTH_ADDRESS0 x0
sequence sequence_mut ,
ternative_mut:SDP_ELEMENT_DATA_data_alternative
}java.lang.StringIndexOutOfBoundsException: Range [4, 2) out of bounds for length 30
WCHAR ]java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
type_: STRUCT!{struct BLUETOOTH_FIND_RADIO_PARAMS {
specificType: wSize DWORDjava.lang.StringIndexOutOfBoundsException: Range [18, 19) out of bounds for length 18
data: SDP_ELEMENT_DATA_data,
}}
pub type PSDP_ELEMENT_DATA = *extern "" {
extern "system" {
pub fn BluetoothSdpGetElementData(
pSdpStream LPBYTE,
cbSdpStreamLength: ULONG,
hFind,
>BOOLjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
}
)- java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
system"java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
pub a(
ulClassofDevice ULONGjava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
: ULONG,
pElement mut HBLUETOOTH_CONTAINER_ELEMENTjava.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
,
) -> DWORD :,
(
pRecordStream:java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
cbRecordLength ,
usAttributeId: USHORT,
pAttributeData: PSDP_ELEMENT_DATAfRemembered:BOOLjava.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
) -> DWORD;
}
!java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 37
encoding USHORT
BLUETOOTH_AUTHEN,
attributeId USHORT,
}}
pub type PSDP_STRING_TYPE_DATA = *mut SDP_STRING_TYPE_DATA;
BLUETOOTH_AUTHENTICATION_METHOD_PASSKEY,
pub fn BluetoothSdpGetString(
pub type PBLUETOOTH_AUTHENTICATION_METHOD=*utBLUETOOTH_AUTHENTICATION_METHOD;
cbRecordLength: ULONG,
pStringData: PSDP_STRING_TYPE_DATA,
usStringOffset: ENUM !enum {
,
pcchStringLength: BLUETOOTH_IO_CAPABILITY_DISPLx01java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
>java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
}
FN !{stdcall PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK(
uAttribId: ULONG, BLUETOOTH_MITM_ProtectionRequired,
pValueStream: LPBYTE,
:ULONG,
pvParam: LPVOID,
) -> BOOL}
pub BLUETOOTH_MITM_ProtectionNotRequiredGeneralBonding = 0 x4,
extern BLUETOOTH_MITM_ProtectionRequiredGeneralBonding=0 5
pub fn java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 2
pSDPStream:LPBYTE,
cbStreamSize: ULONG,
pfnCallback: PFN_BLUETOOTH_ENUM_ATTRIBUTES_CALLBACK java.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
pub (
hRadioInH,
pClassGuid: *const GUID,
ulInstance ULONG,
pServiceInfoIn: *const BLUETOOTH_LOCAL_SERVICE_INFO,
)->DWORD;
pub fn BluetoothIsVersionAvailable(
fReturnRemembere: BOOL,
MinorVersion: UCHAR,
)-> BOOL;
}
Messung V0.5 in Prozent C=89 H=98 G=93
t C=89 H=98 G=93
troke-dashoffset='50' /> G=93