(предварительное примечание: я еще не полностью освоил всю эту штуку с «взаимодействием» ...)
При использовании библиотеки COM из .NET, все методы HRESULT
обертываются во что-то, что выдает, когда код возврата НЕ УСПЕШНО.
//ATL magic exluded
class C {
HRESULT foo(){ return E_FAIL; }
};
// usage code:
if( SUCCEEDED( c.foo() ) ) {
// success code
} else {
// failure code
}
Аналог этого кода для .NET гласит:
try {
c.foo();
// success code
} catch ( Exception e ) {
// failure code
}
Есть ли способ получить доступ к коду возврата COM непосредственно в .NET, чтобы не обрабатывать исключения?