代码为例,实现了从资源中加载PNG文件,初始化为Gdiplus::Image对象:
HMODULE hInstance = ::GetModuleHandle(NULL); // 指定NULL,获取当前exe文件的句柄
HRSRC hRsrc = ::FindResource(hInstance, MAKEINTRESOURCE(IDR_PNG1), _T("PNG"));
ATLASSERT(hRsrc != NULL);
DWORD dwSize = ::SizeofResource(hInstance, hRsrc);
LPBYTE lpRsrc = (LPBYTE)::LoadResource(hInstance, hRsrc);
ATLASSERT(lpRsrc != NULL);
HGLOBAL hMem = ::GlobalAlloc(GMEM_FIXED, dwSize);
LPBYTE pMem = (LPBYTE)::GlobalLock(hMem);
memcpy(pMem, lpRsrc, dwSize);
IStream* pStream = NULL;
::CreateStreamOnHGlobal( hMem, FALSE, &pStream);
m_pBkImage = Gdiplus::Image::FromStream(pStream);
::GlobalUnlock(hMem);
pStream->Release();
::FreeResource(lpRsrc);