Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Bluetooth: Creation d'une connexion PAN par programmation

4 réponses
Avatar
kratolp
Bonjour,

J'ai r=E9alis=E9 un programme qui permet de connecter le PC a un
peripherique bluetooth. Le probleme est que les APIs que j'utilise sous
windows (stack microsoft et broadcom) fonctionne au dessus de RFComm et
que je voudrais utiliser BNEP. J'y arrive en ouvrant une socket dans
mon programme apres avoir cr=E9=E9 un reseau PAN via l'interface
d'utilisation du peripherique Bluetooth (des menus deroulants sur le
bureau windows). Il est donc possible de le faire par programmation
mais j'ai ete incapable de trouver une quelconque information la dessus
sur le net. Quelqu'un a t il deja ete confronte au probleme / essaye de
le faire?
Il y a bien une dll qui s'appelle btpanui.dll que je soupconne de
pouvoir m'aider. Mais elle contient une interface OLE que je n'arrive
pas a introspecter avec OLE Viewer (il me renvoie une erreur
IMoniker::BindToObject failed on the file moniker created from
("[...]\btpanui.dll"), <No system message defined>
MK_E_INVALIDEXTENSION ($800401E6)). Faut il avoir une version
"professionnelle" d'OLE viewer pour le faire?

Si quelqu'un a une piste, une id=E9e, je suis preneur.

bonne journ=E9e,

Kratolp

4 réponses

Avatar
Christian ASTOR
kratolp wrote:

J'ai réalisé un programme qui permet de connecter le PC a un
peripherique bluetooth. Le probleme est que les APIs que j'utilise sous
windows (stack microsoft et broadcom) fonctionne au dessus de RFComm et
que je voudrais utiliser BNEP. J'y arrive en ouvrant une socket dans
mon programme apres avoir créé un reseau PAN via l'interface
d'utilisation du peripherique Bluetooth (des menus deroulants sur le
bureau windows). Il est donc possible de le faire par programmation
mais j'ai ete incapable de trouver une quelconque information la dessus
sur le net. Quelqu'un a t il deja ete confronte au probleme / essaye de
le faire?
Il y a bien une dll qui s'appelle btpanui.dll que je soupconne de
pouvoir m'aider. Mais elle contient une interface OLE que je n'arrive
pas a introspecter avec OLE Viewer (il me renvoie une erreur
IMoniker::BindToObject failed on the file moniker created from
("[...]btpanui.dll"), <No system message defined>
MK_E_INVALIDEXTENSION ($800401E6)). Faut il avoir une version
"professionnelle" d'OLE viewer pour le faire?



OleViewer ne marche pas comme ça.
btpanui.dll contient effectivement l'interface IBTConnection
(::ConnectToNetwork(), ::DisconnectFromNetwork(), ::GetBTDeviceConfig(),
::SetBTDeviceConfig(), ::EnumerateBTConnections(),
::GetBTConnectionProperties())
Avatar
kratolp
> OleViewer ne marche pas comme ça.
btpanui.dll contient effectivement l'interface IBTConnection
(::ConnectToNetwork(), ::DisconnectFromNetwork(), ::GetBTDeviceConfig(),
::SetBTDeviceConfig(), ::EnumerateBTConnections(),
::GetBTConnectionProperties())



Bonjour,

:-)
Effectivement je me suis rendu compte, ce week end, qu'ole viewer ne
fonctionne pas comme ca. Par contre je ne comprends pas comment vous
avez fait pour trouver les informations concernant l'interface
IBTConnection. Merci de m'eclairer.

Kratolp
Avatar
Christian ASTOR
kratolp wrote:

OleViewer ne marche pas comme ça.
btpanui.dll contient effectivement l'interface IBTConnection
(::ConnectToNetwork(), ::DisconnectFromNetwork(), ::GetBTDeviceConfig(),
::SetBTDeviceConfig(), ::EnumerateBTConnections(),
::GetBTConnectionProperties())




Bonjour,

:-)
Effectivement je me suis rendu compte, ce week end, qu'ole viewer ne
fonctionne pas comme ca. Par contre je ne comprends pas comment vous
avez fait pour trouver les informations concernant l'interface
IBTConnection. Merci de m'eclairer.



En fait, le tlb étant difficilement générable, ça complique (je peux
éventuellement mailer l'idl si email correcte, mais pas facile à
utiliser ensuite...)
Sinon, l'interface utilise au final le driver bthpan.sys (CreateFile(),
DeviceIoControl() pour envoyer les IOCTL)
Il y a aussi les APIs BlueTooth de Irprops.cpl
Avatar
kratolp
Christian ASTOR a écrit :

En fait, le tlb étant difficilement générable, ça complique (je p eux
éventuellement mailer l'idl si email correcte, mais pas facile à
utiliser ensuite...)
Sinon, l'interface utilise au final le driver bthpan.sys (CreateFile(),
DeviceIoControl() pour envoyer les IOCTL)
Il y a aussi les APIs BlueTooth de Irprops.cpl



hmm. Justement je ne comprends pas pourquoi le tlb est difficilement
generable. J'ai vraiment essaye avec midl mais rien a faire j'ai
toujours une erreur de fin de fichier que je ne comprends pas. Peut
etre pouvez vous m'indiquer une piste.
Je suis assez interesse par l'idl effectivement.
Les fonctions de l'api bluetooth irprops.cpl ne fonctionnent (d'apres
moi) qu'avec la stack microsoft. Si l'utilisateur a installe un driver
widcomm/broadcom il faut utiliser les fonctionnalites de l'api widcomm.
Malheureusement l'API bluetooth windows ne semble pas fournir de
fonctions pour créer un reseau de type PAN contrairement a l'API
widcomm. C'est pourquoi je voulais voir si on pouvait passer par des
fonctionnalites "cachees" de windows