Condividi tramite


Classe COleDataObject

Utilizzata nei trasferimenti di dati per il recupero in diversi formati dagli Appunti, mediante il trascinamento della selezione o da un elemento OLE incorporato.

Sintassi

class COleDataObject

Membri

Costruttori pubblici

Nome Descrizione
COleDataObject::COleDataObject Costruisce un oggetto COleDataObject.

Metodi pubblici

Nome Descrizione
COleDataObject::Attach Associa l'oggetto dati OLE specificato all'oggetto COleDataObject.
COleDataObject::AttachClipboard Collega l'oggetto dati presente negli Appunti.
COleDataObject::BeginEnumFormats Prepara una o più chiamate successive GetNextFormat .
COleDataObject::D etach Scollega l'oggetto associato IDataObject .
COleDataObject::GetData Copia i dati dall'oggetto dati OLE associato in un formato specificato.
COleDataObject::GetFileData Copia i dati dall'oggetto dati OLE collegato in un CFile puntatore nel formato specificato.
COleDataObject::GetGlobalData Copia i dati dall'oggetto dati OLE associato in un HGLOBAL oggetto nel formato specificato.
COleDataObject::GetNextFormat Restituisce il formato dati successivo disponibile.
COleDataObject::IsDataAvailable Controlla se i dati sono disponibili in un formato specificato.
COleDataObject::Release Scollega e rilascia l'oggetto associato IDataObject .

Osservazioni:

COleDataObject non dispone di una classe di base.

Questi tipi di trasferimenti di dati includono un'origine e una destinazione. L'origine dati viene implementata come oggetto della classe COleDataSource . Ogni volta che un'applicazione di destinazione contiene dati eliminati o viene chiesto di eseguire un'operazione incolla dagli Appunti, è necessario creare un oggetto della COleDataObject classe .

Questa classe consente di determinare se i dati esistono in un formato specificato. È anche possibile enumerare i formati di dati disponibili o verificare se un determinato formato è disponibile e quindi recuperare i dati nel formato preferito. Il recupero di oggetti può essere eseguito in diversi modi, tra cui l'uso di un file CFile, un oggetto HGLOBAL o una STGMEDIUM struttura.

Per altre informazioni, vedere la struttura STGMEDIUM in Windows SDK.

Per altre informazioni sull'uso di oggetti dati nell'applicazione, vedere l'articolo Oggetti dati e origini dati (OLE).

Gerarchia di ereditarietà

COleDataObject

Requisiti

Intestazione: afxole.h

COleDataObject::Attach

Chiamare questa funzione per associare l'oggetto COleDataObject a un oggetto dati OLE.

void Attach(
    LPDATAOBJECT lpDataObject,
    BOOL bAutoRelease = TRUE);

Parametri

lpDataObject
Punta a un oggetto dati OLE.

bAutoRelease
TRUE se l'oggetto dati OLE deve essere rilasciato quando l'oggetto COleDataObject viene eliminato definitivamente; in caso contrario, FALSE.

Osservazioni:

Per altre informazioni, vedere IDataObject in Windows SDK.

COleDataObject::AttachClipboard

Chiamare questa funzione per collegare l'oggetto dati attualmente presente negli Appunti all'oggetto COleDataObject .

BOOL AttachClipboard();

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Nota

La chiamata a questa funzione blocca gli Appunti fino al rilascio di questo oggetto dati. L'oggetto dati viene rilasciato nel distruttore per .COleDataObject Per altre informazioni, vedere OpenClipboard e CloseClipboard nella documentazione di Win32.

COleDataObject::BeginEnumFormats

Chiamare questa funzione per preparare le chiamate successive a GetNextFormat per recuperare un elenco di formati di dati dall'elemento.

void BeginEnumFormats();

Osservazioni:

Dopo una chiamata a BeginEnumFormats, viene archiviata la posizione del primo formato supportato da questo oggetto dati. Le chiamate successive a GetNextFormat enumereranno l'elenco dei formati disponibili nell'oggetto dati.

