/// <summary> /// Unmarshals and deallocates an OPCHDA_ANNOTATION structure. /// </summary> internal static TsCHdaAnnotationValueCollection GetAnnotationValueCollection(OpcRcw.Hda.OPCHDA_ANNOTATION input, bool deallocate) { TsCHdaAnnotationValueCollection output = new TsCHdaAnnotationValueCollection(); output.ClientHandle = input.hClient; DateTime[] timestamps = Utilities.Interop.GetDateTimes(ref input.ftTimeStamps, input.dwNumValues, deallocate); string[] annotations = Utilities.Interop.GetUnicodeStrings(ref input.szAnnotation, input.dwNumValues, deallocate); DateTime[] creationTimes = Utilities.Interop.GetDateTimes(ref input.ftAnnotationTime, input.dwNumValues, deallocate); string[] users = Utilities.Interop.GetUnicodeStrings(ref input.szUser, input.dwNumValues, deallocate); for (int ii = 0; ii < input.dwNumValues; ii++) { TsCHdaAnnotationValue value = new TsCHdaAnnotationValue(); value.Timestamp = timestamps[ii]; value.Annotation = annotations[ii]; value.CreationTime = creationTimes[ii]; value.User = users[ii]; output.Add(value); } return(output); }
/// <summary> /// Returns the set of item values stored in the list control. /// </summary> public TsCHdaAnnotationValueCollection GetValues() { TsCHdaAnnotationValueCollection values = new TsCHdaAnnotationValueCollection(); foreach (ListViewItem listItem in ValuesLV.Items) { if (typeof(TsCHdaAnnotationValue).IsInstanceOfType(listItem.Tag)) { values.Add(listItem.Tag); } } return(values); }