縮小版(サムネイル)

縮小版のテスト実装を行った。
適当に記述したら、とりあえず動いた。


ただ、Thumbs.dbの挙動が良くわからない。
フラグでIEIFLAG_CACHEを設定しても、Thumbs.dbを生成しない。
いろいろ試してみると、エクスプローラを含む多くのファイラでThumbs.dbを
作らないのに、あるファイラだけがThumbs.dbを生成する。
挙動をコントロールできるはずだが...。
引き続き調査が必要。

// IExtractImage取得
IExtractImage* ii;
HRESULT hr;
UINT reserved;
hr = sf->GetUIObjectOf(NULL, 1, il, IID_IExtractImage, &reserved, (LPVOID*)&ii);

// bmp取得
wchar_t path[MAX_PATH] = L"";
SIZE sz = {96, 96};
HBITMAP bmp = NULL;
DWORD flags = IEIFLAG_SCREEN;
hr = ii->GetLocation(path, MAX_PATH, 0, &sz, 24, &flags);
if (SUCCEEDED(hr)) hr = ii->Extract(&bmp);
ii->Release();

// 描画
HDC bdc = ::CreateCompatibleDC(dc);
SelectObject(bdc, bmp);
BitBlt(dc, 0, 0, 96, 96, bdc, 0, 0, SRCCOPY);
DeleteDC(bdc);
DeleteObject(bmp);