| Предыдущий | Следующий |
| ERROR_NO_WILDCARD_CHARACTERS | ERROR_HOTKEY_NOT_REGISTERED |
ERROR_CLIPBOARD_NOT_OPEN
Поток не открыл буфер обмена
Доступ к данным буфера обмена сериализован. Окно или поток сначала вызывает OpenClipboard, выполняет поддерживаемые операции буфера обмена и затем вызывает CloseClipboard. Одновременно буфер обмена может быть открыт только одним окном.
Обычно эта ошибка связана со структурой жизненного цикла, а не с форматом данных. Вспомогательный код может вызвать GetClipboardData или EmptyClipboard после того, как более ранняя область уже закрыла буфер обмена. Особый случай — отложенное отображение: при обработке WM_RENDERFORMATвладелец не должен открывать буфер обмена, поскольку запрашивающая сторона уже его открыла.
Что проверить
- Сосредоточьте владение открытием/закрытием в одной области и одном потоке.
- Проверьте каждый путь раннего выхода на отсутствующий
CloseClipboard. - Не повторяйте операции с данными, пока сам
OpenClipboardне завершится успешно. - Обрабатывайте сообщения отложенного отображения согласно их отдельным правилам открытия буфера обмена.
Статус не сообщает, что другой процесс сейчас владеет блокировкой открытия; он означает, что у вызывающей стороны нет допустимого контекста открытого буфера обмена для этой операции.
Ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.
