自定义的Ole对象实例插入RichEdit后,无法拖动、粘贴、复制,是怎么回事?

starsite 2010-02-04 01:45:46
自定义的Ole对象实例插入RichEdit后,无法拖动、粘贴、复制,是怎么回事?

我的Ole对象实现了以下接口:
TMyOleObject = class(TInterfacedObject, IOleObject, IViewObject2, IViewObject, IDataObject)
...
end;

插入RichEdit的代码是:
function InsertMyObject(hRichEdit: THandle): Boolean;
var
ReOle: IRichEditOle;
MyOle: TMyOleObject;
OleSite: IOleClientSite;
OleObject: IOleObject;
ReObj: TReObject;
begin
ReOle := GetRichEditOle(hRichEdit);
Assert(ReOle <> nil, 'RichEditOle is null!');
MyOle := TMyOleObject.Create();
try
ReOle.GetClientSite(OleSite);

MyOle.GetOleObject(OleSite, OleObject);
OleCheck(OleSetContainedObject(OleObject, True));

FillChar(ReObj, Sizeof(ReObj), 0);
ReObj.cbStruct := Sizeof(ReObj);
OleCheck(OleObject.GetUserClassID(ReObj.clsid));
ReObj.cp := REO_CP_SELECTION;
ReObj.dvaspect := DVASPECT_CONTENT;
ReObj.poleobj := OleObject;
ReObj.polesite := OleSite;
ReObj.dwFlags := REO_READWRITEMASK and not(REO_RESIZABLE);

ReOle.InsertObject(ReObj);
Result := True;
finally
//,,,
end;
end;
...全文
280 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liyingnan0319 2010-11-02
  • 打赏
  • 举报
回复
怎么解决的啊??求助
草帽 2010-07-20
  • 打赏
  • 举报
回复
如何解决的?
starsite 2010-02-09
  • 打赏
  • 举报
回复
感谢各位,问题已经解决。
oushengfen 2010-02-05
  • 打赏
  • 举报
回复
richedit98有源码?在那里能发一份?
iseekcode 2010-02-04
  • 打赏
  • 举报
回复
可以参考richedit98的源码

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