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

Функция

Назначение

ChangeClipboardChain

Удаляет программу окна просмотра буфера обмена из цепочки

CloseClipboard

Закрывает буфер обмена для чтения или записи его содержимого

CountClipboardFormats

Возвращает количество форматов буфера обмена, воспроизводимых текущим владельцем

DragAcceptFiles

Регистрирует окно для приема перетаскиваемых файлов

DrragFinish

Высвобождает память,  используемую при передаче приложению имен файлов

DragQueryFile

Извлекает имена перетаскиваемых файлов

DragQueryPoint

Извлекает позицию курсора мыши при операции перетаскивания

EmptyClipboard

Очищает содержимое буфера обмена и удаляет связанные данные

EnumClipboardFormats

Перечисляет все форматы, воспроизведенные текущим владельцем буфера обмена

GetClipboardData

Возвращает дескриптор содержимого буфера обмена для данного формата

GetClipboardFormatName

Определяет имя зарегистрированного формата буфера обмена

GefClipboardOwner

Возвращает дескриптор окна владельца буфера обмена

GetClipboardViewer

Возвращает дескриптор первого окна просмотра цепочки программ просмотра буфера обмена

GetOpenClipboardWindow

Определяет дескриптор окна, которое последним открывало буфер обмена

GetPriorityClipboardFormat

Проверяет доступность требуемых форматов в буфере обмена

IsClipboardFormatAvailable

Проверяет доступность единственного формата в буфере обмена

OpenClipboard

Открывает буфер обмена для чтения или записи его содержимого

RegisterClipboardFormat

Регистрирует в среде  Windows имя нового формата

SetClipboardData

Устанавливает содержимое буфера обмена для данного формата

SetClipboardViewer

Устанавливает новое окно просмотра в начало цепочки

ChangeClipboardChain                   Windows 98   • Windows 2000

Описание

Функция ChangeClipboardChain удаляет окно просмотра буфера обмена из цепочки. Обычно используется при удалении главного окна программы просмотра буфера обмена.

Синтаксис

BOOL ChangeCIipboardChain( HWND hWnd, HWND hWndNext )

Параметры

HWnd

HWND: дескриптор окна, удаляемого из цепочки окон просмотра буфера обмена.

hWndNext

HWND: дескриптор окна, которое следует после hWnd в цепочке окон про-:мотра буфера обмена. Возвращаемое значение функции SetClipboardViewer эбозначает исходное следующее окно просмотра. Для определения факта удаления следующего окна просмотра и соответствующего обновления данных необходимо отслеживать сообщение WM_CHANGECBCHAIN.

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

BOOL: TRUE, если h Wnd удалено из цепочки окон просмотра буфера обмена, и FALSE в случае ошибки. Для возврата кода ошибки следует использовать функцию GetLastError.

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

winuser.h

См. также

SetClipboardViewer, GetLastError

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

WM_DRAWCLIPBOARD, WM_CHANGECBCHAIN

Пример

В следующем примере создается окно просмотра буфера обмена. Приложение отобразит текущее содержимое буфера обмена, если он содержит данные в формате CF_TEXT или CF_BITMAP. Щелчок на пункте меню Test! приведет к очистке буфера обмена. При запуске приложения окно просмотра установится в цепочку, а при выходе из программы оно удалится. Кроме того, обратите внимание на правильность поведения окна просмотра буфера обмена, которое передает следующему окну сообщения WM_DRAWCLIPBOARD и WM_CHANGECBCHAIN.

См.    \local-sources\chapl8\18-01 . txt

CloseClipboard                           Windows 98   • Windows 2000

Описание

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

Синтаксис

BOOL CloseClipboard( VOID )

Параметры

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

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

BOOL: TRUE, если буфер обмена успешно закрыт. FALSE, если буфер обмена не был открыт. Для получения кода ошибки следует воспользоваться функцией GetLastError.

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

winuser.h

См. также

OpenClipboard, EmptyCIipboard, GetLastError

Пример

См. примеры для функции ChangeCIipboardChain.

CountClipboardFormats                  Windows 98   • Windows 2000

