Bitmap * CResourceLoad::ResourcelLoad_GIF(UINT nID)
{
CheckThreadException(nID);
CResourceHandle cHandle(m_hDllLoad);   Bitmap * pBitmap = NULL; HRSRC hResource = ::FindResource(m_hDllLoad, MAKEINTRESOURCE(nID), _T("vvv"));   //   type 
if (!hResource)
{
CLIENT_ERROR("ResourceLoad_PNG_EX 2.2 FindResource ID = %d ,failed = %d",nID,GetLastError());
goto Exit;
} DWORD imageSize = ::SizeofResource(m_hDllLoad, hResource);
if (!imageSize)
{
CLIENT_ERROR("ResourceLoad_PNG_EX 2.3 SizeofResource ID = %d ,failed = %d",nID,GetLastError());
goto Exit;
} const void* pResourceData = ::LockResource(::LoadResource(m_hDllLoad, hResource));
if (!pResourceData)
{
CLIENT_ERROR("ResourceLoad_PNG_EX 2.4 LockResource ID = %d ,failed = %d",nID,GetLastError());
goto Exit;
} void * hBuffer  = ::GlobalAlloc(GMEM_MOVEABLE, imageSize); if (hBuffer)
{
void* pBuffer = ::GlobalLock(hBuffer); if (pBuffer)
{
CopyMemory(pBuffer, pResourceData, imageSize); IStream* pStream = NULL;
if (::CreateStreamOnHGlobal(hBuffer, FALSE, &pStream) == S_OK)
{
pBitmap = Gdiplus::Bitmap::FromStream(pStream);
pStream->Release();
if (pBitmap)

if (pBitmap->GetLastStatus() != Gdiplus::Ok)
{
delete pBitmap;
pBitmap = NULL;
goto Exit;
}
}
}
::GlobalUnlock(hBuffer);
} ::GlobalFree(hBuffer);
hBuffer = NULL;
}Exit:
return pBitmap;
}DLL中获取GIF资源返回的Bitmap(GIF图片)只能显示第一帧(绘图代码如下:),请问上面这个代码处理正确吗?这个返回的Bitmap,调用pbitmap->GetFrameCount(pGuids); //获取GIF帧数有5帧,这个又是对的GUID Guid = FrameDimensionTime; //定义一个GUID 
DWORD i=graph.DrawImage(pbitmap, 0,0, pbitmap->GetWidth(), pbitmap->GetHeight());
pbitmap->SelectActiveFrame(&Guid, m_nIndex++); //设置下一帧
if(m_nIndex == 5)  //判断当前帧是否为尾帧
m_nIndex = 0;大侠赐教啊??