Passage d'une interface en paramètre de méthode COM
Bonjour,
Voila mon problème :
J'ai un objet DCOM appelé "Enveloppe". Il a une propriété "ComplexClass" qui est un autre objet DCOM. On peut accéder à cette propriété via 2 accesseurs :
Code:
1 2 3
|
STDMETHOD(get_MyComplexClass(ComplexClass** Value));
STDMETHOD(set_MyComplexClass(ComplexClass* Value)); |
J'arrive à utiliser le set comme ceci:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
TCOMIComplexClass CC = CoComplexClass::Create();
// ... mise a jour de varialbes a l'interieur de CC
// On créé l'objet distant
TCOMIEnveloppe serveur;
serveur = CoEnveloppe::CreateRemote(L"10.167.20.154");
// on set la ComplexClass dans l'objet distant
reponse = serveur.set_MyComplexClass((ComplexClass*)CC ); |
J'ai vérifié, ça marche nickel !
Mais je n'arrive pas utiliser le get.
J'essaie comme ca:
Code:
1 2 3 4
|
TCOMIComplexClass * CCptr = new TCOMIComplexClass;
reponse = serveur.get_MyComplexClass( (ComplexClass**) CCptr ); |
Mais ça ne marche pas. Je pense qu'il faut appeler le méthode "create" comme pour créer CC dans le code au-dessus.
Du coup j'ai essayé ça:
Code:
1 2 3 4 5
|
TCOMIComplexClass * CCptr;
CCptr = (TCOMIComplexClass *)&CC;
reponse = serveur.get_MyComplexClass( (ComplexClass**) CCptr ); |
Là, il plante à la seconde ligne. Quand il essaie de prendre l'adresse de CC.
De même avec:
Code:
1 2 3 4
|
TCOMIComplexClass CC2 = CoComplexClass::Create();
reponse = serveur.get_MyComplexClass( (ComplexClass**) &CC2 ); |
Quelqu'un a-t-il une idée?
Pourquoi il ne veut pas que je passe l'adresse de l'interface?
Comment résoudre le problème?
Merci d'avance pour toute vos réponses