这些天我一直被这个问题所折磨,大脑都快缺氧了。我的思路很简单,通过实现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的格式。多谢大家了,欢迎大家各抒己见。