| Предыдущий | Следующий |
| ERROR_INVALID_ICON_HANDLE | ERROR_LISTBOX_ID_NOT_FOUND |
ERROR_PRIVATE_DIALOG_INDEX
Индекс относится к закрытому хранилищу диалога
Диалоговые окна используют зарезервированные дополнительные байты и предопределённые смещения DWLP_* для состояния диспетчера диалогов, например процедуры диалога и результата сообщения. Эти смещения не являются обычным хранилищем окна, определённым приложением.
Проблема часто возникает в универсальном коде подкласса или среды, который считает каждый HWND будто его дополнительные байты зарегистрированы приложением. Запись по предполагаемому смещению может конфликтовать с учётом диалога, даже если тот же вспомогательный код работает для пользовательского класса.
Что следует проверить
- Определите, является ли целевое окно диалогом или производным от диалога.
- Используйте
DWLP_MSGRESULT,DWLP_DLGPROCи документированные API диалогов используйте только по назначению. - Храните состояние приложения в документированном поле указателя, свойстве, механизме подкласса или намеренно зарезервированных дополнительных байтах класса.
- Проверьте 32- и 64-разрядный код на использование API данных окна ширины указателя.
Это более узкая ошибка, чем ERROR_INVALID_INDEX: индекс может распознаваться, но относится к закрытому хранилищу диалога, которое вызывающая сторона не должна считать универсальными данными.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.