Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы

       

Чтение данных из Clipboard


Рассмотрим теперь процедуру чтения данных из Clipboard. Приложение должно сделать следующее.

Открыть Clipboard функцией OpenClipboard

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

Зафиксировать блок памяти, идентификатор которого получен от функции GetClipboardData, функцией GlobalLock

Переписать данные из зафиксированного буфера данных Clipboard в буфер, заказанный специально для этого приложением

Расфиксировать блок памяти, идентификатор которого получен от функции GetClipboardData, функцией GlobalUnlock

Закрыть Clipboard функцией CloseClipboard

Чтение содержимого Clipboard, как и запись в Clipboard, нужно выполнять в обработчике одного сообщения, руководствуясь рекомендациями, приведенными в предыдущем разделе.

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



Содержание раздела