このコードの何が問題なのか理解できません:
HBITMAP bm = 0;
BITMAP Bitmap;
bm = (HBITMAP)LoadImage (0, path, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
int error = GetObject( &Bitmap, sizeof( BITMAP ), &bm );
LoadImage 関数は非 null ポインターを返します。ただし、GetObject はエラーを示す 0 を返します。HBITMAP ポインターからサイズ情報と画像データを取得したい (ポインターはパラメーターとして渡すことができるため、ビットマップ ファイルの読み込み方法を変更することはできません)。