Задача - удалённый мониторинг рабочего стола сотрудника. Для передачи через сокет нужен строковый буфер с jpeg-снимком всего того, что происходит на рабочем столе пользователя (можно без курсора мыши). Есть функция конвертации в jpeg следующего вида:
bool compress_image_to_jpeg_file_in_memory(void *TargetBuffer,
int &TargetBufSize,
int img_width,
int img_height,
int number_channels,
const unsigned char *SourceData);
В SourceData можно передать строковый буфер с RGB палитрой, даже без BMP шапки. Вот этот буфер RGB мне и нужно получить средствами GDI+, чтобы потом сделать из него jpeg и отправить по запросу. Функции GDI работают со всякими структурами HBITMAP, BITMAP... но в них нет строкового буфера полученных данных, как например в структуре LPVIDEOHDR (из vfw), и как достать оттуда буфер с палитрой RGB я не знаю, так как с GDI не работал.
Подскажите пожалуйста как средствами GDI+ получить буфер с палитрой RGB (unsigned char * или string)?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей