LoadTypeLib-Funktion (oleauto.h)

Lädt und registriert eine Typbibliothek.

Syntax

HRESULT LoadTypeLib(
  LPCOLESTR szFile,
  ITypeLib  **pptlib
);

Parameter

szFile

Der Name der Datei, aus der die Methode versuchen soll, eine Typbibliothek zu laden.

pptlib

Die geladene Typbibliothek.

Rückgabewert

Diese Funktion kann einen dieser Werte zurückgeben.

Rückgabecode Beschreibung
S_OK
Erfolg.
E_INVALIDARG
Mindestens eines der Argumente ist ungültig.
E_OUTOFMEMORY
Unzureichender Arbeitsspeicher, um den Vorgang abzuschließen.
TYPE_E_IOERROR
Die Funktion konnte nicht in die Datei schreiben.
TYPE_E_INVALIDSTATE
Die Typbibliothek konnte nicht geöffnet werden.
TYPE_E_INVDATAREAD
Die Funktion konnte nicht aus der Datei lesen.
TYPE_E_UNSUPFORMAT
Die Typbibliothek hat ein älteres Format.
TYPE_E_UNKNOWNLCID
Die LCID konnte nicht in den von OLE unterstützten DLLs gefunden werden.
TYPE_E_CANTLOADLIBRARY
Die Typbibliothek oder DLL konnte nicht geladen werden.

Bemerkungen

Die Funktion LoadTypeLib lädt eine Typbibliothek (normalerweise mit MkTypLib erstellt), die in der angegebenen Datei gespeichert wird. Wenn szFile nur einen Dateinamen ohne Pfad angibt, sucht LoadTypeLib nach der Datei und geht wie folgt vor:

  • Wenn es sich bei der Datei um eine eigenständige Typbibliothek handelt, die von Typelib.dll implementiert wird, wird die Bibliothek direkt geladen.
  • Wenn es sich bei der Datei um eine DLL oder eine ausführbare Datei handelt, wird sie geladen. Standardmäßig wird die Typbibliothek aus der ersten Ressource des Typs ITypeLib extrahiert. Um einen anderen Typ von Bibliotheksressource zu laden, fügen Sie einen ganzzahligen Index an szFile an. Beispiel:
    ITypeLib *ptlib;
    LoadTypeLib("C:\\MONTANA\\EXE\\MFA.EXE\\3", &ptlib)
    

    Diese Anweisung lädt die Typbibliotheksressource 3 aus der Datei Mfa.exe Datei.

  • Wenn die Datei keine der oben genannten Elemente ist, wird der Dateiname in einen Moniker (ein Objekt, das eine dateibasierte Linkquelle darstellt) analysiert und dann an den Moniker gebunden. Dieser Ansatz ermöglicht die Verwendung von LoadTypeLib für Fremdtypbibliotheken, einschließlich In-Memory-Typbibliotheken. Fremdtypbibliotheken dürfen sich nicht in einer DLL oder einer ausführbaren Datei befinden. Weitere Informationen zu Monikern finden Sie in der Referenz zum COM-Programmierer.
Wenn die Typbibliothek bereits geladen ist, erhöht LoadTypeLib die Verweisanzahl der Typbibliothek und gibt einen Zeiger auf die Typbibliothek zurück.

Aus Gründen der Abwärtskompatibilität registriert LoadTypeLib die Typbibliothek, wenn der Pfad nicht im szFile-Parameter angegeben ist. LoadTypeLib registriert die Typbibliothek nicht, wenn der Pfad der Typbibliothek angegeben ist. Es wird empfohlen, RegisterTypeLib zum Registrieren einer Typbibliothek zu verwenden.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile oleauto.h
Bibliothek OleAut32.lib
DLL OleAut32.dll