| Предыдущий | Следующий |
| 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.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
