这些天我一直被这个问题所折磨,大脑都快缺氧了。我的思路很简单,通过实现IDocHostUIHandler接口中的FilterDataObject的方法:
HRESULT FilterDataObject(
IDataObject *pDO, IDataObject **ppDORet
);MSDN中的解释是:This method enables the host to block certain clipboard formats or support additional clipboard formats. 这也似乎是唯一的方法。还有别的方法可以捕获paste事件吗?通过IDataObject的getData方法,我已经获取了剪贴板中的数据并做了修改,但是我不知道如何通过ppDoRet参数传递出去。我尝试利用直接修改剪贴板的方式,可以实现我的思路,但是剪贴板的内容改变了就无法实现用户的多次粘贴或被其它程序使用。MFC中可以利用COleDataObject和COleDataSource两个类来实现,但在Delphi中没有实现IDataObject的类可以利用,而且,我对于这种**ppDORet的指针用法一头雾水,不知道如何转换到Delphi的格式。多谢大家了,欢迎大家各抒己见。
HRESULT FilterDataObject(
IDataObject *pDO, IDataObject **ppDORet
);MSDN中的解释是:This method enables the host to block certain clipboard formats or support additional clipboard formats. 这也似乎是唯一的方法。还有别的方法可以捕获paste事件吗?通过IDataObject的getData方法,我已经获取了剪贴板中的数据并做了修改,但是我不知道如何通过ppDoRet参数传递出去。我尝试利用直接修改剪贴板的方式,可以实现我的思路,但是剪贴板的内容改变了就无法实现用户的多次粘贴或被其它程序使用。MFC中可以利用COleDataObject和COleDataSource两个类来实现,但在Delphi中没有实现IDataObject的类可以利用,而且,我对于这种**ppDORet的指针用法一头雾水,不知道如何转换到Delphi的格式。多谢大家了,欢迎大家各抒己见。
解决方案 »
- 怎样才能得到csdn开发高手
- 数据库程序有时能执行有时不能,请问为何,如何解决?
- 懂数据库来的接分!!!
- 怎样取得当前的月份?比如11月就取“11月”。
- Nicrosoft《Delphi高手突破》网上已经有卖了,另外开通读者论坛,欢迎交流和反馈
- 小写转大写的有关问题
- Clientdataset 读取SQL图片字段后在image 显示不完整
- 哪有RXRichEdit或RichEdit98 For Delphi6下载
- 我在帮别人做一个学生学籍管理系统,有合适的图片吗?给我一点呀。
- 老是在程序的启动的时候出现这个API错误大家帮帮我吧要吐血了~
- 各位,下面的COM接口函数如何转换成Delphi函数?
- 怎么实现不同接口中的相同的方法?
);
对应的Delphi代码为:
function FilterDataObject(pDO:IDataObject;var ppDORet:IDataObject):HRESULT;指需要将ppDoRet指向实现了IDataObject并保存你修改后的数据的对象就可以了。