###Function###
ObjCreateInterface
###Experimental###
###Description###
Erzeugt eine Referenz zu einem Objekt aus dem angegebenen Klassennamen/Object-Pointer, Interface-Identifier und Bezeichnungsstring.
###Syntax###
ObjCreateInterface ( "CLSID" , "IID" [,"interface_description", ["flag"]] )
###Parameters###
@@ParamTable@@
CLSID
Klassenidentifizierer oder Object-Pointer. Der Klassenidentifizierer kann eine ProgID oder Stringrepräsentation der CLSID sein.
IID
Stringrepräsentation des Interface-Identifiers.
interface_description
[optional] String der die v-table des Objects bezeichnet. Das Default Keyword kann benutzt werden um auf IDispatch für dual interfaces zuzugreifen.
flag
[optional] Der Standardwert ist True, was bedeutet dass das Object-Interface Eigenschaften von IUnknown erbt.
@@End@@
###ReturnValue###
@@ReturnTable@@
Success: Gibt ein Object zurück.
Failure: Gibt 0 zurück und setzt @error auf ungleich Null.
@@End@@
###Remarks###
ObjCreateInterface erzeugt Objekte mit Methoden die im Interface-Bezeichnungsstring aufgelistet sind.
Bei COM Objekten (IUnknown basiert) sind die ersten drei Methoden immer QueryInterface, AddRef und Release. Diese dürfen nicht im Bezeichnungsstring spezifiziert werden.
Methoden die im Bezeichnungsstring aufgelistet sind, müssen in der v-table Reihenfolge des Interfaces sein. Falls eine ungültige oder fehlerhafte Bezeichnung angegeben wird, kann das zur Instabilität oder zum Absturz von AutoIt führen.
Das Format des Bezeichnungsstrings ist:
$sTagInterface = "MethodName1 RetType(ParamType1;ParamType2;...); MethodName2 RetType(..."
Standardmäßig, benutzt AutoIt die 'stdcall' Aufrufkonvention für COM. Um 'cdecl' zu benutzen muss ein ':cdecl' nach dem Rückgabetyp angegeben werden.
Gültige Typen sind:
@@ParamTable@@
Typ
Details
none
kein Wert (nur für Rückgabetyp gültig - äquivalent zu void in C)
byte
ein vorzeichenloser 8 bit Integer
boolean
ein vorzeichenloser 8 bit Integer
short
ein 16 bit Integer
word, ushort
ein vorzeichenloser 16 bit Integer
int, long
ein 32 bit Integer
bool
ein 32 bit Integer
dword, ulong, uint
ein vorzeichenloser 32 bit Integer
hresult
ein 32 bit Integer
int64
ein 64 bit Integer
uint64
ein vorzeichenloser 64 bit Integer
ptr
ein allgemeiner Pointer (void *)
hwnd
ein Fensterhandle (pointer)
handle
ein Handle (pointer)
float
eine Gleitkommazahl mit einfacher Genauigkeit
double
eine Gleitkommazahl mit doppelter Genauigkeit
int_ptr, long_ptr, lresult, lparam
ein Integer, groß genug um einen Pointer zu enthalten wenn die x86 or x64 Versionen von AutoIt benutzt werden.
uint_ptr, ulong_ptr, dword_ptr, wparam
ein vorzeichenloser Integer, groß genug um einen Pointer zu enthalten wenn die x86 or x64 Versionen von AutoIt benutzt werden.
str
ein ANSI String (ein Minimum von 65536 chars wird reserviert).
wstr
ein UNICODE wide character String (ein Minimum von 65536 chars wird reserviert).
bstr
ein zusammengesetzter Datentyp der aus einem Längenpräfix, einem Datenstring und einem Endzeichen besteht.
variant
eine tagged-Union welche jeden anderen Datentyp repräsentieren kann.
idispatch, object
ein zusammengesetzter Datentyp der ein Object mit IDispatch Interface repräsentiert.
clsid
128-bit Integer in Form eines GUID Strings
struct
Struktur die mit DllStructCreate() erstellt wurde
*
Um einen Datentypen via Referenz (Pointer) zu übergeben muss * an den Datentyp angefügt werden. Beispiel: "int*" übergibt einen Pointer zu einem "int" Typ.
@@End@@
Siehe Obj/COM Reference für mehr Informationen über Objekte.
###Related###
ObjCreate
###Example###
@@IncludeExample@@