Описание

Функция CountClipboardFormats возвращает количество форматов, воспроизводимых текущим владельцем буфера обмена. Для определения имен используемых форматов следует использовать функцию EnumClipboardFormats.

Синтаксис

int CountCHpboardFormats( VOID )

Параметры

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

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

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

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

winuser.h

См. также

EnumClipboardFormats, GetLastError

Пример

См. пример для функции EnumClipboardFormats.

DragAcceptFiles                           Windows 98   • Windows 2000

Описание

Функция DragAcceptFiles регистрирует указанное окно как принимающее перетаскиваемые файлы либо отбрасывающее их. Если такие файлы принимаются, при их перетаскивании в окно программа получит сообщение WM_DROPFILES.

Синтаксис

VOID DragAcceptFiles ( HWND hWnd, BOOL bAccept)

Параметры

hWnd

HWND: Регистрация окна на предмет приема перетаскиваемых файлов.

bAccept

BOOL: Принимает значение TRUE в случае приема перетаскиваемых файлов. Принимает значение FALSE, чтобы прекратить прием перетаскиваемых файлов.

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

shellapi.h

См. также

DragQueryFile, DragQueryPoint, DragFinish

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

WM_DROPFILES

Пример

В следующем примере реализован прием перетаскиваемых файлов. После перетаскивания одного или нескольких файлов в клиентскую область в элемент управления списка добавляются имена файлов с позицией "отпускания" (drop).

См.    \local-sources\chapl8\18-02.txt

DragFinish                                Windows 98   • Windows 2000

Описание

Функция DragFinish высвобождает память, выделенную системой Windows для передачи приложению имен файлов.

Синтаксис

VOID DragFinish ( HDROP hDrop )

Параметры

hDrop

HDROP: Структура, описывающая перетаскиваемые файлы. Этот дескриптор извлекается из параметра wParam сообщения WM_DROPFILES.

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

shellapi.h

См. также

DragQueryFile, DragQueryPoint

Связанные coof

мцения

WM_DROPFILES

Пример

См. пример для функции DragAcceptFiles.

DragQueryFile                            Windows 98   • Windows 2000

Описание

Функция DragQueryFile извлекает имена файлов, задействованных в операции перетаскивания.

Синтаксис

UINT DragQueryFile ( HDROP hDrop, UINT nFile, LPTSTR IpszFile, UINT cch)

Параметры

hDrop

HDROP: Идентифицирует структуру, содержащую имена перетаскиваемых файлов. Этот дескриптор извлекается из буфера обмена либо из сообщения WM_DROPFILES.

nfile

UINT: Индекс файла для запроса. Если устанавливается значение OxFFFFFFFF, возвращается количество перетаскиваемых файлов. Если значение находится в диапазоне между 0 и общим количеством перетаскиваемых файлов, соответствующее ему имя файла копируется в буфер, на который указывает параметр IpszFile.

IpszFile

LPTSTR Указатель на буфер, который принимает имя перетаскиваемого файла. Принимает значения NULL для возврата количества символов, требуемых для хранения имени файла.

cch

UINT: Размер (в символах) буфера, на который указывает параметр IpszFile.

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

UINT: Когда функция копирует имя файла в буфер, значение возврата представляет собой количество скопированных символов, исключая завершающий нулевой символ. Если индекс имеет значение OxFFFFFFFF, значение возврата представляет собой количество перетаскиваемых файлов. Когда параметр IpszFile принимает значение NULL, значение возврата представляет собой размер в символах буфера, исключая завершающий нулевой символ.

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

shellapi.h

См. также

DragQueryPoint

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

WM_DROPFILES

Пример

См. пример для функции DragAcceptFiles.

DragQueryPoint                          Windows 98   • Windows 2000

Описание

Функция DragQueryPoint извлекает позицию курсора мыши в момент "отпускания" файла. Координаты берутся относительно окна, которое принимает сообщение WM_DROPFILES.

Синтаксис

BOOL DragQueryFile ( HDROP hDrop, LPPOINT Ippt )

Параметры

hDrop

