using System; using System.Runtime.InteropServices; namespace ScreenConnect; public class ComArrayDisposer : IDisposable { public T[] Objects { get; private set; } public ComArrayDisposer(T[] objs) { Objects = objs; } public void Dispose() { T[] objects = Objects; for (int i = 0; i < objects.Length; i++) { Marshal.ReleaseComObject(objects[i]); } } }