首页 > 解决方案 > 如何调试 IDataObject 实现?

问题描述

我有一个 C++ 程序,它用一个类实现 IDataObject 接口,例如 ClipboardData:

STDMETHOD(GetData)(LPFORMATETC pformatetcIn, LPSTGMEDIUM pmedium);
STDMETHOD(GetDataHere)(LPFORMATETC pformatetc, LPSTGMEDIUM pmedium);
STDMETHOD(QueryGetData)(LPFORMATETC pformatetc);
STDMETHOD(GetCanonicalFormatEtc)(LPFORMATETC pformatetc, LPFORMATETC pformatetcOut);
STDMETHOD(SetData)(LPFORMATETC pformatetc, STGMEDIUM FAR * pmedium, BOOL fRelease);
STDMETHOD(EnumFormatEtc)(DWORD dwDirection, LPENUMFORMATETC FAR* ppenumFormatEtc);

该程序按预期工作:如果我设置系统剪贴板,OleSetClipboard(instance of ClipboardData);我可以从另一个应用程序中粘贴内容。问题是程序不能在我在GetData、QueryGetData等函数中设置的断点处断点,EnumFormatEtc除外。调用时程序在 EnumFormatEtc 处中断OleSetClipboard(instance of ClipboardData);

我认为当我从另一个程序中粘贴时,程序应该在 GetData(提供请求的数据)处中断。我是不是误解了 Windows 的剪贴板机制?

标签: qtclipboardclipboarddataidataobject

解决方案


推荐阅读