我用.net写了一个com,有个方法是加载一幅图片(bmp)然后返回.net的Bitmap类型。
现在要在vc6中调用这个com,调用该方法,然后将图片显示到Picture控件中。
这是我的代码:
DISPID dispid;
VARIANT vRet;
DISPPARAMS dispparamsNoArgs = {NULL, NULL, 0, 0};
LPOLESTR lpStr[] = {L"GetHBitmap"};
_System_Drawing_BitmapPtr bitmap = com->GetBitmap();
bitmap->GetIDsOfNames(IID_NULL,lpStr,1,LOCALE_USER_DEFAULT,&dispid);
bitmap->Invoke(dispid,IID_NULL,LOCALE_USER_DEFAULT,DISPATCH_METHOD,&dispparamsNoArgs,&vRet,NULL,NULL);
//获得图片的数据流
CBitmap cm;
int rtn = cm.CreateBitmap(pWidth,pHeight,0,1,(void*)vRet.iVal); // 根据数据流创建一幅图片
if(rtn!=0)
{
   m_preview.SetBitmap(HBITMAP(cm));  // 显示该图片
}
现在显示的就是一个黑块。怎么解决啊?是不是CreateBitmap的参数不对?