Ermittelt oder ändert Flags, die das Verhalten eines COM-Wrapper-Objekts kontrollieren.
Flags := ComObjFlags(ComObject , NeueFlags, Maske)
Ein COM-Wrapper-Objekt.
Neue Werte für die via Maske identifizierten Flags, oder Flags, die hinzugefügt oder entfernt werden sollen.
Eine Bitmaske von Flags, die geändert werden sollen.
Diese Funktion gibt die aktuellen Flags des angegebenen COM-Objekts zurück (nach Anwendung von NeueFlags, falls angegeben).
Flag | Auswirkung |
---|---|
1 | F_OWNVALUE. Funktioniert momentan nur mit SafeArrays. Wenn dieses Flag gesetzt ist, wird das SafeArray beim Freigeben des Wrapper-Objekts zerstört. Da SafeArrays keinen Mechanismus zum Zählen von Referenzen haben, wird eine separate Kopie erstellt, wenn ein Element eines anderen SafeArrays ein SafeArray mit diesem Flag zugewiesen bekommt. |
Lässt man Maske weg, können Flags via NeueFlags hinzugefügt (falls positiv) oder entfernt (falls negativ) werden. ComObjFlags(obj, -1)
beispielsweise entfernt das F_OWNVALUE-Flag. Momentan kann Maske nur 0 oder 1 sein; alle anderen Bits sind für die zukünftige Verwendung reserviert.
Überprüft, ob das F_OWNVALUE-Flag vorhanden ist.
arr := ComObjArray(0xC, 1) if ComObjFlags(arr) & 1 MsgBox arr wird automatisch zerstört. else MsgBox arr wird nicht automatisch zerstört.
Ändert das Array-in-Array-Verhalten.
arr1 := ComObjArray(0xC, 3) arr2 := ComObjArray(0xC, 1) arr2[0] := "originaler Wert" arr1[0] := arr2 ; Implizite Kopie zuweisen. ComObjFlags(arr2, -1) ; F_OWNVALUE entfernen. arr1[1] := arr2 ; Originale Array zuweisen. arr1[2] := arr2.Clone() ; Explizite Kopie zuweisen. arr2[0] := "neuer Wert" for arr in arr1 MsgBox % arr[0] arr1 := "" ; Ungültig, da arr2 == arr1[1], das zerstört wurde: ; arr2[0] := "foo"