Freigeben über


Visual FoxPro-Foxtlib-Steuerelement

Visual FoxPro enthält das Foxtlib-ActiveX-Steuerelement (Foxtlib.ocx im Windows-Ordner system32), das Sie zu einer Anwendung hinzufügen und mit dieser vertreiben können. ActiveX-Steuerelemente werden mit Hilfe des OLE-Container-Steuerelements von Visual FoxPro zu einem Formular in einer Anwendung hinzugefügt.

Mit Hilfe des Foxtlib-ActiveX-Steuerelements können Sie aus einer Visual FoxPro-Anwendung heraus auf Informationen der Typbibliothek zugreifen. Typbibliotheken werden zum Speichern von Klasseninformationen (Eigenschaften, Methoden usw.) für Automatisierungsserver verwendet, die Sie in Visual FoxPro und Visual Basic erstellen können. Typbibliotheken werden üblicherweise in Objektkatalogen angezeigt; verwiesen wird auf Typbibliotheken von anderen Anwendungen wie etwa Visual Basic oder Visual C++ aus, um die Herstellung direkter Objektverweise und das Kompilieren derselben zu Code zu ermöglichen.

Wenn Sie einen Automatisierungsserver im Projekt-Manager oder mit den Befehlen BUILD DLL oder BUILD EXE erstellen, wird eine Typbibliotheksdatei (TLB) erstellt. Die Typbibliotheksdatei enthält Informationen über die einzelnen Klassen, wie etwa die Anzahl der verlangten Parameter und deren Datentypen, die Rückgabetypen des Steuerelements, Verweise auf Hilfethemen oder Hilfedateien, die mehr Informationen über die Klasse bieten, usw.

Typelib.vcx, ein Beispiel einer Bibliothek visueller Klassen, die das Foxtlib-ActiveX-Steuerelement verwendet, ist im Visual Foxpro-Verzeichnis …\Samples\Classes installiert.

Die folgende Tabelle zeigt eine Liste der für das Foxtlib-ActiveX-Steuerelement verfügbaren Methoden. Zusätzliche Informationen über diese Methoden finden Sie im Microsoft-Entwicklernetzwerk.

Methode Beschreibung
TLLoadTypeLib(cTypeLibName) Lädt die durch cTypeLibName angegebene Typbibliotheksdatei. CTypeLibName muss ein vollständig angegebener Pfad- und Dateiname sein. Es wird eine positive, ganzzahlige Kennung für die Typbibliotheksdatei zurückgegeben; ein Wert kleiner oder gleich 0 wird zurückgegeben, wenn die Typbibliotheksdatei nicht geladen werden kann.
TLRelease(nTypeLibHandle) Gibt die geladene Typbibliothek, deren Kennung durch nTypeLibHandle angegeben ist, frei.
TLGetTypeInfoCount(nTypeLibHandle) Gibt die Anzahl der Typinformationen in der durch die Kennung nTypeLibHandle angegebenen Typbibliothek zurück.
TLGetDocumentation(nTypeLibHandle,
aDocArray, nMemberID, nType)
Erstellt ein dreielementiges Array, das Informationen über die Typbibliothek enthält, deren Kennung durch nTypeLibHandle angegeben ist. aDocArray bezeichnet den Namen des erstellten Arrays.

Das dreielementige Array enthält auch Einzelheiten zum Namen, zur Dokumentzeichenfolge und zur Hilfedatei für das durch nMemberID angegebene Element. nType gibt den Elementtyp an: 0 für Typinformation oder 1 für Element.

TLGetTypeInfo(nTypeLibHandle,
nTypeInfoNum)
Gibt einen ganzzahligen Index zur Verwendung durch die Methoden TLGetTypeAttr( ), TlGetNames( ) und TLGetFuncDesc( ) zurück. TLGetTypeInfo( ) gibt 0 zurück, wenn die Methode fehlschlägt.

Verwenden Sie TLGetTypeInfo( ), um alle Typinformationen in der durch die Kennung nTypeLibHandle angegebenen Typbibliothek (beginnend mit 0) zu durchlaufen. nTypeInfoNum gibt die Typinformation an, für die der Index zurückgegeben wird.

TLGetTypeAttr(nTypeInfoIndex,
aTypeArray)
Erstellt ein eindimensionales Array, das Informationen über eine Typinformation enthält. nTypeInfoIndex gibt die Indexnummer für die Typinformation an. aTypeArray gibt den Namen des erstellten Arrays an.

Im Folgenden sind die in den jeweiligen Elementen enthaltenen Informationen aufgeführt:

1    GUID.
2    lokale ID.
3    Reserviert.
4    Konstruktor-ID. 5    Destruktor-ID. 6    Reserviert.
7    Instanzgröße.
8    Typart.
9    Anzahl der Funktionen.
10    Anzahl von Variablen/Elementen.
11    Anzahl implementierter Schnittstellen.
12    Größe der Tabelle virtueller
        Funktionen des Typs.
13    Byteausrichtung einer Instanz
       dieses Typs.
14    Kennzeichen.
15    Hauptversionsnummer.
16    Unterversionsnummer.

