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 |
---|---|
|
La funzione OpenClipboard utilizzata all'interno di OleSetClipboard non è riuscita. |
|
La funzione EmptyClipboard utilizzata in OleSetClipboard non è riuscita. |
|
La funzione CloseClipboard utilizzata in OleSetClipboard non è riuscita. |
|
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.
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) |