using System; using System.Collections.Generic; using System.Text; using ORiN2.ManagedCAO; namespace NJSample.VarInfo { class ArrayVariableInfo : VariableInfo { protected override void CreateImpl(CCaoController ctrl) { VarType childVt = VarType; if (ArrayLengthList.Count == 1) { childVt &= (~VarType.VT_ARRAY); } List childArrayLengthList = new List(ArrayLengthList); childArrayLengthList.RemoveAt(0); List childArrayLBoundList = new List(ArrayLBoundList); childArrayLBoundList.RemoveAt(0); for (uint i = 0; i < ArrayLengthList[0]; i++) { VariableInfo info = VariableInfoFactory.CreateVariableInfo(childVt); info.IsArrayMember = true; info.ArrayIndex = i + ArrayLBoundList[0]; info.ArrayLengthList.AddRange(childArrayLengthList); info.ArrayLBoundList.AddRange(childArrayLBoundList); info.VarType = childVt; info.CIPType = this.CIPType; info.StructName = StructName; info.Parent = this; info.Create(ctrl); ChildList.Add(info); } } protected override string GetTypeString() { return string.Format(" (Array[{0}..{1}])", ArrayLBoundList[0], ArrayLBoundList[0] + ArrayLengthList[0] - 1); } protected override string GetVariableOption() { //return string.Format("LBOUND={0},ELEM={1}", ArrayLBoundList[0]); return string.Empty; } } }