c++ - 谁是 IDataObject::GetData 呈现的数据的所有者?
问题描述
关于该问题的文档措辞有些令人困惑。首先它说:
然后调用者负责释放 STGMEDIUM 结构
然后在参数说明中:
指向 STGMEDIUM 结构的指针,指示包含通过其 tymed 成员返回的数据的存储介质,以及通过其 pUnkForRelease 成员的值释放介质的责任。
我无法得出一个可靠的结论,即我是其中的所有者,并且可以在不复制数据的情况下修改数据。通过 pUnkForRelease 释放的义务使得从函数返回介质句柄(例如 HBITMAP 或其他)是不可能的。因此,我对数据的所有权受到限制,如果它存在的话。
我不想制作不必要的副本。我认为 IDataObject 的实现者必须制作数据的副本,即使它与源数据相同,因为没有什么说不允许用户修改它。那我为什么要再复制一次呢?我是它的所有者吗?
解决方案
推荐阅读
- javascript - Facebook 的 JS SDK 停止在控制台中处理此错误
- sql - 为什么 PostgreSQL 不使用无符号整数作为 ID?那不会提供两倍的可能记录吗?
- ruby-on-rails - 如何在 ActiveAdmin 的仪表板中使用参数?
- neo4j - 设置关系属性时奇怪的 Neo4J Cypher 行为
- visual-studio-code - 上下移动时停止线移动(Visual Studio Code)
- delphi - 快速更新数组更少的行
- sml - 如何在两个整数范围内进行嵌套 for 循环?
- npm - vscode中的npm版本与安装版本不同
- r - 从 for 循环返回了一个额外的打印结果“[1] 36”:如何删除它?
- javascript - javascript在同一页面上多次