我需要检测我的应用中的另一个应用程序/窗口何时粘贴我以前设置的数据,因此我可以从源窗口中删除它。我发现COleDataSource::DelaySetData
理论上执行此操作,并且在粘贴发生时会调用COleDataSource::OnSetData
,但我无法确定。 MSDN(对于这个问题)通常是模糊的,并没有明确说明这种或那种方式。我将使用自定义格式和watever格式是资源管理器用于剪切/粘贴文件。
所以问题是如何完成(不是理论上)这样做。
我真的需要从我的窗口中删除这些项目当且仅当它们被粘贴到其他地方时。
答案 0 :(得分:0)
你做错了。当您剪切某些东西时,它应该立即被删除,如果需要恢复,您应该提供撤消功能。
剪贴板不是为双向信令设计的。 DelaySetData适用于以不同格式提交大量数据的应用程序,因此它们只需提供接收方所需的格式;用它来检测粘贴发生的时间依赖于副作用。有剪贴板管理器可能会导致失败。