Supposons 2 projets DLL ActveX (Proj1 et Proj2) exportant un objet de
meme nom (Class1). Je peux créer un objet du premier projet et utilisant:
Set obj1 = CreateObject("Proj1.Class1")
et un objet du second en utilisant
Set obj2 = CreateObject("Proj2.Class1")
Jusque là, tout va bien. Maintenant, si je veux afficher le type de
l'objet, je peux faire
Debug.Print TypeName(obj1)
et
Debug.Print TypeName(obj2)
mais les deux vont retourner "Class1".
Ma question est la suivante: y'a-t'il un moyen de savoir si un objet
"Class1" appartient à Proj1 ou Proj2?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
Hello,
Tu peux utiliser TypeOf.. mais alors pas de latebinding possible:
If TypeOf MonObjet Is Projet1.Class1 Then
Sinon, il est peut-être possible d'ajouter tes objets a une collection avec leur progid (éventuellement comme clé)?
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Vincent Guichard" a écrit dans le message de news:cbbc4h$53k$
Bonjour!
Supposons 2 projets DLL ActveX (Proj1 et Proj2) exportant un objet de meme nom (Class1). Je peux créer un objet du premier projet et utilisant: Set obj1 = CreateObject("Proj1.Class1") et un objet du second en utilisant Set obj2 = CreateObject("Proj2.Class1") Jusque là, tout va bien. Maintenant, si je veux afficher le type de l'objet, je peux faire Debug.Print TypeName(obj1) et Debug.Print TypeName(obj2) mais les deux vont retourner "Class1".
Ma question est la suivante: y'a-t'il un moyen de savoir si un objet "Class1" appartient à Proj1 ou Proj2?
Vincent Guichard
Hello,
Tu peux utiliser TypeOf.. mais alors pas de latebinding possible:
If TypeOf MonObjet Is Projet1.Class1 Then
Sinon, il est peut-être possible d'ajouter tes objets a une collection avec
leur progid (éventuellement comme clé)?
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message
de news:cbbc4h$53k$1@news-reader3.wanadoo.fr
Bonjour!
Supposons 2 projets DLL ActveX (Proj1 et Proj2) exportant un objet de
meme nom (Class1). Je peux créer un objet du premier projet et
utilisant: Set obj1 = CreateObject("Proj1.Class1")
et un objet du second en utilisant
Set obj2 = CreateObject("Proj2.Class1")
Jusque là, tout va bien. Maintenant, si je veux afficher le type de
l'objet, je peux faire
Debug.Print TypeName(obj1)
et
Debug.Print TypeName(obj2)
mais les deux vont retourner "Class1".
Ma question est la suivante: y'a-t'il un moyen de savoir si un objet
"Class1" appartient à Proj1 ou Proj2?
Tu peux utiliser TypeOf.. mais alors pas de latebinding possible:
If TypeOf MonObjet Is Projet1.Class1 Then
Sinon, il est peut-être possible d'ajouter tes objets a une collection avec leur progid (éventuellement comme clé)?
-- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Vincent Guichard" a écrit dans le message de news:cbbc4h$53k$
Bonjour!
Supposons 2 projets DLL ActveX (Proj1 et Proj2) exportant un objet de meme nom (Class1). Je peux créer un objet du premier projet et utilisant: Set obj1 = CreateObject("Proj1.Class1") et un objet du second en utilisant Set obj2 = CreateObject("Proj2.Class1") Jusque là, tout va bien. Maintenant, si je veux afficher le type de l'objet, je peux faire Debug.Print TypeName(obj1) et Debug.Print TypeName(obj2) mais les deux vont retourner "Class1".
Ma question est la suivante: y'a-t'il un moyen de savoir si un objet "Class1" appartient à Proj1 ou Proj2?
Vincent Guichard
Vincent Guichard
François Picalausa a écrit :
Hello,
Tu peux utiliser TypeOf.. mais alors pas de latebinding possible:
If TypeOf MonObjet Is Projet1.Class1 Then
Non, le latebinding est requis, je crée les objets à partir d'une chaine lue dans un fichier texte.
Sinon, il est peut-être possible d'ajouter tes objets a une collection avec leur progid (éventuellement comme clé)?
Je pense que je vais plutôt ajouter une fonction dans leur interface pour retourner leur type.
Vincent Guichard
François Picalausa a écrit :
Hello,
Tu peux utiliser TypeOf.. mais alors pas de latebinding possible:
If TypeOf MonObjet Is Projet1.Class1 Then
Non, le latebinding est requis, je crée les objets à partir d'une chaine
lue dans un fichier texte.
Sinon, il est peut-être possible d'ajouter tes objets a une collection avec
leur progid (éventuellement comme clé)?
Je pense que je vais plutôt ajouter une fonction dans leur interface
pour retourner leur type.
Tu peux utiliser TypeOf.. mais alors pas de latebinding possible:
If TypeOf MonObjet Is Projet1.Class1 Then
Non, le latebinding est requis, je crée les objets à partir d'une chaine lue dans un fichier texte.
Sinon, il est peut-être possible d'ajouter tes objets a une collection avec leur progid (éventuellement comme clé)?
Je pense que je vais plutôt ajouter une fonction dans leur interface pour retourner leur type.
Vincent Guichard
François Picalausa
Hello,
Sinon il devrait être possible de récupérer leur CLSID a partir des objets... (API COM et ObjPtr? ou implémentation (typelib) d'une interface COM?)... A partir de là, soit tu pourrais travailler avec le CLSID soit le convertir en progID (ProgIDFromCLSID)
Mais effectivement, il est plus simple de demander à l'objet de s'identifier... Mais si deux objets veulent s'identifier de la même façon.... -- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Vincent Guichard" a écrit dans le message de news:cbbhas$7cl$
François Picalausa a écrit :
Hello,
Tu peux utiliser TypeOf.. mais alors pas de latebinding possible:
If TypeOf MonObjet Is Projet1.Class1 Then
Non, le latebinding est requis, je crée les objets à partir d'une chaine lue dans un fichier texte.
Sinon, il est peut-être possible d'ajouter tes objets a une collection avec leur progid (éventuellement comme clé)?
Je pense que je vais plutôt ajouter une fonction dans leur interface pour retourner leur type.
Vincent Guichard
Hello,
Sinon il devrait être possible de récupérer leur CLSID a partir des
objets... (API COM et ObjPtr? ou implémentation (typelib) d'une interface
COM?)...
A partir de là, soit tu pourrais travailler avec le CLSID soit le convertir
en progID (ProgIDFromCLSID)
Mais effectivement, il est plus simple de demander à l'objet de
s'identifier...
Mais si deux objets veulent s'identifier de la même façon....
--
François Picalausa (MVP VB)
http://faq.vb.free.fr --- http://msdn.microsoft.com
http://apisvb.europe.webmatrixhosting.net
"Vincent Guichard" <vg.bleuciel.sa@wanadoo.fr> a écrit dans le message
de news:cbbhas$7cl$1@news-reader4.wanadoo.fr
François Picalausa a écrit :
Hello,
Tu peux utiliser TypeOf.. mais alors pas de latebinding possible:
If TypeOf MonObjet Is Projet1.Class1 Then
Non, le latebinding est requis, je crée les objets à partir d'une
chaine lue dans un fichier texte.
Sinon, il est peut-être possible d'ajouter tes objets a une
collection avec leur progid (éventuellement comme clé)?
Je pense que je vais plutôt ajouter une fonction dans leur interface
pour retourner leur type.
Sinon il devrait être possible de récupérer leur CLSID a partir des objets... (API COM et ObjPtr? ou implémentation (typelib) d'une interface COM?)... A partir de là, soit tu pourrais travailler avec le CLSID soit le convertir en progID (ProgIDFromCLSID)
Mais effectivement, il est plus simple de demander à l'objet de s'identifier... Mais si deux objets veulent s'identifier de la même façon.... -- François Picalausa (MVP VB) http://faq.vb.free.fr --- http://msdn.microsoft.com http://apisvb.europe.webmatrixhosting.net
"Vincent Guichard" a écrit dans le message de news:cbbhas$7cl$
François Picalausa a écrit :
Hello,
Tu peux utiliser TypeOf.. mais alors pas de latebinding possible:
If TypeOf MonObjet Is Projet1.Class1 Then
Non, le latebinding est requis, je crée les objets à partir d'une chaine lue dans un fichier texte.
Sinon, il est peut-être possible d'ajouter tes objets a une collection avec leur progid (éventuellement comme clé)?
Je pense que je vais plutôt ajouter une fonction dans leur interface pour retourner leur type.