3

Win32 API 関数 OleGetClipboard() が失敗して を返すのはどのような状況CLIPBRD_E_CANT_OPENですか?

背景: Firefox のバグ修正を支援しています。詳細はこちら:

バグ 444800 - ロスレス形式でクリップボードから画像データを取得できない

私が作成を手伝った自動テストでは、OleGetClipboard() が失敗してCLIPBRD_E_CANT_OPEN. これは予想外であり、Windows クリップボードから画像データを取得する Firefox コードは、その呼び出しの成功に依存しています。

4

3 に答える 3

5

ドキュメントには、OleGetClipboard失敗した場合、このエラー コードで失敗する可能性があると記載されていOpenClipboardます。次に、そのドキュメントを読むと、次のように書かれています。

「別のウィンドウでクリップボードが開いている場合、OpenClipboardは失敗します。」

これは排他的なリソースです。一度に 1 つのウィンドウだけがクリップボードを開くことができます。基本的に、出来ない場合は少し待ってからやり直してください。

于 2008-09-26T15:56:38.510 に答える
0

私がMSDNで見たものから、問題は実際にデータをクリップボードに入れようとした人、つまり. データのソース。OleSetClipboard() の呼び出しが何らかの理由で失敗した場合、内容を抽出することはできません。データがどのようにクリップボードに入れられているかを見て、これを実行する (データをクリップボードにコピーする) テスト ケースがあるかどうかを確認してから、あなたが話している問題を引き起こします。

于 2008-09-26T14:25:46.717 に答える
0

テストはターミナル サービスで実行されていますか? .NET からクリップボードを設定するときの CLIPBRD_E_CANT_OPEN エラーを参照してください。

于 2008-09-26T14:07:55.620 に答える