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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
  STDMETHOD(get_MyComplexClass(ComplexClass** Value));
  STDMETHOD(set_MyComplexClass(ComplexClass* Value));
J'arrive à utiliser le set comme ceci:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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