ところで気になるのですが、メモリ内に仮想的にDIBを造る方法をご存知ですか?

HDC hDC = CreateCompatibleDC( NULL );

DWORD* pBitmapBits;
BITMAPINFO bmi;
ZeroMemory( &bmi.bmiHeader, sizeof( BITMAPINFOHEADER ) );
bmi.bmiHeader.biSize = sizeof( BITMAPINFOHEADER );
bmi.bmiHeader.biWidth = ( int )tW;
bmi.bmiHeader.biHeight = ( int )-tH;//ここを-すると左上頂点のDIBができるマジお勧め
bmi.bmiHeader.biPlanes = 1;
bmi.bmiHeader.biCompression = BI_RGB;
bmi.bmiHeader.biBitCount = 16;//1 pixcel あたりのBit数
// Create a bitmap for the font
hbmBitmap = CreateDIBSection( hDC, &bmi, DIB_RGB_COLORS,( void** )&pBitmapBits, NULL, 0 );


これでメモリの中にDIBが作成されます。
先ほどからGetPixcel 関数の話が出ているので書き込みました。

画像を扱う場合は一気に転送がセオリーだと思います。
もし既出であればスレ汚しすみません