Bonjour,
Je travaille actuellement sur l'implémentation d'un OBEX put afin de transférer un fichier d'un device à un autre en bluetooth.
Voici la marche à suivre habituelle lorsque l'on souhaite scanner les devices nous entourant afin de sélectionner celui qui nous intéresse pour enfin lui transférer le fichier.
IObex::Initialize() -> initialise l'object Obex
IObex::EnumDevices() -> liste les devices accessibles
IHeaderCollection interface -> construction des en-tête à envoyer
IObexDevice::Connect() -> se connecter au device que l'on souhaite
http://msdn2.microsoft.com/en-us/library/ms881927.aspx
Cependant, pour ma part, je ne souhaite pas lister les devices pour en choisir un mais je me place dans le cadre ou je connais l'adresse, le nom du device auquel je veux me connecter.
J'ai donc choisi d'utiliser "BindToDevice" pour binder l'adresse à l'objet IObex à la place de "IObex::EnumDevices()" avant d'exécuter le IObexDevice::Connect() .
IObex::BindToDevice(IPropertyBag* pPropertyBag, IObexDevice** ppDevice)
Mon problème est que je ne peux pas instancier de IPropertyBag pour le remplir avant de faire le "BindToDevice".
L'erreur retournée est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 IPropertyBag PropertyBag; VARIANT v; VariantInit(&v); v.bstrVal = SysAllocString(L"P535"); PropertyBag.Write(L"Name", &v); err = pObex->BindToDevice(&PropertyBag, &pObexDevice); // This method should be used if device enumeration is done outside of the OBEX interfaces.
Mes questions sont les suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 error C2259: 'IPropertyBag' : cannot instantiate abstract class due to following members: 'HRESULT IUnknown::QueryInterface(const IID &,void **)' : is abstract c:\program files\windows mobile 6 sdk\pocketpc\include\armv4i\unknwn.h(111) : see declaration of 'IUnknown::QueryInterface' 'ULONG IUnknown::AddRef(void)' : is abstract c:\program files\windows mobile 6 sdk\pocketpc\include\armv4i\unknwn.h(115) : see declaration of 'IUnknown::AddRef' 'ULONG IUnknown::Release(void)' : is abstract c:\program files\windows mobile 6 sdk\pocketpc\include\armv4i\unknwn.h(117) : see declaration of 'IUnknown::Release' 'HRESULT IPropertyBag::Read(LPCOLESTR,VARIANT *,IErrorLog *)' : is abstract C:\Program Files\Windows Mobile 6 SDK\PocketPC\include\ARMV4I\ocidl.h(7744) : see declaration of 'IPropertyBag::Read' 'HRESULT IPropertyBag::Write(LPCOLESTR,VARIANT *)' : is abstract C:\Program Files\Windows Mobile 6 SDK\PocketPC\include\ARMV4I\ocidl.h(7749) : see declaration of 'IPropertyBag::Write'
- est ce que je m'y prends bien ? est-ce la bonne méthode pour utiliser OBEX connaissant la cible ?
- si oui, comment instancier un IPropertyBag ?
Je vous remercie par avance.
Partager