Funzione OleSetClipboard (ole2.h)

Inserisce un puntatore a un oggetto dati specifico negli Appunti. In questo modo l'oggetto dati è accessibile alla funzione OleGetClipboard .

Sintassi

HRESULT OleSetClipboard(
  [in] LPDATAOBJECT pDataObj
);

Parametri

[in] pDataObj

Puntatore all'interfaccia IDataObject nell'oggetto dati da cui è possibile ottenere i dati da inserire negli Appunti. Questo parametro può essere NULL; nel qual caso gli Appunti vengono svuotati.

Valore restituito

Questa funzione restituisce S_OK in caso di esito positivo. Altri valori possibili includono quanto segue.

Codice restituito Descrizione
CLIPBRD_E_CANT_OPEN
La funzione OpenClipboard utilizzata all'interno di OleSetClipboard non è riuscita.
CLIPBRD_E_CANT_EMPTY
La funzione EmptyClipboard utilizzata in OleSetClipboard non è riuscita.
CLIPBRD_E_CANT_CLOSE
La funzione CloseClipboard utilizzata in OleSetClipboard non è riuscita.
CLIPBRD_E_CANT_SET
La funzione SetClipboardData utilizzata all'interno di OleSetClipboard non è riuscita.

Commenti

Se si scrive un'applicazione che può fungere da origine di un'operazione degli Appunti, è necessario eseguire le operazioni seguenti:

  • Creare un oggetto dati (in cui è l'interfaccia IDataObject ) per i dati copiati o tagliati negli Appunti. Questo oggetto deve essere lo stesso oggetto utilizzato nelle operazioni di trascinamento della selezione OLE.
  • Chiamare OleSetClipboard per posizionare il puntatore IDataObject negli Appunti, in modo che sia accessibile alla funzione OleGetClipboard . OleSetClipboard chiama anche il metodo IUnknown::AddRef nell'oggetto dati.
  • Se si desidera, rilasciare l'oggetto dati dopo averlo inserito negli Appunti per liberare il contatore IUnknown::AddRef nell'applicazione.
  • Se l'utente sta tagliando i dati (eliminandoli dal documento e inserendoli negli Appunti), rimuovere i dati dal documento.
Tutti i formati vengono offerti negli Appunti usando il rendering ritardato( gli Appunti contengono solo un puntatore all'oggetto dati a meno che una chiamata a OleFlushClipboard esegua il rendering dei dati negli Appunti). I formati necessari per la compatibilità OLE 1 vengono sintetizzati dai formati OLE 2 presenti e inseriti negli Appunti.

La funzione OleSetClipboard assegna la proprietà degli Appunti a un handle interno della finestra OLE. Il conteggio dei riferimenti dell'oggetto dati viene aumentato di 1 per consentire il rendering ritardato. Il conteggio dei riferimenti viene ridotto da una chiamata alla funzione OleFlushClipboard o da una chiamata successiva a OleSetClipboard che specifica NULL come valore del parametro (che cancella gli Appunti).

Quando un'applicazione apre gli Appunti (direttamente o indirettamente chiamando la funzione OpenClipboard ), gli Appunti non possono essere usati da nessun'altra applicazione finché non viene chiusa. Se gli Appunti sono attualmente aperti da un'altra applicazione, OleSetClipboard ha esito negativo. L'handle interno della finestra OLE soddisfa WM_RENDERFORMAT messaggi delegandoli all'implementazione IDataObject nell'oggetto dati presente negli Appunti.

Se si specifica NULL come valore del parametro per OleSetClipboard , gli Appunti correnti vengono svuotati. Se il contenuto degli Appunti è il risultato di una precedente chiamata OleSetClipboard e gli Appunti sono stati rilasciati, viene rilasciato il puntatore IDataObject passato alla chiamata precedente. Il proprietario degli Appunti deve usarlo come segnale che i dati offerti in precedenza non sono più presenti negli Appunti.

Se è necessario lasciare i dati negli Appunti dopo la chiusura dell'applicazione, è necessario chiamare OleFlushClipboard anziché chiamare OleSetClipboard con un valore di parametro NULL .

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ole2.h
Libreria Ole32.lib
DLL Ole32.dll
Set di API ext-ms-win-com-ole32-l1-1-5 (introdotto in Windows 10, versione 10.0.15063)

Vedi anche

OleFlushClipboard

OleGetClipboard

OleIsCurrentClipboard