リソース(ビットマップ)からピクチャオブジェクト(IPicture)を作成

(2001.04.28)
#include <comdef.h>
 
class CPictDesc : public PICTDESC
{
public:
    CPictDesc()
    {
        ::ZeroMemory(this, sizeof(this));
        this->cbSizeofstruct = sizeof(this);
    }
};
 
// szNameにIDを渡す場合は、MAKEINTRESOURCE()を使用する
HRESULT OleLoadPictureFromResource(HINSTANCE hInst, LPCTSTR szName, IPicturePtr& spPicture)
{
    HRESULT hr = S_OK;
   
    try
    {
        HBITMAP hBitmap = ::LoadBitmap(hInst, szName);
        if (hBitmap == NULL)
        {
            return E_FAIL;
        }
       
        CPictDesc pd;
        pd.picType = PICTYPE_BITMAP;
        pd.bmp.hbitmap = hBitmap;
        pd.bmp.hpal = NULL;
       
        hr = ::OleCreatePictureIndirect(&pd, IID_IPicture, FALSE, (void**)&spPicture);
        if (FAILED(hr))
        {
            return hr;
        }
    }
    catch (...)
    {
        return E_FAIL;
    }
   
    return hr;
}
一覧に戻る
© 2003 WAC.com All Right Reserved.