Site icon EfmSoft

Что означает код HRESULT 0x80040181 (OLEOBJ_E_INVALIDVERB)?

 
Предыдущий Следующий
OLEOBJ_E_NOVERBS INPLACE_E_NOTUNDOABLE

OLEOBJ_E_INVALIDVERB

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

OLEOBJ_E_INVALIDVERB (0x80040181) означает, что выбранный OLE verb недопустим для объекта. Ошибка относится к конкретной команде активации, переданной в IOleObject::DoVerb, а не к отсутствию всех verbs.

Практическая диагностика

Сохраните lVerb, CLSID объекта, текущий результат IOleObject::EnumVerbs, источник команды в UI и состояние активации. Кэшированный положительный ID может перестать быть допустимым после смены класса или версии OLE-сервера.

  • Проверьте, что lVerb присутствует в актуальном перечислении либо является поддерживаемым стандартным OLE verb.
  • Не переносите private verb ID между разными классами объектов и версиями сервера.
  • Отделите этот код от OLEOBJ_E_NOVERBS: там объект вообще не предоставляет набор команд.

Как исправить

Перестройте меню или команду активации из текущего EnumVerbs и передавайте в DoVerb только допустимый verb. Повтор имеет смысл после обновления объекта или списка verbs, а не с тем же заведомо неверным ID.

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


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

Exit mobile version