Делаю так:
1) с помощью CreateDC, CreateCompatibleDC, CreateCompatibleBitmap, SelectObject, BitBlt, OpenClipboard, EmptyClipboard, SetClipboardData - засовываю скриншот в буфер обмена
2) с помощью GetClipboardData, CopyImage, OleCreatePictureIndirect - создаю объект IPicture
3) с помощью SavePicture - сохраняю объект IPicture в файл (и заканчиваю - CloseClipboard, DeleteDC, ReleaseDC)
Как следствие - получаю файл формата bmp (даже если расширением указываю jpg), естесственно - большого размера. А мне бы - jpg (размером раз в 30 меньше).
Параметры для OleCreatePictureIndirect использую такие:
- Код: Выделить всё
With uPicInfo
.Size = Len(uPicInfo)
.Type = 1 ' (PICTYPE_BITMAP).
.hPic = hCopy
.hPal = 0
End With
With IID_IDispatch
.Data1 = &H20400
.Data4(0) = &HC0
.Data4(7) = &H46
End With
Просьба - подскажите пжст, есть ли (и если есть - какой) вариант сохранения скриншота через буфер обмена в файл формата jpg, а не bmp?