Благодарю Willi за ответ.
Я нашел решение, которое привожу здесь. Возможно кому-нибудь понадобится.
//main.c
#include <windows.h>
#include "dibapi.h"
int __stdcall ClipboardToFile(HWND hWnd, LPCTSTR FileName){
int ReturnValue = 0;
unsigned int format = 0;
HANDLE hMem;
if (OpenClipboard(NULL)){
format = EnumClipboardFormats(format);
for (;format != CF_DIB && format != 0; format = EnumClipboardFormats(format));
if (format == CF_DIB){
hMem = GetClipboardData(CF_DIB);
if (hMem){
ReturnValue = SaveDIB((HDIB)hMem, (LPSTR)FileName);
};
}else{
MessageBox(hWnd,"Неверный формат", "Вставка из буфера", MB_OK);
ReturnValue = -10;
};
} else {
ReturnValue = -20;
};
CloseClipboard();
return ReturnValue;
}
Функция SaveDIB определяется в файле file.c
Листинги файлов file.c, dibutil.c, dibapi.h, dibutil.h найдены мной в MSDN от 6-го плюса.
Лучше всего искать по слову "dibapi.h"
Подключаете к проекту и вперед.