3

Win32 API 函数 OleGetClipboard() 在什么情况下会失败并返回CLIPBRD_E_CANT_OPEN

更多背景信息:我正在协助修复 Firefox 错误。详情在这里:

错误 444800 - 无法以无损格式从剪贴板检索图像数据

在我帮助编写的自动化测试中,我们看到 OleGetClipboard() 有时会失败并返回CLIPBRD_E_CANT_OPEN。这是出乎意料的,从 Windows 剪贴板中提取图像数据的 Firefox 代码取决于该调用是否成功。

4

3 回答 3

5

文档说OleGetClipboard如果失败,可能会失败并显示此错误代码OpenClipboard。反过来,如果您阅读该文档,它会说:

"如果另一个窗口打开了剪贴板,则OpenClipboard 将失败。"

这是一种专有资源:一次只能在一个窗口中打开剪贴板。基本上,如果你做不到,请稍等片刻,然后再试一次。

于 2008-09-26T15:56:38.510 回答
0

您的测试是否在终端服务上运行?从 .NET 设置剪贴板时,请参阅CLIPBRD_E_CANT_OPEN 错误

于 2008-09-26T14:07:55.620 回答
0

从我在 MSDN 中看到的内容似乎暗示问题出在试图将数据实际放入剪贴板的人身上,即 数据的来源。如果他们对 OleSetClipboard() 的调用失败,无论出于何种原因,您将无法提取内容。我会看看数据是如何被放入剪贴板的,看看是否有一个测试用例执行这个(将数据复制到剪贴板),然后导致你正在谈论的问题。

于 2008-09-26T14:25:46.717 回答