COM objects usually have deterministic destruction: they are freed when the last reference is released.
How is this handled in C# - COM Interop? The classes don\'t
You can manipulate COM interop references using the System.Runtime.InteropServices.Marshal class. Specifically you may want to have a look at Marshal.ReleaseComObject.