9.5 Wie kann ich feststellen, ob ein Objekt registriert ist?
VB4-VB6
Von: Thorsten Dörfler
Um festzustellen, ob ein Objekttyp überhaupt auf dem Rechner registriert ist, kann man versuchen die Klasse, also die Zeichenfolge, die auch CreateObject erwartet "LibraryName.ClassName", zu der passenden Klassen-ID (CLSID) aufzulösen. Ist dieser Versuch erfolgreich, kann man davon ausgehen, dass das Objekt verfügbar ist:
' Deklaration: Private Type GUID Data1 As Long Data2 As Integer Data3 As Integer Data4(0 To 7) As Byte End Type Private Declare Function CLSIDFromProgID Lib "ole32.dll" _ (ByVal ProgID As Long, rclsid As GUID) As Long Public Function ObjectExists(ByVal Class As String) As Boolean Dim lGUID As GUID If CLSIDFromProgID(StrPtr(Class), lGUID) = 0 Then ObjectExists = True End If End Function
Anwendung:
Debug.Print ObjectExists("Word.Application")
Letzte Gewissheit, ob das verfügbare Objekt auch wirklich richtig registriert, installiert und damit erstellbar ist, kann nur der Versuch ergeben, das Objekt auch zu erstellen. Durch entsprechende Fehlerbehandlung, kann man bei einenm Fehlschlag angemessen reagieren.