Getting the error message of a COM method called from C#
See the question and my original answer on StackOverflowYou should always do proper error checking in your code. This call:
SetErrorInfo(errorCode, pErrorInfo);
returns E_INVALIDARG because the first argument must be 0 as per official documentation. Replace it by:
SetErrorInfo(0, pErrorInfo);
And it will work.