HDROP: Идентифицирует структуру, содержащую имена перетаскиваемых файлов. Этот дескриптор извлекается из буфера обмена либо из сообщения WM_DROPFILES.

Ippt

LPPOINT: Указатель на структуру POINT, в которую функция вводит координаты курсора мыши в момент "отпускания" файла.

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

BOOL: Если перетаскивание осуществляется в клиентскую область окна, возвращается значение TRUE. В противном случае возвращается FALSE.

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

shellapi.h

См. также

DragQueryFile

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

WM_DROPFILES

Пример

См. пример для функции DntgAcceptFiles.

EmptyClipboard                           Windows 98   • Windows 2000

Описание

Функция EmptyClipboard удаляет содержимое буфера обмена и сопутствующие данные. Она удаляет данные, хранимые в каждом формате буфера обмена. Это гарантирует, что никакие данные случайно не останутся в буфере обмена при смене владельца. При вызове этой функции также устанавливается владелец буфера обмена. Для использования данной функции буфер обмена должен быть открыт. Прежнему владельцу буфера обмена отправляется сообщение WM_DESTROYCLIPBOARD.

Синтаксис

BOOL EmptyClipboard( VOID )

Параметры

Функция не имеет параметров.

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

BOOL: TRUE, если буфер обмена очищен, и FALSE в случае ошибки. Для возврата кода ошибки следует воспользоваться функцией GetLastError.

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

winuser.h

См. также

OpenClipboard, CloseClipboard, SetClipboardData, GetLastError

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

WM_DRAWCLIPBOARD, WM_CHANGECBCHAIN, WM_DESTROYCLIPBOARD

Пример

См. пример для функции ChangeClipboardChain.

EnumClipboardFormats                   Windows 98   • Windows 2000

Описание

Функция EnumClipboardFormats перечисляет все форматы буфера обмена, воспроизводимые текущим владельцем буфера обмена. Она используется приложениями, которые поддерживают более одного способа чтения из буфера обмена. Приложение может использовать функцию EnumClipboardFormats для выбора наилучшего формата для чтения содержимого буфера обмена. Функция EnumClipboardFormats вызывается повторно для определения всех форматов. При первом вызове функции передается значение 0 и она возвращает первый из доступных форматов. При втором и последующем вызовах последний возвращенный формат используется в качестве параметра для следующего вызова. Данная последовательность повторяется до тех пор, пока функция не вернет значение 0. Это значение указывет, что выполнено считывание последнего формата. Функция EnumClipboardFormats возвращает форматы буфера обмена в том же порядке, в каком следовали вызовы функции SetClipboardData для помещения данных в буфер обмена. Приложение всегда должно помещать данные в буфер обмена в наиболее приемлемом формате (с минимальными потерями данных) и переходить к следующему наилучшему формату до тех пор, пока не останется форматов, которые могут быть воспроизведены.

Синтаксис

UINT EnumClipboardFormats ( UINT uFormat )

Параметры

uFormat

UINT: Номер формата, считанного последним. Значение 0 устанавливается для возврата первого из доступных форматов. Для возврата следующего доступного формата можно присвоить любое допустимое значение.

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

UINT: Номер следующего воспроизводимого формата буфера обмена. Возвращает 0, если считан последний формат. Кроме того, возвращает 0 в случае ошибки. Для возврата кода ошибки может использоваться функция GetLastError.

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

winuser.h

См. также

CountCIipboardFormats, GetClipboardFormatName, SetClipboardData, GetLastError

Пример

В следующем примере перечисляются все доступные форматы буфера обмена, когда пользователь выполняет щелчок на опции меню Test!. Имена зарегистрированных форматов буфера обмена (установленных приложениями, которые вызывают функцию RegisterClipboardFormat) могут быть извлечены с помощью функции GetClipboardFormatName. Имена предопределенных форматов нельзя вернуть через функцию GetClipboardFormatName. Листинг содержит функцию NameCIipFormat, которая возвращает имена предопределенных форматов. На рис. 18.2 показан список доступных форматов буфера обмена после использования приложения WordPad (входящего в пакет Windows 2000 и