public OPCITEMRESULT[] AddItems( OPCITEMDEF[] itemDefinitions, out HRESULT[] errors) { var _errors = new HRESULT[itemDefinitions.Length]; OPCITEMRESULT[] result = DoComCall(ComObject, "IOPCItemMgt::AddItems", () => { IntPtr ppAddResults; ComObject.AddItems(itemDefinitions.Length, itemDefinitions, out ppAddResults, out _errors); OPCITEMRESULT[] opcDaItemResults = ArrayHelpers.CreateOpcItemResults(itemDefinitions, ppAddResults); Marshal.FreeCoTaskMem(ppAddResults); return(opcDaItemResults); }, itemDefinitions.Length, itemDefinitions); errors = _errors; return(result); }