自力展開

 前回の続き
 Tarのパッケージングを展開して、無事にBitmapのバイナリをメモリ上に呼び出すことが出来た。次は、DirectDrawSurfaceへイメージを転送するのだが、ここでもまた問題が。
 
 多くのDirectX入門書や各所サイトでは、BitmapイメージはLoadImage関数を用いて、Bitmap型のハンドルを受け取るように書いてあるところが多いが、既にメモリ上に展開されているため、Bitmapをハンドルとして受け取る方法が無く……。
 
 ここで、選択肢は二つ。

  • ポインタをハンドルに強制変換
  • ビットマップの自力展開

 
 ……オ㍗ル。_| ̄|○
 
 ポインタとハンドルの関係は、ハンドルがポインタのポインタになっているということぐらいしか分からないので、ビットマップの自力展開をすることに。
 
 初めは面倒だと思っていたのですが、先頭からビットマップの構造体が2つ分あるので引っ張り出したら、後はビットマップイメージ本体なので、デバイスコンテキスト上にビットマップを展開して、BitBltでサーフェスに転送すればOK。
 
 無事にサーフェスに転送することが出来ました。
 
 まだ、画面表示できてないから、中に何が入っているかは分からないけどね……。_| ̄|○