Instancier un objet com en dynamique

cs_cedkat
Messages postés
172
Date d'inscription
mardi 7 janvier 2003
Statut
Membre
Dernière intervention
3 juin 2011
- 24 mai 2007 à 08:24
ShareVB
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
- 24 mai 2007 à 21:41
Bonjour,

Je doit faire une petite application qui doit utiliser un objet com fournit par une autre application. Le problème et que mon appli doit fonctionner même si l'autre application n'est pas installée et à forciori le serveur com non plus. Et je ne vois pas comment intancié l'objet com dans le cas où il est installer.
Donc problème rencontré :
- Détection de l'existance de l'objet com.
- Instanciation en dynamique de l'objet com.

Une solution ?

Merci

CedKat

2 réponses

cs_Willi
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
24 mai 2007 à 20:09
Bonjour,
Si ton objet COM est enregistré et présent sur ton poste de dév, ajoute à ton projet une référence à celui .
Dans ton code dans un bloc Try...Catch instancie-le (mécanisme Early Binding) 

Try
{
   TonObjetCOM MyObjet = new TonObjetCOM()
   .....
}
Catch
{
   .....tu gère ton erreur
}

et si tu te retrouves dans le Catch alors il n'est pas enregistré ou présent sur le poste ou ton appli tourne.
0
ShareVB
Messages postés
2676
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
25
24 mai 2007 à 21:41
salut,

tu peux tester si la dll com est installée par Type.GetTypeFromCLSID ou par Type.GetTypeFromProgID...puis si tu récupère un Type, alors tu peux utiliser Activator.CreateInstance pour en créer une instance...

ShareVB
0