自定义的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;
...全文
268 5 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
liyingnan0319 2010-11-02
  • 打赏
  • 举报
回复
怎么解决的啊??求助
草帽 2010-07-20
  • 打赏
  • 举报
回复
如何解决的?
starsite 2010-02-09
  • 打赏
  • 举报
回复
感谢各位,问题已经解决。
oushengfen 2010-02-05
  • 打赏
  • 举报
回复
richedit98有源码?在那里能发一份?
iseekcode 2010-02-04
  • 打赏
  • 举报
回复
可以参考richedit98的源码
相关推荐
发帖
Windows SDK/API

1177

社区成员

Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
帖子事件
创建了帖子
2010-02-04 01:45
社区公告
暂无公告