已经在Richedit中插入了位图,如果想取出这些位图句柄的话。具体该如何操作?
目前已经取出来包含图片对象的 REOBJECT结构体指针,接下来该如何使用这个结构体获取位图句柄呢?int nCount = m_RichEdit.GetIRichEditOle()->GetObjectCount();
int nSel = -1 ;
for(int i = 0 ; i < nCount ; i++) //遍历位图
{
REOBJECT object; //位图信息存在这里
memset(&object,0,sizeof(REOBJECT));
object.cbStruct = sizeof(REOBJECT);IRichEditOle * pRichOle =m_RichEdit.GetIRichEditOle();
SCODE sc = pRichOle->GetObject(i,&object,REO_GETOBJ_ALL_INTERFACES);
if( sc == S_OK )
{ //这里已经获得了 object ,接下来该如何使用这个结构体中的OLE指针来获取位图句柄呢?}
目前已经取出来包含图片对象的 REOBJECT结构体指针,接下来该如何使用这个结构体获取位图句柄呢?int nCount = m_RichEdit.GetIRichEditOle()->GetObjectCount();
int nSel = -1 ;
for(int i = 0 ; i < nCount ; i++) //遍历位图
{
REOBJECT object; //位图信息存在这里
memset(&object,0,sizeof(REOBJECT));
object.cbStruct = sizeof(REOBJECT);IRichEditOle * pRichOle =m_RichEdit.GetIRichEditOle();
SCODE sc = pRichOle->GetObject(i,&object,REO_GETOBJ_ALL_INTERFACES);
if( sc == S_OK )
{ //这里已经获得了 object ,接下来该如何使用这个结构体中的OLE指针来获取位图句柄呢?}
IDataObject* pDataObj = NULL ;
HRESULT hr = object.poleobj->QueryInterface(IID_IDataObject,(void**)&pDataObj );
if( S_OK == hr )
{
STGMEDIUM stgmed;
FORMATETC fm;
fm.cfFormat = CF_BITMAP; // Clipboard format = CF_BITMAP
fm.ptd = NULL; // Target Device = Screen
fm.dwAspect = DVASPECT_CONTENT; // Level of detail = Full content
fm.lindex = -1; // Index = Not applicaple
fm.tymed = TYMED_GDI; HRESULT hr = pDataObj->GetData( &fm, &stgmed);
HBITMAP h = stgmed.hBitmap ; //句柄已经得到了。
}