c++ - 如何从剪贴板中清除指定格式的数据?

标签 c++ windows winapi

我将一些数据放入剪贴板,从剪贴板复制数据后,我想清除数据而不清除整个剪贴板。

类似的东西:

wchar_t* buf=NULL;
if( OpenClipboard(NULL)!=0)
{
HANDLE hData = GetClipboardData( CF_UNICODETEXT );
buf = (wchar_t*)GlobalLock( hData );
GlobalUnlock( hData );
CloseClipboard();
return buf;
} 

//job is done, and now I want to clear only hData!

据我了解,EmptyClipboard() 会清空所有内容!

提前致谢!

最佳答案

剪贴板一次只能保存一个IDataObject;此数据对象可以呈现多种数据格式,但它只是一个 COM 对象。做你想做的唯一方法是复制现有的数据对象(减去你想删除的格式)并将其设置到剪贴板以代替原始数据。

关于c++ - 如何从剪贴板中清除指定格式的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14419197/

相关文章:

c++ - 努力理解 C++ 模板实例化

c++ - 我们需要用 C++11 重新编译库吗?

c++ - 对于我正在交叉编译的程序,如何将 ubuntu 上的 GLEW 交叉编译到 Windows?

windows - MSysGit 与 Git for Windows

windows - 无法在Windows上启动Confluent Kafka Connect(NoClassDefFoundError:io/confluent/connect/storage/StorageSinkConnectorConfig)

c++ - 多次调用的函数导致程序退出并出现神秘错误

c++ - FLTK fl_line 和 fl_point 不起作用

c++ - 显式特化成员类的成员类的外部定义

c++ - 实现类CContainedWindow的功能而无需父类(super class)或子分类

c++ - 如何确定 C++ 中每个核心的 CPU 消耗