Используя пример кода здесь: Вызов управляемого метода .NET из собственного кода
Только со следующим изменением:
Бросить исключение, полученное ApplicationException, в методе Test
public class TestException : ApplicationException
{
public TestException(string message)
: base(message)
{
this.HResult = unchecked((int)0x80040201);
}
}
public class Class1
{
public void Test()
{
throw new TestException("test");
}
}
Пересборка и запуск приложения показывают, что вызов InvokeMember_3 генерирует _com_error с кодом ошибки HRESULT 0x80131604 COR_E_TARGETINVOCATION (TargetInvocationException).
Как я могу получить настоящий HRESULT 0x80040201?
Спасибо.
Редактировать
Я немного обновил свой вопрос и разместил полный пример решения здесь: kb953836.zip