예제 #1
0
        /// <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);
        }