Per verificare la disponibilità dei dati in un determinato formato, usare COleDataObject::IsDataAvailable.

Per altre informazioni, vedere IDataObject::EnumFormatEtc in Windows SDK.

COleDataObject::COleDataObject

Costruisce un oggetto COleDataObject.

COleDataObject();

Osservazioni:

È necessario effettuare una chiamata a COleDataObject::Attach o COleDataObject::AttachClipboard prima di chiamare altre COleDataObject funzioni.

Nota

Poiché uno dei parametri per i gestori di trascinamento della selezione è un puntatore a un COleDataObjectoggetto , non è necessario chiamare questo costruttore per supportare il trascinamento della selezione.

COleDataObject::D etach

Chiamare questa funzione per scollegare l'oggetto dall'oggetto COleDataObject dati OLE associato senza rilasciare l'oggetto dati.

LPDATAOBJECT Detach();

Valore restituito

Puntatore all'oggetto dati OLE scollegato.

Osservazioni:

COleDataObject::GetData

Chiamare questa funzione per recuperare i dati dall'elemento nel formato specificato.

BOOL GetData(
    CLIPFORMAT cfFormat,
    LPSTGMEDIUM lpStgMedium,
    LPFORMATETC lpFormatEtc = NULL);

Parametri

cfFormat
Formato in cui devono essere restituiti i dati. Questo parametro può essere uno dei formati predefiniti degli Appunti o il valore restituito dalla funzione nativa Windows RegisterClipboardFormat .

lpStgMedium
Punta a una struttura STGMEDIUM che riceverà i dati.

lpFormatEtc
Punta a una struttura FORMATETC che descrive il formato in cui devono essere restituiti i dati. Specificare un valore per questo parametro se si desidera specificare informazioni di formato aggiuntive oltre il formato degli Appunti specificato da cfFormat. Se è NULL, vengono usati i valori predefiniti per gli altri campi della FORMATETC struttura.

Valore restituito

Diverso da zero se ha esito positivo; in caso contrario 0.

Osservazioni:

Per altre informazioni, vedere IDataObject::GetData, STGMEDIUM e FORMATETC in Windows SDK.

Per altre informazioni, vedere RegisterClipboardFormat in Windows SDK.

COleDataObject::GetFileData

Chiamare questa funzione per creare un CFile oggetto derivato da o CFilee recuperare i dati nel formato specificato in un CFile puntatore.

