COM에 사용할 SafeArray를 생성합니다.
ArrayObj := ComObjArray(VarType, Count1 , Count2, ... Count8)
가능한 값의 목록은 ComObjType를 참조하십시오.
각 차원의 크기. 배열은 8 차원까지 지원됩니다.
This function returns a wrapper object containing a new SafeArray.
배열 포장 객체는 다음 메쏘드를 지원합니다:
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-회돌이를 SafeArrays에 사용할 수 있습니다.
COM 메쏘드와 ComObjActive()는 어떠한 포장 객체도 돌려줄 수 있으며 스크립트는 값이 배열인지 다음과 같이 알아낼 수 있습니다:
if ComObjType(obj) & 0x2000 MsgBox % "Array subtype: " . ComObjType(obj) & 0xfff else MsgBox Not an array.
최대 8 차원까지 지원됩니다.
[v1.0.96.00+]: 안전배열(SafeArrays)는 다중 참조를 지원하도록 설계되어 있지 않기 때문에, 한 안전배열이 또다른 안전배열의 원소로 할당될 때, 사본이 따로 생성됩니다. 그렇지만, 이런 일은 그 포장 객체에 F_OWNVALUE 플래그가 있을 경우에만 일어납니다. 이 플래그는 그 배열을 파괴할 책임이 있다는 뜻을 나타냅니다. ComObjFlags()를 사용하면 이 플래그를 제거할 수 있습니다.
[v1.1.17.00+]: COM 클라이언트에 의하여 호출되는 함수나 메쏘드가 F_OWNVALUE를 가진 안전배열을 돌려주면, 대신에 사본이 생성되고 반환됩니다. 원래의 SafeArray는 자동으로 파괴됩니다.
ComObjType(), ComObjValue(), ComObjActive(), ComObjFlags(), 배열 조작 함수 (MSDN)
arr := ComObjArray(VT_VARIANT:=12, 3) arr[0] := "Auto" arr[1] := "Hot" arr[2] := "key" Loop % arr.MaxIndex() + 1 t .= arr[A_Index-1] MsgBox % t
arr := ComObjArray(VT_VARIANT:=12, 3, 4) ; 차원의 개수를 얻습니다: dim := DllCall("oleaut32\SafeArrayGetDim", "ptr", ComObjValue(arr)) ; 각 차원의 상한값과 하한값을 얻습니다: Loop %dim% dims .= arr.MinIndex(A_Index) " .. " arr.MaxIndex(A_Index) "`n" MsgBox %dims% ; 간단한 사용법: Loop 3 { x := A_Index-1 Loop 4 { y := A_Index-1 arr[x, y] := x * y } } MsgBox % arr[2, 3]