Trouver la classid d'une dll activex

Soyez le premier à donner votre avis sur cette source.

Vue 13 937 fois - Téléchargée 1 157 fois

Description

Bonjour, suite a quelques questions comment fonctionne les les DLL ActiveX dans vb je me permet de vous proposer cette source qui offre la possibilité de retoruver facillement la ClassID (communement appelé GUID par abus de langage). Cet identifiant vous permet entre autre de d'identifier vos classe publique dans vos dll au yeux du shell de windows. PAr exemple pour créer une extension du menu contextuel.

Imaginons que vous compiliez une DLL nommé Projet1 avec une classe publique nommée Classe1 vous taper alors dans le programme "Projet1.Classe1" puis vous cliquez sur "Search". Le programme va alors retrouver les identifiants en recherchant dans la base de registre puis dans votre DLL.

Conclusion :


J'hesite encore a faire une sorte d'assistant ou on choisirais un fichier dll puis il afficherais toute les classe disponible avec les id ou bien encore un add in vb, a voir...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
51
Date d'inscription
samedi 21 octobre 2000
Statut
Membre
Dernière intervention
10 octobre 2011

Effectivement, mais il m'a semblé utile d'en citer l'existence
pour qui était intéressé par le sujet. 8)
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
En effet il existe d'autres methodes... hors celle que tu mentionne utilise une dll tierce partie et quand on peux s'en passé c'est encore mieu ;p

@+
Messages postés
51
Date d'inscription
samedi 21 octobre 2000
Statut
Membre
Dernière intervention
10 octobre 2011

Bonjour Ebartsoft,
Comme j'ai tendance à lire en diagonale,
il est possible que je n'ai pas saisi le but exact de l'exercice
(trouver le GUID et les CLSID ou les convertir).
Juste pour compléter cette file, il existe une librairie méconnue
qui gère cet exercice : TLI (Typelib Informations) -

Sub getCLSID(fullFileName As String)
Dim clsTLI As New TLIApplication, objTLI As New TypeLibInfo, i As Long

Set objTLI = clsTLI.TypeLibInfoFromFile(fullFileName)
Debug.Print "GUID de la librairie: "; vbTab & objTLI.GUID
Debug.Print String(64, "-")
For i = 1 To objTLI.CoClasses.Count 'shows GUID of each class
Debug.Print " Classe: "; objTLI.CoClasses(i).Name
Debug.Print Space(12) & "=====> CLSID: "; objTLI.CoClasses(i).GUID
Next
Debug.Print
End Sub
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
Oui pas eu le temps de repondre mais il suffit d'aller piocher la clef HKEY_CLASSES_ROOT\CLSID\{CLSID}\InprocServer32
Messages postés
90
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
1 février 2011

OK! j'ai compris!
une fois que j'ai la CLASSID,
il suffit de récupérer dans la base de registre
les infos qui me manquent.
Je voulais avoir du tout cuit ;-)
Afficher les 8 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.