COMラッパーオブジェクトの動作を制御するフラグを取得または変更します。
Flags := ComObjFlags(ComObj , NewFlags, Mask)
型:オブジェクト
COM ラッパーオブジェクト。詳しくはComValueをご覧ください。
型:整数
Maskで識別されるフラグの新しい値、または追加または削除するフラグ。
型:整数
変更するフラグのビットマスクです。
型:整数
この関数は、指定された COM オブジェクトの現在のフラグ(指定された場合、NewFlagsを適用した後)を返します。
ComObjがCOMラッパーオブジェクトでない場合、TypeErrorが投げられる。
フラグ | 効果 |
---|---|
1 |
F_OWNVALUE SafeArray:このフラグが設定されている場合、SafeArrayはラッパーオブジェクトが解放される際に破棄されます。SafeArrayには参照カウントの仕組みがないため、このフラグを持つSafeArrayが他のSafeArrayの要素に割り当てられると、別のコピーが作成されます。 BSTR:このフラグが設定されている場合、BSTRはラッパーオブジェクトが解放される際に解放されます。 |
Maskが省略された場合、NewFlagsは、追加するフラグ(正の場合)または削除するフラグ(負の場合)を指定します。例えば、ComObjFlags(obj, -1)
は、F_OWNVALUEフラグを削除します。Maskには0または1以外の値を指定しないでください。他のすべてのビットは将来の使用のために予約されています。
ComValue、ComObjActive、ComObjArray
arr := ComObjArray(0xC, 1) if ComObjFlags(arr) & 1 MsgBox "arr will be automatically destroyed." else MsgBox "arr will not be automatically destroyed."
arr1 := ComObjArray(0xC, 3) arr2 := ComObjArray(0xC, 1) arr2[0] := "original value" arr1[0] := arr2 ; 暗黙のコピーを割り当てる。 ComObjFlags(arr2, -1) ; F_OWNVALUEを削除します。 arr1[1] := arr2 ; 元の配列を割り当てる。 arr1[2] := arr2.Clone() ; 明示的なコピーを割り当てる。 arr2[0] := "new value" for arr in arr1 MsgBox arr[0] arr1 := "" ; arr2 == arr1[1]が破壊されたので無効です: ; arr2[0] := "foo"