Вам необходимо создать объект, который реализует IDataObject
, а затем поместить его в буфер обмена, используя OleSetClipboard
.
Когда вы помещаете данные в буфер обмена, у вас есть возможность указать несколько форматов. Это делается для того, чтобы приложение, читающее буфер обмена, могло перечислять форматы и решать, какой из них использовать.
Существует довольно много " стандартных " форматов буфера обмена (с известными постоянными значениями), например ::
CF_BITMAP
: дескриптор растрового изображения (HBITMAP).
CF_DIB
: объект памяти, содержащий структуру BITMAPINFO , за которой следуют биты битовой карты.
CF_DIBV5
: объект памяти, содержащий структуру BITMAPV5HEADER , за которой следуют информация о цветовом пространстве растрового изображения и биты растрового изображения.
Вы также можете зарегистрировать пользовательские форматы, используя RegisterClipboardFormat
. Office предоставляет изображения в виде нескольких различных форматов, которые они зарегистрировали, например ::
.
DWORD CF_PNG = RegisterClipboardFormat("PNG");
DWORD CF_JFIF = RegisterClipboardFormat("JFIF");
DWORD CF_GIF = RegisterClipboardFormat("GIF");
DWORD CF_ENHMETAFILE = RegisterClipboardFormat("CF_ENHMETAFILE");
DWORD CF_METAFILEPICT = RegisterClipboardFormat("CF_METAFILEPICT ");