当使用
SetClipboardData
参数打开剪贴板时,在调用 EmptyClipboard
后是否需要调用 nullptr
?清除剪贴板内容时,对SetClipboardData
的调用可以省略吗?
if (!OpenClipboard(nullptr)) {
return false;
}
EmptyClipboard();
SetClipboardData(CF_TEXT, nullptr); // is this needed as-is
CloseClipboard();
该代码用于清除剪贴板内容。不需要剪贴板所有者。省略
SetClipboardData(CF_TEXT, nullptr);
调用是否安全?
如果你想清除剪贴板,调用
SetClipboardData()
将数据项放入剪贴板是没有意义的。所以是的,省略它。
特别是因为文档明确指出您无论如何都不能将
SetClipboardData()
与空所有者一起使用。
如果应用程序在 hwnd 设置为 NULL 的情况下调用 OpenClipboard,则 EmptyClipboard 将剪贴板所有者设置为 NULL;这会导致 SetClipboardData 失败。