GNT sans publicité, site mobile, fonctionnalitées exclusives...

Bluetooth: Creation d'une connexion PAN par programmation

Le
kratolp
Bonjour,

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?

Si quelqu'un a une piste, une idée, je suis preneur.

bonne journée,

Kratolp
Lire les 4 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christian ASTOR
Le #9761941
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())
kratolp
Le #9761871
> 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
Christian ASTOR
Le #9761861
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
kratolp
Le #9761851
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
Publicité
Suivre les réponses
Poster une réponse
Anonyme