In my filters editor I use GetDIBits to fill the bitmapinfoheader structure.
GetDIBits(_hDC,_hImgBitmap,0,_lpImageInfos->BitmapInfo.bmiHeader.biHeight,NULL,(LPBITMAPINFO) &_lpImageInfos->BitmapInfo,DIB_RGB_COLORS)
If all the six first parameters are well initialized, the next time I call GetDIBits, with the address of the buffer, rather than NULL, all the image is read.
The idea is good but in that case GetDIBits fills a BITMAPINFOHEADERV5!
Use this function with care. Make something like this:
struct
{
BITMAPINFO Bmi ;
char szTmp[sizeof(BITMAPINFOHEADERV5) - sizeof(BITMAPINFOHEADER)] ;
}
After the BITMAPINFOHEADER there is the color palette but it is not enougth
When I use the editor, BITMAPINFOHEADERV5 does not display its member, like other do, which *.tag file is it needed for that is OK?