CFile* GetFileData(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Parametri

cfFormat
Formato in cui devono essere restituiti i dati. Questo parametro può essere uno dei formati predefiniti degli Appunti o il valore restituito dalla funzione nativa Windows RegisterClipboardFormat .

lpFormatEtc
Punta a una struttura FORMATETC che descrive il formato in cui devono essere restituiti i dati. Specificare un valore per questo parametro se si desidera specificare informazioni di formato aggiuntive oltre il formato degli Appunti specificato da cfFormat. Se è NULL, vengono usati i valori predefiniti per gli altri campi della FORMATETC struttura.

Valore restituito

Puntatore all'oggetto nuovo CFile o CFilederivato da contenente i dati in caso di esito positivo; in caso contrario, NULL.

Osservazioni:

A seconda del supporto in cui vengono archiviati i dati, il tipo effettivo a cui punta il valore restituito può essere CFile, CSharedFileo COleStreamFile.

Nota

L'oggetto CFile a cui si accede dal valore restituito di questa funzione è di proprietà del chiamante. È responsabilità del chiamante all'oggetto delete CFile , chiudendo così il file.

Per altre informazioni, vedere FORMATETC in Windows SDK.

Per altre informazioni, vedere RegisterClipboardFormat in Windows SDK.

COleDataObject::GetGlobalData

Chiamare questa funzione per allocare un blocco di memoria globale e recuperare i dati nel formato specificato in un oggetto HGLOBAL.

HGLOBAL GetGlobalData(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Parametri

cfFormat
Formato in cui devono essere restituiti i dati. Questo parametro può essere uno dei formati predefiniti degli Appunti o il valore restituito dalla funzione nativa Windows RegisterClipboardFormat .

lpFormatEtc
Punta a una struttura FORMATETC che descrive il formato in cui devono essere restituiti i dati. Specificare un valore per questo parametro se si desidera specificare informazioni di formato aggiuntive oltre il formato degli Appunti specificato da cfFormat. Se è NULL, vengono usati i valori predefiniti per gli altri campi della FORMATETC struttura.

Valore restituito

Handle del blocco di memoria globale contenente i dati in caso di esito positivo; in caso contrario NULL.

Osservazioni:

Per altre informazioni, vedere FORMATETC in Windows SDK.

Per altre informazioni, vedere RegisterClipboardFormat in Windows SDK.

COleDataObject::GetNextFormat

Chiamare ripetutamente questa funzione per ottenere tutti i formati disponibili per il recupero dei dati dall'elemento.

BOOL GetNextFormat(LPFORMATETC lpFormatEtc);

Parametri

lpFormatEtc
Punta alla struttura FORMATETC che riceve le informazioni sul formato quando viene restituita la chiamata di funzione.

Valore restituito

Diverso da zero se è disponibile un altro formato; in caso contrario, 0.

Osservazioni:

Dopo una chiamata a COleDataObject::BeginEnumFormats, viene archiviata la posizione del primo formato supportato da questo oggetto dati. Le chiamate successive a GetNextFormat enumereranno l'elenco dei formati disponibili nell'oggetto dati. Usare queste funzioni per elencare i formati disponibili.

Per verificare la disponibilità di un determinato formato, chiamare COleDataObject::IsDataAvailable.

Per altre informazioni, vedere IEnumXXXX::Next in Windows SDK.

COleDataObject::IsDataAvailable

Chiamare questa funzione per determinare se è disponibile un formato specifico per il recupero dei dati dall'elemento OLE.

BOOL IsDataAvailable(
    CLIPFORMAT cfFormat,
    LPFORMATETC lpFormatEtc = NULL);

Parametri

cfFormat
Formato dei dati degli Appunti da utilizzare nella struttura a cui punta lpFormatEtc. Questo parametro può essere uno dei formati predefiniti degli Appunti o il valore restituito dalla funzione nativa Windows RegisterClipboardFormat .

lpFormatEtc
Punta a una struttura FORMATETC che descrive il formato desiderato. Specificare un valore per questo parametro solo se si desidera specificare informazioni di formato aggiuntive oltre il formato degli Appunti specificato da cfFormat. Se è NULL, vengono usati i valori predefiniti per gli altri campi della FORMATETC struttura.

Valore restituito

Diverso da zero se i dati sono disponibili nel formato specificato; in caso contrario, 0.

Osservazioni:

Questa funzione è utile prima di chiamare GetData, GetFileDatao GetGlobalData.

Per altre informazioni, vedere IDataObject::QueryGetData e FORMATETC in Windows SDK.

Per altre informazioni, vedere RegisterClipboardFormat in Windows SDK.

Esempio

Vedere l'esempio per CRichEditView::QueryAcceptData.

COleDataObject::Release

Chiamare questa funzione per rilasciare la proprietà dell'oggetto IDataObject precedentemente associato all'oggetto COleDataObject .

void Release();

Osservazioni:

L'oggetto IDataObject è stato associato all'oggetto COleDataObject chiamando Attach o AttachClipboard in modo esplicito o in modo esplicito o dal framework. Se il parametro bAutoRelease di Attach è FALSE, l'oggetto IDataObject non verrà rilasciato. In questo caso, il chiamante è responsabile del rilascio IDataObject di chiamando IUnknown::Release.

Vedi anche

HIERSVR di esempio MFC
OCLIENT di esempio MFC
Grafico della gerarchia
Classe COleDataSource
Classe COleClientItem
Classe COleServerItem