Site icon EfmSoft

Что означает код HRESULT 0x80010003 (RPC_E_CANTPOST_INSENDCALL)?

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

RPC_E_CANTPOST_INSENDCALL

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

RPC_E_CANTPOST_INSENDCALL (0X80010003) означает, что вызывающий поток в данный момент dispatch-ит межзадачный SendMessage и пытается выполнить исходящий вызов через PostMessage. COM отклоняет такую комбинацию из-за текущего синхронного call context.

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

  • Снимите стек в момент первого HRESULT и подтвердите, что вызов выполняется внутри обработки синхронного window message, а не из обычного event-loop шага.
  • Проверьте reentrancy: callback/handler не должен запускать новый COM call, требующий post, пока исходный SendMessage ещё не вернулся.
  • Перенесите вторичную работу в очередь, выполняемую после выхода из текущего синхронного обработчика, и повторите тот же COM-метод.

Этот код описывает состояние message dispatch, а не сетевой RPC failure. Смена proxy/stub или повторная регистрация класса не устраняет вложенный SendMessage lifecycle.

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


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

Exit mobile version