GetCurrentImageでフレームをキャプチャする

IBasicVideoを使って静止画を取得する」にしたがって動画から静止画を取得しようとしたのだが、出力されたビットマップの左下に10ピクセル(40バイト分)のゴミが入る。
バイナリエディタで先頭55バイト目から40バイト分削ってみると正常な表示になるので、BITMAPINFOHEADER構造体関連の操作にどこか問題があるようだ。
DIB部分だけをファイルに出力してみてもすでに先頭40バイトに何か入っているようなので

//WriteFile(fh, &bmpinfo, sizeof(bmpinfo), &nWritten, NULL);

としてコメントアウトしたところ、ビットマップが正しく出力されるプログラムになった。つまりGetCurrentImageで得られるイメージデータにはすでにBITMAPINFOHEADER構造体相当のデータが埋め込まれていた。
ちゃんと調べるとMSDNにも

バッファには BITMAPINFOHEADER 構造体、Win32 BITMAPINFO 構造体に定義されているパレット エントリおよびビット マスクを含む DIB イメージ全体が書き込まれる。
イメージのフォーマットはソース フィルタが提供するタイプに応じて異なり、事前に指定はできない。

と書いてあった。
あとVMRが使えるWindowsXPではキャプチャするのにポーズする必要がないのか……。