Что означает код ошибки Windows 1413 (ERROR_INVALID_INDEX)?

 
Предыдущий Следующий
ERROR_CLASS_HAS_WINDOWS ERROR_INVALID_ICON_HANDLE

ERROR_INVALID_INDEX

Запрошенный индекс данных окна недопустим

Некоторые API USER32 получают доступ к атрибутам по числовому индексу: предопределённые отрицательные константы выбирают стандартные поля, а неотрицательные смещения могут адресовать дополнительные байты, зарезервированные классом окна. Это контракты, а не произвольные индексы массива.

Распространённые ошибки: передача индекса конкретного элемента управления в общий оконный API, использование байтового смещения за пределами cbWndExtra или cbClsExtraили усечение индекса в коде совместимости. Диалоговые окна также резервируют определённое дополнительное хранилище для данных диспетчера диалогов.

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

  • Определите точный индексный API и выводите в диагностике символьную константу индекса.
  • Для пользовательских дополнительных байтов сравните смещение и размер сохраняемого типа с регистрацией класса.
  • При необходимости используйте API разрядности указателя, такие как GetWindowLongPtr/SetWindowLongPtr .
  • Не используйте закрытые индексы диалога как хранилище приложения.

ERROR_PRIVATE_DIALOG_INDEX является более конкретным статусом, когда числовой индекс указывает в хранилище, зарезервированное диспетчером диалогов.

Ссылки


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