给出的HBITMAP hBit地图 如何能把它转换成PNG格式的数据,小弟我要得到PNG格式的图片数据.不是保存成PNG格式图片

给出的HBITMAP hBitmap 怎么能把它转换成PNG格式的数据,我要得到PNG格式的图片数据.不是保存成PNG格式图片.
给出的HBITMAP hBitmap 怎么能把它转换成PNG格式的数据,我要得到PNG格式的图片数据.不是保存成PNG格式图片.

------解决思路----------------------

                Image _image(hBitmap);             // 通过hBitmap构造GDI+图像对象
IStream* piStream = NULL;
if(S_OK == CreateStreamOnHGlobal(NULL, TRUE, &piStream))
{
CLSID   encoderClsid;
GetEncoderClsid(L"image/png", &encoderClsid); // 以png格式输出
_image.Save(piStream, &encoderClsid, NULL);  // 通过IStream接口将图片保存到内存

LARGE_INTEGER zero;
memset(&zero, 0, sizeof(zero));
piStream->Seek(zero, STREAM_SEEK_SET, NULL);

piStream->Read(lpPicture, nSize, &dwReaded); // 将图片内存再读出
piStream->Release();
}