Question

Dans quelles circonstances la fonction API Win32 OleGetClipboard () échouera-t-elle et renverra CLIPBRD_E_CANT_OPEN ?

Plus d’arrière-plan: j’assiste à la résolution d’un bogue dans Firefox. Détails ici:

bug 444800 - impossible de récupérer les données d'image du presse-papiers au format sans perte

Dans le test automatisé que j'ai aidé à écrire, nous voyons qu'OleGetClipboard () échoue parfois et renvoie CLIPBRD_E_CANT_OPEN . Cela est inattendu et le code Firefox pour extraire les données d’image du presse-papiers Windows dépend du succès de cet appel.

Était-ce utile?

La solution

La documentation indique que OleGetClipboard peut échouer avec ce code d'erreur si OpenClipboard échoue. À son tour, si vous lisez cette documentation, vous remarquerez:

" OpenClipboard " échoue si le presse-papier est ouvert dans une autre fenêtre. "

Il s’agit d’une ressource exclusive: le Presse-papiers est ouvert à la fois dans une seule fenêtre. En gros, si vous ne pouvez pas le faire, attendez un peu et essayez à nouveau.

Autres conseils

Votre test est-il exécuté sur les services Terminal Server? Voir l'erreur CLIPBRD_E_CANT_OPEN lors de la définition du Presse-papiers à partir de .NET . <. / p>

D'après ce que je vois dans MSDN, cela semble impliquer que le problème provient de quiconque a essayé de placer les données dans le presse-papiers, i, .e. la source des données. Si leur appel à OleSetClipboard () a échoué, pour une raison quelconque, vous ne pourrez pas extraire de contenu. Je voudrais regarder comment les données sont placées dans le presse-papiers et voir si un scénario de test effectue cela (copier les données dans le presse-papiers), puis cause le problème dont vous parlez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top