Буфер обмена. Форматы буфера обмена, страница 6

Windows 98) для копирования текста в буфер обмена (опция меню Edit/Copy). Приложение, выполняющее чтение или просмотр буфера обмена, для получения скопированного текста может использовать любой из этих форматов. Функция EnumClipboardFormats извлекает форматы в том же порядке, в каком данные вводились в буфер обмена. Имена форматов должны следовать в порядке приоритетности. В данном случае наиболее приемлемым является специальный формат объекта, называемый "DataObject". Следующим наиболее приемлемым является формат"ObjectDescriptor". Затем следует формат текста с символами форматирования "Rich Text Format". Первый предопределенный формат — CF_TEXT. Он включает текстовые символы, но символы форматирования отсутствуют. Последним и наименее приемлемым является формат CF_OEMTEXT, который включает только набор символов OEM.См.    \local-sources\chapl8\18-03.txt

GetClipboardData                        Windows 98   • Windows 2000

Описание

Функция GetClipboardData извлекает дескриптор содержимого буфера обмена для данного формата. Если владелец буфера обмена воспроизводит указанный формат данных, возвращаемый дескриптор блока памяти буфера обмена будет иметь один из типов, указанных в табл. 18.1. Перед вызовом функции GetClipboardData потребуется открыть буфер обмена с помощью функции OpenClipboard Приложение должно немедленно скопировать данные в приватный блок памяти. В противном случае другое приложение может очистить буфер обмена, что сделает дескриптор недействительным. Содержимое буфера обмена никогда не должно оставаться заблокированным каким-либо приложением. Непосредственно после извлечения содержимого необходимо разблокировать данные и закрыть буфер обмена с использованием функции CloseClipboard.

Синтаксис

HANDLE GetClipboardData ( UINT uFormat)

Параметры

uFormat

UINT: Указывает формат буфера обмена для данных, которые приложение будет считывать. Этот формат должен быть одним из перечисленных в табл. 18.1 либо зарегистрированным.

Возвращаемое значение

HANDLE: Дескриптор общего глобального блока памяти. В случае ошибки возвращается значение NULL. Для возврата кода ошибки следует воспользоваться функцией GetLastError.

Включаемый файл

winuser.h

См. также

OpenClipboard, CloseClipboard, SetClipboardData

Связанные сообщения

WM_ASKFORMATNAME, WM_HSCROLLCLIPBOARD, WM_PAINTCLIPBOARD, WM_SIZECLIPBOARD, WM_VSCROLLCLIPBOARD.

ПРЕДУПРЕЖДЕНИЕ

Приложение, вызывающее функцию GetClipboardData, должно разблокировать блок памяти сразу после его чтения.  Если оставить его заблокированным пока   Windows обрабатывает сообщения,  может произойти сбой системы.

Пример

См. пример, приведенный в описании функции ChangeCIipboardChain.

GetClipboardFormatName                Windows 98   • Windows 2000

Описание

Функция GetClipboardFormatName возвращает имя зарегистрированного формата буфера обмена. Приложение может использовать функцию Get-CiipboardFormatName, чтобы определить, может ли текущий владелец буфера обмена воспроизводить зарегистрированный формат. Таким образом могут обнаруживаться имена только зарегистрированных приложениями форматов. Предопределенные форматы Windows возвращают значение NULL.

Синтаксис

int GetClipboardFormatName ( UINT uFormat, LPTSTR IpFormatName, int nMaxCount )

Параметры

uFormat

UINT: Номер формата. Этот номер возвращается функциями EnumClipboardFormats и RegisterClipboardFormat.

IpFormatNantji

LPTSTR Указатель на буфер памяти, который будет содержать имя формата буфера обмена, завершаемое нулем. Минимальный размер буфера в байтах определяется параметром nMaxCount.

nMaxCount

int: Максимальный размер строки, считываемой в буфер IpFormatName. Если имя формата длиннее, оно усекается.

Возвращаемое значение

int Возвращается количество считанных символов. В случае ошибки возвращается значение 0. Для возврата кода ошибки следует воспользоваться функцией GetLastError.

Включаемыйфайл

winuser.h

См. также

EnumClipboardFormats, RegisterClipboardFormat

Пример

См. пример из функции NameClipboardFormat, приведенный в описании функции EnumClipboardFormats.

GetClipboardOwner                      Windows 98   • Windows 2000

Описание

Функция GetClipboardOwner возвращает дескриптор окна владельца буфера обмена. Владелец буфера обмена устанавливается, когда приложение вызывает функцию EmptyClipboard, что обычно происходит перед установкой данных буфера обмена с использованием функции SetClipboardData.

Синтаксис

HWND GetClipboardOwner ( VOID )

* Параметры

Эта функция не содержит параметров.