Прочитать на английском

Поделиться через


Буфер обмена

Буфер обмена — это набор функций и сообщений, позволяющих приложениям передавать данные. Так как все приложения имеют доступ к буферу обмена, данные можно легко передавать между приложениями или в приложении.

В этом обзоре не описывается копирование и вставка связанных или внедренных объектов. Дополнительные сведения об этих темах см. в документации по объектной модели компонентов (COM).

В этом разделе

Имя Описание
Сведения о буфере обмена
Обсуждает буфер обмена.
Форматы буфера обмена
Обсуждает форматы буфера обмена. Окно может поместить несколько объектов в буфер обмена, каждый из которых представляет одну и ту же информацию в другом формате буфера обмена. Пользователям не нужно знать форматы буфера обмена, используемые для объекта в буфере обмена.
Операции с буфером обмена
Описывает операции буфера обмена. Окно должно использовать буфер обмена при вырезании, копировании или вставке данных. Окно помещает данные в буфер обмена для операций вырезания и копирования и извлекает данные из буфера обмена для операций вставки.
Формат буфера обмена HTML
Описывает формат буфера обмена HTML.
Использование буфера обмена
Окно просмотра буфера обмена отображает текущее содержимое буфера обмена и получает сообщения при изменении содержимого буфера обмена.
Справочник по буферу обмена
Содержит ссылку на API.

Функции буфера обмена

Имя Описание
AddClipboardFormatListener
Помещает заданное окно в список прослушивателя формата буфера обмена, поддерживаемого системой.
ChangeClipboardChain
Удаляет указанное окно из цепочки зрителей буфера обмена.
CloseClipboard
Закрывает буфер обмена.
CountClipboardFormats
Извлекает количество различных форматов данных, которые в настоящее время находятся в буфере обмена.
EmptyClipboard
Очищает буфер обмена и освобождает дескриптор данных в буфере обмена. Затем функция назначает владение буфером обмена в окне, которое в настоящее время имеет открытый буфер обмена.
EnumClipboardFormats
Перечисляет форматы данных, доступные в настоящее время в буфере обмена.
Форматы данных буфера обмена хранятся в упорядоченном списке. Чтобы выполнить перечисление форматов данных буфера обмена, выполните ряд вызовов функции EnumClipboardFormats . Для каждого вызова параметр формата задает доступный формат буфера обмена, а функция возвращает следующий доступный формат буфера обмена.
GetClipboardData
Извлекает данные из буфера обмена в указанном формате. Буфер обмена должен быть открыт ранее.
GetClipboardFormatName
Извлекает из буфера обмена имя указанного зарегистрированного формата. Функция копирует имя в указанный буфер.
GetClipboardOwner
Извлекает дескриптор окна текущего владельца буфера обмена.
GetClipboardSequenceNumber
Извлекает порядковый номер буфера обмена для текущей станции окон.
GetClipboardViewer
Извлекает дескриптор в первом окне в цепочке просмотра буфера обмена.
GetOpenClipboardWindow
Извлекает дескриптор в окно с открытым буфером обмена.
GetPriorityClipboardFormat
Извлекает первый доступный формат буфера обмена в указанном списке.
GetUpdatedClipboardFormats
Извлекает поддерживаемые в настоящее время форматы буфера обмена.
IsClipboardFormatAvailable
Определяет, содержит ли буфер обмена данные в указанном формате.
OpenClipboard
Открывает буфер обмена для проверки и запрещает другим приложениям изменять содержимое буфера обмена.
RegisterClipboardFormat
Регистрирует новый формат буфера обмена. Затем этот формат можно использовать в качестве допустимого формата буфера обмена.
RemoveClipboardFormatListener
Удаляет заданное окно из списка прослушивателя формата буфера обмена, поддерживаемого системой.
SetClipboardData
Помещает данные в буфер обмена в указанном формате буфера обмена. Окно должно быть текущим владельцем буфера обмена, и приложение должно вызывать функцию OpenClipboard. (При реагировании на запросы WM_RENDERFORMAT сообщение, владелец буфера обмена не должен вызывать OpenClipboard перед вызовом SetClipboardData.)
SetClipboardViewer
Добавляет указанное окно в цепочку зрителей буфера обмена. Окна просмотра буфера обмена получают сообщение WM_DRAWCпакет интерфейса пользователя BOARD всякий раз, когда содержимое буфера обмена изменяется.

