Domanda

In quali circostanze la funzione API Win32 OleGetClipboard () fallirà e restituirà CLIPBRD_E_CANT_OPEN ?

Ulteriori informazioni: sto assistendo con una correzione di bug di Firefox. Dettagli qui:

bug 444800 - impossibile recuperare i dati delle immagini dagli Appunti in formato lossless

Nel test automatizzato che ho aiutato a scrivere, vediamo che OleGetClipboard () a volte fallisce e restituisce CLIPBRD_E_CANT_OPEN . Ciò è inaspettato e il codice di Firefox per estrarre i dati delle immagini dagli Appunti di Windows dipende dalla riuscita della chiamata.

È stato utile?

Soluzione

La documentazione dice che OleGetClipboard può fallire con questo codice di errore se OpenClipboard fallisce. A sua volta, se leggi quella documentazione, dice:

" OpenClipboard fallisce se un'altra finestra ha gli appunti aperti. "

È una risorsa esclusiva: solo una finestra può aprire gli Appunti alla volta. Fondamentalmente, se non puoi farlo, aspetta un po 'e riprova.

Altri suggerimenti

Il test è in esecuzione su Servizi terminal? Vedi errore CLIPBRD_E_CANT_OPEN durante l'impostazione degli Appunti da .NET .

Da quello che vedo in MSDN sembra implicare che il problema provenga da chiunque abbia provato a mettere effettivamente i dati negli negli appunti, io, .e. la fonte dei dati. Se la loro chiamata a OleSetClipboard () non è riuscita, per qualsiasi motivo, non sarai in grado di estrarre roba. Vorrei dare un'occhiata al modo in cui i dati vengono inseriti negli Appunti e vedere se esiste un caso di test che lo esegue (copiando i dati negli Appunti), e quindi causa il problema di cui stai parlando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top