COM 포장 객체의 행위를 제어하는 플래그를 열람하거나 변경합니다.
Flags := ComObjFlags(ComObject , NewFlags, Mask)
COM 포장 객체.
Mask로 식별되는 프래그에 대한 새 값, 또는 추가하거나 더할 플래그.
바꿀 비트마스크 플래그.
This function returns the current flags of the specified COM object (after applying NewFlags, if specified).
Flag | 효과 |
---|---|
1 | F_OWNVALUE. 현재는 오직 SafeArrays에만 영향을 줍니다. 이 플래그가 설정되면, SafeArray는 포장 객체가 해제될 때 파괴됩니다. SafeArrays는 참조 횟수 세기 메커니즘이 없으므로, 만약 이 플래그를 가진 SafeArray가 또다른 SafeArray의 한 원소에 할당되면, 따로 사본이 생성됩니다. |
Mask를 생략하면, NewFlags는 (양수이면) 더할 플래그, (음수이면) 제거할 플래그를 지정합니다. 예를 들어, ComObjFlags(obj, -1)
는 F_OWNVALUE 플래그를 제거합니다. Mask에는 0이나 1말고 다른 값을 지정하지 마십시오; 다른 모든 비트는 미래에 사용할 목적으로 예약되어 있습니다.
arr := ComObjArray(0xC, 1) if ComObjFlags(arr) & 1 MsgBox arr은 자동으로 파괴됩니다. else MsgBox arr는 자동으로 파괴되지 않습니다.
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"