Другие функции для работы с Clipboard
В заключение этой главы кратко рассмотрим еще несколько функций, предназначенных для работы с Clipboard.
Функция IsClipboardFormatAvailable позволяет проверить доступность формата данных, указанного в ее единственном параметре:
BOOL WINAPI IsClipboardFormatAvailable(UINT uFormat);
Если указанный формат доступен, функция возвращает значение TRUE, в противном случае - FALSE.
Для того чтобы получить идентификаторы всех доступных форматов данных Clipboard, воспользуйтесь функцией EnumClipboardFormats:
UINT WINAPI EnumClipboardFormats(UINT uFormat);
Эту функцию следует вызывать в цикле, передав ей в качестве параметра в первый раз нулевое значение (в этом случае она вернет идентификатор первого доступного формата данных). Затем ей нужно каждый раз передавать значение, полученное от функции в результате предыдущего вызова и так до тех пор, пока функция не вернет нулевое значение. Заметим, что перед использованием функции EnumClipboardFormats ваше приложение должно открыть Clipboard функцией OpenClipboard.
С помощью функции CountClipboardFormats можно определить количество различных форматов данных Clipboard, доступных на момент вызова:
int WINAPI CountClipboardFormats(void);
Функция GetOpenClipboardWindow возвращает идентификатор окна, открывшего на момент вызова Clipboard, или NULL при ошибке:
HWND WINAPI GetOpenClipboardWindow(void);
Функция GetClipboardOwner возвращает идентификатор окна, которое на момент вызова владеет Clipboard:
HWND WINAPI GetClipboardOwner(void);
Если вы знаете идентификатор формата данных Clipboard, то с помощью функции GetClipboardFormatName сможете получить текстовую строку имени этого формата:
int WINAPI GetClipboardFormatName( UINT uFormat, LPSTR lpszFormatName, int cbMax);
При вызове функции вы должны передать код формата через первый параметр, а адрес буфера, в который будет записана строка - через второй. Через третий параметр необходимо передать функции размер буфера.