Site icon EfmSoft

Что означает код HRESULT 0x80010005 (RPC_E_CANTCALLOUT_INEXTERNALCALL)?

 
Предыдущий Следующий
RPC_E_CANTCALLOUT_INASYNCCALL RPC_E_CONNECTION_TERMINATED

RPC_E_CANTCALLOUT_INEXTERNALCALL

Что означает RPC_E_CANTCALLOUT_INEXTERNALCALL

RPC_E_CANTCALLOUT_INEXTERNALCALL означает, что текущий COM callback не допускает новый исходящий вызов. Часто это происходит внутри методов IMessageFilter или другого обработчика внешнего вызова.

Что проверить

  • Сохраните стек и определите callback, внутри которого возник HRESULT.
  • Проверьте helper/UI-код на скрытые обращения к COM automation.
  • Не выполняйте вызов сервера непосредственно из message-filter decision.
  • Перенесите работу в очередь, которая выполнится после возврата из callback.

Исправление заключается в изменении порядка выполнения, а не в повторе того же callout из запрещённого контекста. После переноса убедитесь, что вызов выполняется уже вне внешнего callback.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.

Exit mobile version