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 | Effekt |
---|---|
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, wenn ein SafeArray mit diesem Flag einem Element eines anderen SafeArrays zugewiesen wird, eine separate Kopie erstellt. |
Wenn Maske weggelassen wird, können Flags via NeueFlags hinzugefügt (falls positiv) oder entfernt (falls negativ) werden. Zum Beispiel entfernt ComObjFlags(obj, -1)
das F_OWNVALUE-Flag. Geben Sie für Maske keinen anderen Wert als 0 oder 1 an; alle anderen Bits sind für zukünftige Zwecke reserviert.
Prü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"