Сообщения буфера обмена

Имя Описание
WM_CLEAR
Отправляется в элемент управления редактирования или поле со списком, чтобы удалить (очистить) текущий выбор( если таковой есть) из элемента управления редактирования.
WM_COPY
Отправляется в элемент управления редактирования или поле со списком, чтобы скопировать текущий выбор в буфер обмена в CF_TEXT формате.
WM_CUT
Отправляется в элемент управления редактирования или поле со списком, чтобы удалить (вырезать) текущий выделенный фрагмент, если таковой есть, в элементе управления редактирования и скопируйте удаленный текст в буфер обмена в CF_TEXT формате.
WM_PASTE
Отправляется в элемент управления редактирования или поле со списком, чтобы скопировать текущее содержимое буфера обмена в элемент управления редактирования в текущей позиции курсора. Данные вставляются только в том случае, если буфер обмена содержит данные в CF_TEXT формате.

Уведомления буфера обмена

Имя Описание
WM_ASKCBFORMATNAME
Отправляется владельцу буфера обмена окном просмотра буфера обмена, чтобы запросить имя формата буфера обмена CF_OWNERDISPLAY .
WM_CHANGECBCHAIN
Отправляется в первое окно в цепочке просмотра буфера обмена при удалении окна из цепочки.
WM_Cпакет интерфейса пользователя BOARDUPDATE
Отправлено при изменении содержимого буфера обмена.
WM_DESTROYCпакет интерфейса пользователя BOARD
Отправляется владельцу буфера обмена при вызове функции EmptyClipboard очищает буфер обмена.
WM_DRAWCпакет интерфейса пользователя BOARD
Отправлено в первое окно в цепочке просмотра буфера обмена при изменении содержимого буфера обмена. Это позволяет окне просмотра буфера обмена отображать новое содержимое буфера обмена.
WM_HSCROLLCпакет интерфейса пользователя BOARD
Отправлено владельцу буфера обмена окном просмотра буфера обмена. Это происходит, когда буфер обмена содержит данные в формате CF_OWNERDISPLAY и событие происходит в горизонтальной полосе прокрутки буфера обмена. Владелец должен прокрутить изображение буфера обмена и обновить значения полосы прокрутки.
WM_PAINTCпакет интерфейса пользователя BOARD
Отправляется владельцу буфера обмена окном просмотра буфера обмена, когда буфер обмена содержит данные в формате CF_OWNERDISPLAY , а клиентская область средства просмотра буфера обмена нуждается в переопределении.
WM_RENDERALLFORMATS
Отправляется владельцу буфера обмена до его уничтожения, если владелец буфера обмена отложил отрисовку одного или нескольких форматов буфера обмена. Чтобы содержимое буфера обмена оставалось доступным для других приложений, владелец буфера обмена должен отрисовывать данные во всех форматах, которые он может создавать, и помещать данные в буфер обмена путем вызова функции SetClipboardData.
WM_RENDERFORMAT
Отправляется владельцу буфера обмена, если она отложена отрисовка определенного формата буфера обмена и если приложение запрашивает данные в этом формате. Владелец буфера обмена должен отобразить данные в указанном формате и поместить его в буфер обмена, вызвав функцию SetClipboardData.
WM_SIZECпакет интерфейса пользователя BOARD
Отправляется владельцу буфера обмена окном просмотра буфера обмена, когда буфер обмена содержит данные в формате CF_OWNERDISPLAY , а клиентская область средства просмотра буфера обмена изменилась.
WM_VSCROLLCпакет интерфейса пользователя BOARD
Отправляется владельцу буфера обмена окном просмотра буфера обмена, когда буфер обмена содержит данные в формате CF_OWNERDISPLAY и событие происходит в вертикальной полосе прокрутки средства просмотра буфера обмена. Владелец должен прокрутить изображение буфера обмена и обновить значения полосы прокрутки.

Структуры

Имя Описание
METAFILEPICT
Определяет формат рисунка метафайла, используемый для обмена данными метафайла через буфер обмена.