Funzione OleGetClipboard (ole2.h)
Recupera un oggetto dati che è possibile utilizzare per accedere al contenuto degli Appunti.
Sintassi
HRESULT OleGetClipboard(
[out] LPDATAOBJECT *ppDataObj
);
Parametri
[out] ppDataObj
Indirizzo della variabile puntatore IDataObject che riceve il puntatore dell'interfaccia all'oggetto dati degli Appunti.
Valore restituito
Questa funzione restituisce S_OK in caso di esito positivo. Altri valori possibili includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
La funzione OpenClipboard usata in OleFlushClipboard non è riuscita. |
|
La funzione CloseClipboard utilizzata in OleFlushClipboard non è riuscita. |
Commenti
OleGetClipboard gestisce tre casi:
- L'applicazione che ha inserito i dati negli Appunti con la funzione OleSetClipboard è ancora in esecuzione.
- L'applicazione che ha inserito dati negli Appunti con la funzione OleSetClipboard ha successivamente chiamato la funzione OleFlushClipboard .
- Negli Appunti sono presenti dati provenienti da un'applicazione non OLE.
Nel secondo caso, OLE crea un oggetto dati predefinito e lo restituisce all'utente. Poiché i dati negli Appunti provengono da una chiamata OleSetClipboard , l'oggetto dati fornito da OLE contiene informazioni più accurate sul tipo di dati negli Appunti. In particolare, il supporto originale (TYMED) su cui sono stati offerti i dati è noto. Pertanto, se un'applicazione di origine dati offre un particolare formato degli Appunti, ad esempio cfFOO, su un oggetto di archiviazione e chiama la funzione OleFlushClipboard , l'oggetto di archiviazione viene copiato in memoria e l'handle di memoria hglobal viene inserito negli Appunti. Quando quindi la funzione OleGetClipboard crea l'oggetto dati predefinito, l'oggetto hglobal dagli Appunti diventa nuovamente un oggetto IStorage . Inoltre, l'enumeratore FORMATETC e il metodo IDataObject::QueryGetData indicano tutti correttamente che il formato originale degli Appunti (cfFOO) è nuovamente disponibile in un TYMED_ISTORAGE.
Nel terzo caso, OLE crea comunque un oggetto dati predefinito, ma non sono disponibili informazioni speciali sui dati negli Appunti (in particolare per i formati degli Appunti definiti dall'applicazione). Pertanto, se un supporto di archiviazione basato su hGlobal è stato inserito negli Appunti direttamente da una chiamata alla funzione SetClipboardData , l'enumeratore FORMATETC e il metodo IDataObject::QueryGetData non indicano che i dati erano disponibili in un supporto di archiviazione. Tuttavia, una chiamata al metodo IDataObject::GetData per TYMED_ISTORAGE avrà esito positivo. A causa di queste limitazioni, è consigliabile che le applicazioni con riconoscimento OLE interagiscono con gli Appunti usando le funzioni degli Appunti OLE.
L'oggetto dati degli Appunti creato dalla funzione OleGetClipboard ha un'implementazione IDataObject abbastanza estesa. L'oggetto dati fornito da OLE può convertire i dati in formato Degli Appunti OLE 1 nella rappresentazione prevista da un chiamante OLE 2. Inoltre, tutti i dati strutturati sono disponibili in qualsiasi supporto strutturato o flat e tutti i dati flat sono disponibili in qualsiasi supporto flat. Tuttavia, gli oggetti GDI (ad esempio metafile e bitmap) sono disponibili solo sui rispettivi supporti.
Si noti che il membro tymed della struttura FORMATETC utilizzato nell'enumeratore FORMATETC contiene l'unione di supporti supportati. Le applicazioni che cercano informazioni specifiche(ad esempio se CF_TEXT è disponibile in TYMED_HGLOBAL) devono eseguire la maschera di bit appropriata durante il controllo di questo valore.
Se si chiama la funzione OleGetClipboard , è consigliabile tenere premuto l'oggetto IDataObject restituito per un breve periodo di tempo. Utilizza le risorse nell'applicazione che l'ha offerta.
Requisiti
Requisito | Valore |
---|---|
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) |