Site icon EfmSoft

Что означает код HRESULT 0x80040180 (OLEOBJ_E_NOVERBS)?

 
Предыдущий Следующий
CACHE_E_NOCACHE_UPDATED OLEOBJ_E_INVALIDVERB

OLEOBJ_E_NOVERBS

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

OLEOBJ_E_NOVERBS (0x80040180) означает, что OLE-объект не поддерживает verbs — команды, которые контейнер может вызвать через IOleObject::DoVerb. Это не ошибка номера одной команды: у объекта отсутствует сам набор доступных действий.

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

Вызовите IOleObject::EnumVerbs для фактического объекта и сохраните CLSID, версию OLE-сервера и результат перечисления. Не стройте меню из verbs другого класса, старой версии приложения или файловой ассоциации: некоторые OLE-объекты намеренно предоставляют только данные и не имеют интерактивных команд.

  • Отделите этот код от OLEOBJ_E_INVALIDVERB, где набор verbs существует, но отвергнута конкретная команда.
  • Если раньше verbs были доступны, проверьте изменение класса объекта, версии сервера и регистрации компонента.
  • Не перебирайте произвольные значения lVerb: отсутствие перечисления не исправляется угадыванием ID.

Исправление

Контейнер должен корректно работать без verb-команд либо использовать только те действия, которые объект объявляет в текущей конфигурации. После изменения сервера или объекта заново получите EnumVerbs и перестройте UI.

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


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

Exit mobile version