Site icon EfmSoft

Что означает код HRESULT 0x80020001 (DISP_E_UNKNOWNINTERFACE)?

 
Предыдущий Следующий
RPC_E_UNEXPECTED DISP_E_MEMBERNOTFOUND

DISP_E_UNKNOWNINTERFACE

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

DISP_E_UNKNOWNINTERFACE (0x80020001) — в Automation-вызове указан неподдерживаемый interface identifier.

COM Automation позволяет вызывать свойства и методы через IDispatch без жёсткой привязки к vtable-интерфейсу: имя преобразуется в DISPID, а Invoke получает аргументы как VARIANT/DISPPARAMS. Поэтому для DISP_E_* особенно важны конкретный член, DISPID и фактические типы аргументов.

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

  • Запишите riid, переданный в IDispatch::Invoke/GetIDsOfNames.
  • Для стандартного IDispatch-контракта проверьте, что используется ожидаемый IID_NULL, если документация метода не задаёт иное.
  • Не путайте этот результат с E_NOINTERFACE от QueryInterface: граница вызова здесь другая.

Что делать

Передайте IID, предусмотренный контрактом IDispatch конкретного API.

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


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

Exit mobile version