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