2009-03-05 4 views

Répondre

0

Je suis désolé de travailler dans un autre projet. J'ai trouvé un moyen simple d'obtenir la version en utilisant l'instance de CComDispatchDriver.

CComVariant ccVersion;

// AFF est le type CComDispatchDrive

disp.GetPropertyByName ("Version", ccVersion);

fait que je reçois ccVersion = "11.0" pour 2003 et "12,0" pour 2007.

Pour lancer à chaîne je classe CString:

version CString;

version = CString (V_BSTR (& ccVersion));

Merci pour votre aide, je l'espère, cela peut être utile pour quelqu'un d'autre

1

Essayez la méthode Version à partir de l'objet Application.

+0

Je suis désolé, je suis un peu novice en C++ non géré. J'utilise IDispatch Je pense que j'ai juste besoin de faire un "invoke" pour obtenir la version mais je ne sais pas lequel c'est. Le code non géré de l'objet Application est-il ou non? parce que je ne peux pas le faire s'il est géré. Merci. – Ubalo

+0

Pourquoi travaillez-vous directement avec les interfaces IDispatch? Vous pouvez générer des wrappers ATL. – bayda

+0

J'utilisais IDispatch car j'ai une interface IDispatch implémentée dans mon projet. Mais vous avez raison, je n'ai pas besoin de l'utiliser directement. Pouvez-vous donner un exemple qui montre comment utiliser ATL Wrapper et Application.vesion. merci encore. – Ubalo

Questions connexes