qt - 如何调试 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 的剪贴板机制?
解决方案
推荐阅读
- julia - 如何在 Julia 中检查文件是否存在且没有异常?
- scala - 填充案例类列表
- typescript - 为用 Typescript 编写的 Vue 组件生成 d.ts 文件
- laravel - 我需要担心 laravel 的安全性吗?
- react-hooks - 第 8 行:在函数“forgetPassword”中调用 React Hook “useState”,该函数既不是 React 函数组件也不是自定义 React Hook 函数
- reactjs - React Router 不在路径处渲染组件,返回具有正确路径的空白页面
- r - 如何在 R 中跨子组聚合李克特类型量表?
- angular - 角度方面的承诺和异步有什么区别?
- vb.net - linq to sql 事务的问题,头子记录
- mongodb - 与 Elasticsearch 或其他面向文档的数据库一起使用的最佳文档结构