| Предыдущий | Следующий |
| ERROR_INVALID_HOOK_HANDLE | ERROR_TLW_WITH_WSCHILD |
ERROR_INVALID_DWP_HANDLE
Недопустимый дескриптор группового позиционирования окон
BeginDeferWindowPos создаёт HDWP объект состояния, который обновляется каждым вызовом DeferWindowPos и потребляется вызовом EndDeferWindowPos. Это краткоживущая цепочка операций, а не повторно используемый дескриптор макета.
Важная деталь контракта состоит в том, что DeferWindowPos возвращает обновлённый дескриптор, который может отличаться от переданного. Продолжение работы со старым HDWP, повторное использование дескриптора после EndDeferWindowPosили продолжение после неудачного отложенного вызова может сделать цепочку недействительной.
Что проверить
- Присваивайте результат каждого вызова
DeferWindowPosобратно отслеживаемомуHDWP. - Немедленно остановите последовательность, если отложенный вызов вернул NULL, и зафиксируйте
GetLastError. - Вызовите
EndDeferWindowPosодин раз для последнего действительного дескриптора. - Не сохраняйте дескриптор для последующего прохода компоновки.
Если цепочка действительна, но окна имеют разных родителей, более точным условием является ERROR_HWNDS_HAVE_DIFF_PARENT.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.