ComObjArray()
From AutoHotKey
ComObjArray() [v1.0.91+]
创建用于 COM 的安全数组(SafeArray)
ArrayObj := ComObjArray(VarType, Count1 [, Count2, ... Count8])
参数
- VarType
- 数组的基类型(数组中每个元素的变量类型).VarType被限制为变量类型的子集.不能设置为 VT_ARRAY 和 VT_BYREF.VT_EMPTY及VT_NULL不是数组的合法基类型. 其他所有类型是合法的.
可用值的列表见ComObjType.
- CountN
每个维度的大小.支持最多 8 维的数组.
- ArrayObj
包含 安全数组 的包装器对象.
方法
数组包装器对象支持下列方法:
Array.MaxIndex(n):返回第 n 维的上界.如果 n 省略,默认为 1.
Array.MinIndex(n):返回第 n 维的下界.如果 n 省略,默认为 1.
Array.Clone() [v1.0.96.00+]:返回数组的副本.
Array._NewEnum() [v1.0.96.00+]: 通常不是由脚本调用;允许for循环 与安全数组 一起使用.
一般说明
COM 方法和 ComObjActive 也可以返回数组包装器对象.脚本中可以使用如下方法判断一个值是否为数组:
if ComObjType(obj) & 0x2000
MsgBox % "数组子类:" . ComObjType(obj) & 0xfff
else
MsgBox 非数组.
可以支持多达 8 维的数组.
[v1.0.96.00+]: 由于 安全数组 未被设计为支持多重引用,故当一个 安全数组 被赋值为另一个 安全数组 的元素时,会创建一个独立的副本.不过,仅当包装器对象含有 F_OWNVALUE 标志时才会发生这种情况,这个标志表示它负责销毁此数组.此标志可用ComObjFlags移除.
[v1.1.17.00+]:当被COM客户端调用的函数或方法返回一个带有F_OWNVALUE标志的 安全数组 时,将建立并返回一个副本,而原 安全数组 将自动销毁.
相关
ComObjType, ComObjValue, ComObjActive, ComObjFlags, Array Manipulation Functions(数组操作函数) (MSDN)