c # — Пользовательский HRESULT из компонента COM

Создание пользовательских HRESULT был покрыт здесь
Создаете свой HRESULT?

Решение вышеуказанного вопроса хорошо для нативных клиентов c ++, они могут использовать возвращенные HRESULT в FormatMessage() и получить строку ошибки, как насчет C # и JavaScript-клиента? Ради обсуждения давайте забудем FormatMessage() через PInvoke.

например если функция COM возвращает E_ACCESSDENIED и клиент C # получит его через красиво упакованное исключение, со строкой ошибки и символическим именем (E_ACCESSDENIED)

System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

Понятно, что системные коды ошибок были сопоставлены с исключениями .Net.
Вопрос в том, как вернуть сгенерированный компилятором сообщения пользовательский код ошибки, упакованный в HRESULT?

Является MAKE_HRESULT ответ?

0

Решение

Задача ещё не решена.

Другие решения


По вопросам рекламы [email protected]