Сколько памяти должно быть выделено для данных DIB, полученных от HBITMAP с использованием функции GetDIBits?
Функция GetDIBits описана в MSDN следующим образом:
int GetDIBits(
__in HDC hdc,
__in HBITMAP hbmp,
__in UINT uStartScan,
__in UINT cScanLines,
__out LPVOID lpvBits,
__inout LPBITMAPINFO lpbi,
__in UINT uUsage
);
Однако буфер для приема данных lpvBits должен быть выделен перед вызовом GetDIBits, поскольку GetDIBits не выделяет это автоматически.
Вопрос в том, сколько памяти должно быть выделено для получения данных DIB? Предполагается, что HBITMAP имеет ширину и высоту как Bmp_Width & Bmp_Height; и растровое изображение является 32-разрядным (RGBA).