Члены:
dwSize |
Должен быть равен размеру структуры (dwSize := SizeOf(BLUETOOTH_RADIO_INFO)) |
cNumOfClasses |
Входной параметр. Количество записей в массиве prgClassOfDevice. Если 0, то ищутся все устройства. |
prgClassOfDevices |
Входной параметр. Массив COD (классов устройств), которые необходимо искать. |
pszInfo |
Входной параметр. Если не nil, то задает текст заголовка окна выбора устройства. |
hwndParent |
Входной параметр. Handle родительского окна для диалога выбора устройства. Если 0, то родителем будет Desktop. |
fForceAuthentication |
Входной параметр. Если TRUE, то требует принудительной авторизации устройств. |
fShowAuthenticated |
Входной параметр. Если TRUE, то авторизованные устройства будут доступны для выбора. |
fShowRemembered |
Входной параметр. Если TRUE, то запомненные устройства будут доступны для выбора. |
fShowUnknown |
Входной параметр. Если TRUE, то неизвестные (неавторизованные и не запомненные) устройства будут доступны для выбора. |
fAddNewDeviceWizard |
Входной параметр. Если TRUE, то запускает мастер добавления нового устройства. |
fSkipServicesPage |
Входной параметр. Если TRUE, то пропускает страницу Сервисы в мастере. |
pfnDeviceCallback |
Входной параметр. Если не nil, то является указателем на функцию обратного вызова, которая вызывается для каждого найденного устройства. Если функция вернет TRUE, то устройства добавляется в список, если нет, то устройство игнорируется. |
pvParam |
Входной параметр. Его значение будет передано функции pfnDeviceCallback в качестве параметра pvParam. |
cNumDevices |
Как входной параметр – количество устройств, которое требуется вернуть. Если 0, то нет ограничений. Как выходной параметр – количество возвращенных устройств (выбранных). |
pDevices |
Выходной параметр. Указатель на массив структур BLUETOOTH_DEVICE_INFO. Для его освобождения используйте функцию BluetoothSelectDevicesFree. |
BluetoothSelectDevicesFree - функция должна вызываться, только если вызов BluetoothSelectDevices был успешен. Эта функция освобождает память и ресурсы, задействованные функцией BluetoothSelectDevices в структуре BLUETOOTH_SELECT_DEVICE_PARAMS.
Объявление функции:
function BluetoothSelectDevices(
pbtsdp : PBLUETOOTH_SELECT_DEVICE_PARAMS): BOOL; stdcall;
Параметры:
pbtsdp |
Описание смотрите выше в описании структуры. |
Возвращаемые значения:
· | TRUE - если вызов успешен, |
· | FALSE - нечего освобождать. |
Управление сервисами
Для управления сервисами Microsoft Bluetooth API предоставляет функцию:
BluetoothSetServiceState - включает или выключает указанный сервис для устройства Bluetooth. Система проецирует сервис Bluetooth на соответствующий драйвер. При отключении сервиса – драйвер удаляется. При его включении – драйвер устанавливается. Если выполняется включение не поддерживаемого сервиса, то драйвер не будет установлен.
Объявление функции:
Code: |
function BluetoothSetServiceState( hRadio : Thandle; var pbtdi : PBLUETOOTH_DEVICE_INFO; const pGuidService : TGUID; dwServiceFlags : DWORD): DWORD; stdcall; |
Параметры:
hRadio |
Описатель радиомодуля. |
pbtdi |
Указатель на структуру BLUETOOTH_DEVICE_INFO. |
pGuidService |
GUID сервиса, который необходимо включить/выключить. |
dwServiceFlags |
Флаги управления сервисом: |
Возвращает ERROR_SUCCESS если вызов прошел успешно. Если вызов не удался вернет один из следующих кодов:
ERROR_INVALID_PARAMETER |
Неверные флаги в dwServiceFlags |
ERROR_SERVICE_DOES_NOT_EXIST |
Указанный сервис не поддерживается |
Другие ошибки Win32 |
|
Важно: В оригинале (см. примечание выше) функция выглядит вот так:
function BluetoothSetServiceState(
hRadio : Thandle;
pbtdi : PBLUETOOTH_DEVICE_INFO;
const pGuidService : TGUID;
dwServiceFlags : DWORD): DWORD; stdcall;
Это не верно, так как в документации Microsoft указано, что параметр pbtdi должен передаваться как указатель (что подразумевает запись PBLUETOOTH_DEVICE_INFO), но как я писал выше, этот тип ошибочен. Он не является указателем. Я изменил функцию так, как показано выше (так она и должна быть, если не менять определение типа).
Как использовать функцию? Давайте добавим к ActionList еще одну TAction с такими свойствами:
Свойство |
Значение |
Caption |
Disable |
Name |
acEnable |
И добавим на Panel еще одну кнопку TButton, установив у нее следующие свойства:
Свойство |
Значение |
Action |
acEnable |
Name |
btEnable |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!