Что означает код HRESULT 0x00040182 (OLEOBJ_S_INVALIDHWND)?

 
Предыдущий Следующий
OLEOBJ_S_CANNOT_DOVERB_NOW INPLACE_S_TRUNCATED

OLEOBJ_S_INVALIDHWND

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

OLEOBJ_S_INVALIDHWND (0x00040182) — информационный результат IOleObject::DoVerb: операция verb была выполнена, но переданный hwndParent недопустим. Это не эквивалент полного отказа активации.

Практическая проверка

Проверьте lifetime родительского окна и поток, которому оно принадлежит. Сохраните значение hwndParent, результат IsWindow непосредственно перед вызовом, lVerb и lprcPosRect. Особенно подозрителен кэшированный HWND после пересоздания окна или завершения UI-потока.

  • Не используйте старый handle после destroy/recreate.
  • Убедитесь, что контейнер передаёт окно нужного документа, а не временное или уже уничтоженное окно.
  • Поскольку HRESULT положительный, отдельно проверьте фактическое состояние активированного OLE-объекта перед попыткой «повторить ошибку».

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


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