ComObjFlags()

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 | キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル | レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト

ComObjFlags() [v1.0.96.00+][編集]

AHKL COMラッパーオブジェクトの動作を取得またはフラグを変更する。

Flags := ComObjFlags(ComObject [, NewFlags, Mask])

Parameters[編集]

引数名 説明
ComObject COMラッパーオブジェクト。
NewFlags Maskの識別フラグの新しい値。またはフラグを追加または削除する。
Mask フラグのビットマスクを変更する。
Flags すべてのComObjectフラグ。(NewFlagsを適用した後、指定した場合)

Flags[編集]

F_OWNVALUE
1
現在SafeArraysのみに影響する。このフラグが設定されているラッパーオブジェクトが解放されると、SafeArrayのは破棄される。SafeArraysには参照カウント機構を持っていないので、このフラグのSafeArrayが別のSafeArrayの要素に割り当てられている場合は、別のコピーが作成される。

Remarks[編集]

Maskを省略した場合、NewFlags フラグを指定する。追加 (正の場合) または 削除(負の場合) 例えば、ComObjFlags(obj, -1) F_OWNVALUEフラグを削除する。 Maskには 0または 1以外の任意の値を指定しないこと、他のすべてのビットは将来の使用のために予約されている。

Related[編集]

ComObjActive(), ComObjArray()

Example(s)[編集]

; Example: Check for the presence of the F_OWNVALUE flag.

arr := ComObjArray(0xC, 1)
If ComObjFlags(arr) & 1
    MsgBox arr will be automatically destroyed.
Else
    MsgBox arr will not be automatically destroyed.
; Example: Change array-in-array behaviour.

arr1 := ComObjArray(0xC, 3)
arr2 := ComObjArray(0xC, 1)
arr2[0] := "original value"
arr1[0] := arr2		; Assign implicit copy.
ComObjFlags(arr2, -1)	; Remove F_OWNVALUE.
arr1[1] := arr2		; Assign original array.
arr1[2] := arr2.Clone()	; Assign explicit copy.
arr2[0] := "new value"
For arr in arr1
    MsgBox % arr[0]

arr1 := ""
; Not valid since arr2 == arr1[1], which has been destroyed: 
;  arr2[0] := "foo"