internal static Opc.Dx.IdentifiedResult[] GetIdentifiedResults(ref IntPtr pInput, int count, bool deallocate) { Opc.Dx.IdentifiedResult[] resultArray = null; if ((pInput != IntPtr.Zero) && (count > 0)) { resultArray = new Opc.Dx.IdentifiedResult[count]; IntPtr ptr = pInput; for (int i = 0; i < count; i++) { OpcRcw.Dx.IdentifiedResult result = (OpcRcw.Dx.IdentifiedResult)Marshal.PtrToStructure(ptr, typeof(OpcRcw.Dx.IdentifiedResult)); resultArray[i] = new Opc.Dx.IdentifiedResult(); resultArray[i].ItemName = result.szItemName; resultArray[i].ItemPath = result.szItemPath; resultArray[i].Version = result.szVersion; resultArray[i].ResultID = OpcCom.Interop.GetResultID(result.hResultCode); if (deallocate) { Marshal.DestroyStructure(ptr, typeof(OpcRcw.Dx.IdentifiedResult)); } ptr = (IntPtr)(ptr.ToInt32() + Marshal.SizeOf(typeof(OpcRcw.Dx.IdentifiedResult))); } if (deallocate) { Marshal.FreeCoTaskMem(pInput); pInput = IntPtr.Zero; } } return(resultArray); }
// Token: 0x060004B4 RID: 1204 RVA: 0x0000DFDD File Offset: 0x0000CFDD public IdentifiedResult(IdentifiedResult item) : base(item) { if (item != null) { this.ResultID = item.ResultID; this.DiagnosticInfo = item.DiagnosticInfo; } }
/// <summary> /// Converts an array of COM IdentifiedResult structures to .NET IdentifiedResult objects. /// </summary> internal static Opc.Dx.IdentifiedResult[] GetIdentifiedResults(ref IntPtr pInput, int count, bool deallocate) { Opc.Dx.IdentifiedResult[] output = null; if (pInput != IntPtr.Zero && count > 0) { output = new Opc.Dx.IdentifiedResult[count]; IntPtr pos = pInput; for (int ii = 0; ii < count; ii++) { OpcRcw.Dx.IdentifiedResult result = (OpcRcw.Dx.IdentifiedResult)Marshal.PtrToStructure(pos, typeof(OpcRcw.Dx.IdentifiedResult)); output[ii] = new Opc.Dx.IdentifiedResult(); output[ii].ItemName = result.szItemName; output[ii].ItemPath = result.szItemPath; output[ii].Version = result.szVersion; output[ii].ResultID = OpcCom.Interop.GetResultID(result.hResultCode); if (deallocate) { Marshal.DestroyStructure(pos, typeof(OpcRcw.Dx.IdentifiedResult)); } pos = (IntPtr)(pos.ToInt64() + Marshal.SizeOf(typeof(OpcRcw.Dx.IdentifiedResult))); } if (deallocate) { Marshal.FreeCoTaskMem(pInput); pInput = IntPtr.Zero; } } return(output); }
/// <summary> /// Removes all itemIDs in the collection. /// </summary> public void Clear() { m_results = new IdentifiedResult[0]; }