TIGetFuncDesc(nTypeInfoIndex,
aTypeArray, nFunctionIndex, aParmsArray)
Gibt Informationen für eine in einer Typinformation angegebenen Funktion zurück.

Die Typinformation wird durch nTypeInfoIndex angegeben

NFunctionIndex gibt den Index der Funktion an, für die die Informationen zurückgegeben werden. nFunctionIndex kann zwischen 0 und dem Funktionszähler liegen, der von aTypeArray[9] der TLGetTypeAttr( )-Methode zurückgegeben wird.

TIGetFuncDesc( ) erstellt zwei Arrays, deren Namen durch aTypeArray und aParmsArray angegeben sind.

Das aTypeArray-Array enthält Informationen über die Funktion. Das aParmsArray-Array enthält eine Liste der von der Funktion verwendeten Parameter.

Die im jeweiligen Element von aTypeArray enthaltene Information ist im Folgenden angegeben:

1    ID. 2    Funktionsart; gibt an, ob die
        Funktion virtuell, statisch oder nur
        zur Verteilung ist.
3    Aufrufart; gibt an, ob es sich um eine Eigenschaftsfunktion handelt und um welchen Typ von Eigenschaftsfunktion es sich ggf. handelt.
4    Aufrufkonvention; gibt die Aufrufkonvention der Funktion an.
5    Gesamtzahl der Parameter.
6    Anzahl optionaler Parameter.
7    Für FUNC_VIRTUAL, gibt die Positionierung
        in der Tabelle virtueller Funktionen
        an.
8    Zähler der erlaubten Scodes.
9    Flags.

Im Folgenden sind die Funktionsarten aufgeführt:

FUNC_PUREVIRTUAL
Auf die Funktion wird über die Tabelle virtueller Funktionen zugegriffen; an die Funktion wird ein impliziter "This"-Zeiger übergeben.

FUNC_VIRTUAL
Auf die Funktion wird auf dieselbe Weise wie bei PUREVIRTUAL zugegriffen, abgesehen davon, dass die Funktion eine Implementierung hat.

FUNC_NONVIRTUAL
Auf die Funktion wird über eine statische Adresse zugegriffen; sie nimmt einen impliziten "This"-Zeiger an.

FUNC_STATIC
Auf die Funktion wird über eine statische Adresse zugegriffen; an die Funktion wird kein impliziter "This"-Zeiger übergeben.

FUNC_DISPATCH
Auf die Funktion kann nur über IDispatch zugegriffen werden.

Im Folgenden sind die Aufrufarten aufgeführt:

INVOKE_FUNC
Das Element wird unter Verwendung normaler Funktionsaufrufsyntax aufgerufen.

INVOKE_PROPERTYGET
Die Funktion wird unter Verwendung normaler Eigenschaftszugriffssyntax aufgerufen.

INVOKE_PROPERTYPUT
Die Funktion wird unter Verwendung der Syntax für Eigenschaftswertzuweisungen aufgerufen. Eine typische Programmiersprache stellt das Ändern einer Eigenschaft etwa auf die gleiche Weise als Zuweisung dar, beispielsweise Objekt.Eigenschaft := Wert.

INVOKE_PROPERTYPUTREF
Die Funktion wird unter Verwendung der Syntax für Eigenschaftsverweiszuweisungen aufgerufen.

Im Folgenden sind die Kennzeichen aufgeführt:

FUNCFLAG_FRESTRICTED = 1
Die Funktion sollte von Makrosprachen aus nicht zugreifbar sein. Dieses Kennzeichen ist für Funktionen auf Systemebene gedacht oder für Funktionen, die von Typkatalogen nicht angezeigt werden sollen.

FUNCFLAG_FSOURCE = 0x2
Die Funktion gibt ein Objekt zurück, das eine Ereignisquelle ist.

FUNCFLAG_FBINDABLE = 0x4
Die Funktion unterstützt Datenbindung.

FUNCFLAG_FDISPLAYBIND = 0x10
Die Funktion wird Benutzern als bindbar dargestellt, d. h., FUNC_FBINDABLE muss ebenfalls gesetzt werden.

FUNCFLAG_FDEFAULTBIND = 0x20
Die Funktion, die das Objekt am besten repräsentiert. Nur jeweils eine Funktion einer Typinformation kann dieses Attribut haben.

FUNCFLAG_FHIDDEN= 0x40
Die Funktion sollte Benutzern nicht angezeigt werden, obwohl sie vorhanden und bindbar ist.

TIGetNames(nTypeInfoIndex,
aNameArray, aTypeArray[1])
Gibt die Anzahl der Funktionen für eine Typinformation zurück und erstellt ein Array.

Die Typinformation wird durch nTypeInfoIndex angegeben, und aNameArray gibt den Namen des erstellten Arrays an.

ATypeArray[1] gibt die vom aTypeArray-Array in der TIGetFuncDesc( )-Methode zurückgegebene ID an.

Siehe auch

Überblick über ActiveX-Steuerelemente | OLE-Container-Steuerelement | Erstellen von Automatisierungsservern