Функция OleFlushClipboard (ole2.h)
Выполняет последовательность завершения работы буфера обмена. Он также освобождает указатель IDataObject , который был помещен в буфер обмена функцией OleSetClipboard .
Синтаксис
HRESULT OleFlushClipboard();
Возвращаемое значение
Эта функция возвращает S_OK об успешном выполнении. Ниже перечислены другие возможные значения.
Код возврата | Описание |
---|---|
|
Сбой функции Windows OpenClipboard, используемой в OleFlushClipboard . |
|
Сбой функции Windows CloseClipboard, используемой в OleFlushClipboard . |
Комментарии
OleFlushClipboard отображает данные из объекта данных в буфер обмена и освобождает указатель IDataObject на объект данных. Пока приложение, помещающее объект данных в буфер обмена, работает, буфер обмена содержит только указатель на объект данных, тем самым экономя память. Если вы пишете приложение, которое выступает в качестве источника операции с буфером обмена, можно вызвать функцию OleFlushClipboard при закрытии приложения, например при выходе пользователя из приложения. Вызов OleFlushClipboard позволяет вставлять и вставлять привязки объектов OLE после завершения работы приложения.
Перед вызовом OleFlushClipboard можно легко определить, остаются ли данные в буфере обмена, с помощью вызова функции OleIsCurrentClipboard .
OleFlushClipboard оставляет все форматы, предлагаемые объектом передачи данных, включая форматы совместимости OLE 1, в буфере обмена, чтобы они были доступны после завершения работы приложения. Помимо форматов совместимости OLE 1, к ним относятся все форматы, предлагаемые на глобальном носителе дескриптора (все, кроме TYMED_FILE) и отформатированные с помощью целевого устройства NULL . Например, если приложение источника данных предлагает определенный формат буфера обмена (например, cfFOO) для объекта IStorage и вызывает функцию OleFlushClipboard , объект хранилища копируется в память, а дескриптор hglobal памяти помещается в буфер обмена.
Чтобы получить сведения из буфера обмена, можно вызвать функцию OleGetClipboard из другого приложения, которое создает объект данных по умолчанию, а hglobal из буфера обмена снова становится объектом хранилища. Кроме того, перечислитель FORMATETC и метод IDataObject::QueryGetData правильно указывают на то, что исходный формат буфера обмена (cfFOO) снова доступен на TYMED_ISTORAGE.
Чтобы очистить буфер обмена, вызовите функцию OleSetClipboard , указав значение NULL для ее параметра. Приложение должно вызывать его при закрытии, если нет необходимости оставлять данные в буфере обмена после завершения работы или если данные будут помещены в буфер обмена с помощью стандартных функций буфера обмена Windows.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | ole2.h |
Библиотека | Ole32.lib |
DLL | Ole32.dll |
Набор API | ext-ms-win-com-ole32-l1-1-5 (представлен в Windows 10 версии 10.0.15063) |