为什么Win32 OleGetClipboard()函数会返回CLIPBRD_E_CANT_OPEN?

3 c++ windows winapi ole

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

更多背景:我正在协助修复Firefox错误.详细信息:

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

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

Mik*_*ick 5

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

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

这是一个独家资源:一次只能有一个窗口打开剪贴板.基本上,如果你不能这样做,请稍等一会儿再试一次.