出来ない…どこが問題があるか分かりますか?
というか、GetDIBits自体の使い方か、引数だと思いますが


hBitmapはGIFを読み込んだもの


//BITMAP構造体を取得…ここは問題なし
GetObject(hBitmap,sizeof(BITMAP),&bitmap);

dwSize=bitmap.bmWidth*bitmap.bmHeight*3;//24ビットフルカラー
//エラー・例外処理は省いているが、エラーは出ていない
lpBuf=(LPBYTE)GlobalAlloc(GMEM_FIXED,sizeof(BYTE)*dwSize);
memset(&bmpInfo,0,sizeof(BITMAPINFO));
//BITMAPINFOHEADERを返す関数。幅・高さ・プレーン数・色数を指定…biXPelsPerMeterやbiClrUsedなどは0固定
bmpInfo.bmiHeader=CreateBitmapInfoHeader(bitmap.bmWidth,bitmap.bmHeight,1,24);

hdc=GetDC(NULL);
hdcBuf=CreateCompatibleDC(hdc);
//HBITMAPも作って、BitBltをしてみたが、正しくカラー表示された
//それを下で選択しても同じ結果だった

if(!GetDIBits(hdcBuf,hBitmap,0,bitmap.bmHeight,lpBuf,(LPBITMAPINFO)&bmpInfo,DIB_RGB_COLORS)){
 //画像が真っ黒(初期値のまま)

}
ReleaseDC(NULL,hdc);