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.