ComObjFromPtr

Wrappt einen rohen IDispatch-Pointer (COM-Objekt), damit er vom Skript verwendet werden kann.

ComObj := ComObjFromPtr(DispPtr)

Parameter

DispPtr

Typ: Integer

Ein Interface-Pointer ungleich Null für IDispatch oder ein abgeleitetes Interface.

Rückgabewert

Typ: ComObject

Gibt ein Wrapper-Objekt zurück, das den Variantentyp VT_DISPATCH und den angegebenen Pointer enthält.

Das Wrappen eines COM-Objekts ermöglicht dem Skript eine natürlichere Interaktion mit diesem mittels Objektsyntax. Die meisten Skripte müssen dies jedoch nicht manuell tun, da ComObject, ComObjActive, ComObjGet und andere COM-Methoden, die ein Objekt zurückgeben, automatisch ein Wrapper-Objekt erstellen.

Bemerkungen

Das Wrapper-Objekt übernimmt die Verantwortung für die automatische Freigabe des Pointers, falls erforderlich. Diese Funktion versucht, das IDispatch-Interface des Objekts anzufordern; bei Erfolg wird DispPtr sofort freigegeben. Wenn das Skript also den Pointer nach dem Aufruf dieser Funktion weiter verwenden will, muss es zuerst ObjAddRef(DispPtr) aufrufen.

Bekannte Einschränkung: Jedes Mal, wenn ein COM-Objekt gewrappt wird, wird ein neues Wrapper-Objekt erstellt. Vergleiche und Zuweisungen wie obj1 == obj2 und arr[obj1] := Wert behandeln die beiden Wrapper-Objekte als nicht identisch, auch wenn sie dasselbe COM-Objekt enthalten.

ComObject, ComValue, ComObjGet, ComObjConnect, ComObjFlags, ObjAddRef/ObjRelease, ComObjQuery, GetActiveObject (Microsoft Docs)