Comment extraire un GUID d'une DLL Win32 ou OCX
Question
Nous avons une application .NET qui doit examiner un dossier qui peut contenir des bibliothèques COM (DLL et OCX.) Quand nous faisons rencontrer une bibliothèque COM une chose que nous devons accomplir est d'extraire le GUID de la COM DLL ou OCX .
Y at-il un moyen simple de le faire avec .NET sans utiliser les bibliothèques 3ème partie?
La solution
Cela devrait travailler pour vous. Il faut une référence à c:. \ Windows \ system32 \ tlbinf32.dll , mais je suppose que c'est correct parce que ce n'est pas un composant tiers
Imports TLI 'from c:\windows\system32\tlbinf32.dll
Dim reglib As TLI.TLIApplication = New TLI.TLIApplicationClass()
Dim DLLPath As String = "c:\mycomponent.ocx"
MsgBox(reglib.TypeLibInfoFromFile(DLLPath).GUID.ToString())
Autres conseils
Vous devrez utiliser Interop (à la fois P / Invoke et COM) afin de le faire. Tout d'abord, vous devrez appeler le LoadTypeLib pour obtenir l'interface ITypeLib pour la bibliothèque de types.
A partir de là, vous devrez utiliser les méthodes sur ce afin d'obtenir le GUID de la bibliothèque, ou d'obtenir les instances CLSID ou IID quoi que ce soit défini dans la bibliothèque.