lpPixelはCreateDIBSectionが確保する。だから、確保する必要ない。
(つーか、DWORD * width * height * 3って96bitビットマップかよ!)
だから、CopyMemoryはCreateDIBSectionの後で。

lpfh->bfOffBitsは、ファイルの先頭からデータまでのバイト数だから、
&lpfh->bfOffBitsではなく、lpBuf+lpfh->bfOffBitsだね。

sizeof(width*height*3)って、width*height*3のsizeを求めてもしゃーないやろ。
それにビットマップは横1ラインが4バイト境界で有る必要がある。
計算式は('A`)マンドクセ