Metodo IDataObject::GetData (objidl.h)
Chiamato da un consumer di dati per ottenere dati da un oggetto dati di origine. Il metodo GetData esegue il rendering dei dati descritti nella struttura FORMATETC specificata e lo trasferisce tramite la struttura STGMEDIUM specificata. Il chiamante presuppone quindi la responsabilità di rilasciare la struttura STGMEDIUM .
Sintassi
HRESULT GetData(
[in] FORMATETC *pformatetcIn,
[out] STGMEDIUM *pmedium
);
Parametri
[in] pformatetcIn
Puntatore alla struttura FORMATETC che definisce il formato, il supporto e il dispositivo di destinazione da usare durante il passaggio dei dati. È possibile specificare più supporti usando l'operatore booleano OR, consentendo al metodo di scegliere il supporto ottimale tra quelli specificati.
[out] pmedium
Puntatore alla struttura STGMEDIUM che indica il supporto di archiviazione contenente i dati restituiti tramite il membro tymed e la responsabilità di rilasciare il supporto tramite il valore del relativo membro pUnkForRelease . Se pUnkForRelease è NULL, il ricevitore del supporto è responsabile del rilascio; in caso contrario, pUnkForRelease punta a IUnknown nell'oggetto appropriato in modo che sia possibile chiamare il relativo metodo Release . Il supporto deve essere allocato e compilato da GetData.
Valore restituito
Questo metodo restituisce S_OK se l'operazione ha esito positivo. Altri valori possibili includono quanto segue.
Codice restituito | Descrizione |
---|---|
|
Il valore per lindex non è valido; attualmente è supportato solo -1. |
|
Il valore per pformatetcIn non è valido. |
|
Il valore tymed non è valido. |
|
Il valore dwAspect non è valido. |
|
L'applicazione dell'oggetto non è in esecuzione. |
|
Si è verificato un errore durante l'allocazione del supporto. |
|
Si è verificato un errore imprevisto. |
|
Il valore dwDirection non è valido. |
|
Memoria insufficiente disponibile per questa operazione. |
Commenti
Un consumer di dati chiama GetData per recuperare i dati da un oggetto dati, trasmesso tramite un supporto di archiviazione (definito tramite la struttura STGMEDIUM ).
Note ai chiamanti
È possibile specificare più di un media tymed accettabile con l'operatore OR booleano. GetData deve scegliere tra i valori OR il supporto che rappresenta meglio i dati, eseguire l'allocazione e indicare la responsabilità del rilascio del supporto.I dati trasferiti in un flusso si estendono dalla posizione zero del puntatore di flusso alla posizione immediatamente prima del puntatore di flusso corrente, ovvero la posizione del puntatore di flusso all'uscita.
Note per gli implementatori
GetData deve controllare tutti i campi nella struttura FORMATETC . È importante che GetData esegue il rendering dell'aspetto richiesto e, se possibile, usa il supporto richiesto. Se l'oggetto dati non è conforme alle informazioni specificate in FORMATETC, il metodo deve restituire DV_E_FORMATETC. Se un tentativo di allocare il supporto ha esito negativo, il metodo deve restituire STG_E_MEDIUMFULL. È importante compilare tutti i campi nella struttura STGMEDIUM .Anche se il chiamante può specificare più di un media per restituire i dati, GetData può fornire un solo supporto. Se il trasferimento iniziale ha esito negativo con il supporto selezionato, questo metodo può essere implementato per provare uno degli altri supporti specificati prima di restituire un errore.
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 | objidl.h |