如何得到插入到richedit中的控件?
msdn上的那个 polygon 的例子
一个atl activex控件
我把它插入到 richedit中去了
IPolyCtl* lpPolyCtl = NULL; //控件
......
lpRichEditOle-> GetClientSite(&lpOleClientSite);
ZeroMemory(&reobject, sizeof(REOBJECT));//初始化一个对象
reobject.cbStruct = sizeof(REOBJECT);
reobject.clsid = clsid;
......
hr = lpRichEditOle-> InsertObject( &reobject );
现在我想再得到他的 IPolyCtl 调用他的事件
请问我该怎么做?
IRichEditOle::GetObject 这个函数有用吗 总是调用不正确
[解决办法]
IPolyCtl 你这个控件有没有实现IOleObject , IDataObject , IPersistStream这三个接口,如果没有你是插入不了的
[解决办法]
IRichEditOle::GetObject()方法是可以用的。
如下:
hr = pIRichEditOle-> GetObject( 0, &reoobject, REO_GETOBJ_POLEOBJ );
这样调用成功后,reoobject结构中的poleobj就是插入的对象的IOleObject接口,调用完成后别忘了用Release释放。