使用Adobe acrobat reader获取GetClipBoardOwner

时间:2012-05-01 11:57:04

标签: winapi clipboard acrobat

为什么GetClipBoardOwner始终使用acrobat reader返回0,

当使用GetClipBoardOwner与任何其他MS应用程序(例如Notepad.exe)时,结果将是真正的剪贴板所有者,但是当与Adobe acrobat reader一起使用时,我没有得到任何结果意味着0

我调用了GetLastError(),它给出了一个正确的句柄,但是使用Adobe acrobat reader它会得到0作为结果

有人可以解释一下这个吗?

非常感谢

1 个答案:

答案 0 :(得分:1)

adobe acrobat发生了一件非常奇怪的事情:

Acrobat在使用NULL(OpenClipboard(NULL))打开剪贴板后使用EmptyClipboard()取得所有权,这意味着所有者HWND为NULL。

到目前为止,一切正常,奇怪的是,当它使用SetClipboardData()而所有者为NULL时,从MSDN和我自己的经验来看,这种情况应该会失败SetClipboardData(),但是在杂技的情况下SetClipboardData()不会失败,并将数据放在剪贴板中,而所有者是NULL!

这就是你获得NULL所有者的原因。新的开放性问题是SetClipboardData()如何不失败......