резервное копирование и восстановление данных буфера обмена с помощью Win32 API - PullRequest
1 голос
/ 26 сентября 2011

Я смотрю из Win32 API, который позволил бы мне сделать резервную копию данных буфера обмена (в памяти / файловой системе), а позже я могу сбросить их с помощью SetClipboardData.

Я видел набор Win32 APIи понимаю, что OpenClipboard, getClipboardData и SetClipboardData сделают эту задачу за меня.Но я не понимаю, какой параметр формата передать в функции GetClipboardData, так как я не знаю о формате и не знаю ни одного API для получения формата данных буфера обмена.

Я хочу поддерживать максимально возможныйформаты, я знаю такие вещи, как задержка рендеринга и некоторые частные типы данных, возможно, не удастся сохранить.Что может быть лучшим выходом, пожалуйста, предложите ...


Я могу сделать резервную копию и восстановить текстовое содержимое.как сделать то же самое для растрового формата.Как в основном сохранить BITMAP в памяти из его дескриптора (выбирается с помощью GetClipboardData)

1 Ответ

1 голос
/ 26 сентября 2011

Найдите форматы в буфере обмена, позвонив по номеру EnumClipboardFormats(). Вызовите GetClipboardData(), чтобы получить HGLOBAL, который содержит данные буфера обмена для определенного формата. Вы можете получить размер памяти, позвонив GlobalSize(). Для чтения памяти, обернутой HGLOBAL, используйте GlobalLock() и GlobalFree().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...