Реферат: Буфер обмена
- отображение владельцем;
- написание окна просмотра буфера обмена.
4. Окна просмотра буфера обмена
Окно просмотра буфера обмена представляет собой программу, предназначенную для просмотра содержимого буфера обмена. Обычно окна просмотра поддерживают множество форматов, но не могут правильно интерпретировать приватные зарегистрированные форматы. В этой связи может потребоваться создать окно просмотра буфера обмена самостоятельно.
Следует учитывать, что окно просмотра буфера обмена не владеет данными, которыми управляет. Требования к окну просмотра:
1. Окно просмотра ни в коем случае не должно выполнять запись в содержимое буфера обмена.
2. Окно просмотра никогда не должно оставлять какой-либо элемент содержимого буфера обмена заблокированным.
3. Поскольку в любой момент времени могут выполняться несколько окон просмотра и сообщения передаются между ними посредством связанного списка окон просмотра, создаваемая программа должна отвечать следующим соглашениям:
- Сохранять значение возврата функции SetClipboardViewer(), которое указывает на следующее окно просмотра буфера обмена в цепочке. Windows помещает новые окно просмотра перед уже установленными.
- Передавать сообщения WM_DRAWCLIPBOARD следующему окну просмотра в цепочке. В противном случае остальные окна просмотра не будут обновляться.
- Передавать сообщения WM_CHANGECBCHAINследующему окну просмотра в цепочке. В противном случае цепочка окон просмотра будет прервана.
- Отслеживать сообщения WM_CHANGECBCHAINдля удаления следующего окна цепочки. Параметр IParamсодержит новый дескриптор следующего окна в случае удаления следующего, окна просмотра.
- Для удаления окна просмотра из цепочки следует вызвать функцию ChangeClipboardChain() с использованием сохраненного значения следующего окна.