//通过com组件加载,可加载png、jpg
BOOL ImageFromIDResource(UINT nID, LPCTSTR sTR,Image * &pImg)
{
HRSRC hRsrc = ::FindResource (NULL,MAKEINTRESOURCE(nID),sTR); // type
if (!hRsrc)
return false;
if (sTR == RT_BITMAP)
{
HINSTANCE hInstance = GetModuleHandle(NULL);
Bitmap BkImage(hInstance, MAKEINTRESOURCEW(nID));
RectF sourceRect(0.0f,0.0f,(REAL)(BkImage.GetWidth()),(REAL)(BkImage.GetHeight()));
pImg = BkImage.Clone(sourceRect, PixelFormatDontCare);
}
else//通过com组件加载
{
// load resource into memory
HGLOBAL hRes=::LoadResource(NULL,hRsrc);
if (!hRes!=NULL)
return FALSE;
LPVOID pTheImage=::LockResource(hRes);
if (pTheImage!=NULL)
{
DWORD dwTheImage=::SizeofResource(NULL,hRsrc);
ULONG uWrite;
CComPtr <IStream> pStream; //com
CreateStreamOnHGlobal