Either let the GC handle this, as Richard suggested, or your number 2. If you call FinalReleaseComObject, you destroy the shell called by the call, regardless of whether it finds it and other parts of your code. This can seriously confuse other parts of your code. Therefore, you should only call ReleaseComObjectonce per transition to the .NET transition from-COM-COM.
source
share