Metodo IDataObject::GetDataHere (objidl.h)
Chiamato da un consumer di dati per ottenere dati da un oggetto dati di origine. Questo metodo differisce dal metodo GetData in quanto il chiamante deve allocare e liberare il supporto di archiviazione specificato.
Sintassi
HRESULT GetDataHere(
[in] FORMATETC *pformatetc,
[in, out] STGMEDIUM *pmedium
);
Parametri
[in] pformatetc
Puntatore alla struttura FORMATETC che definisce il formato, il supporto e il dispositivo di destinazione da usare durante il passaggio dei dati. È possibile specificare un solo supporto in tymed e solo i valori seguenti sono validi: TYMED_ISTORAGE, TYMED_ISTREAM, TYMED_HGLOBAL o TYMED_FILE.
[in, out] pmedium
Puntatore alla struttura STGMEDIUM che definisce il supporto di archiviazione contenente i dati trasferiti. Il supporto deve essere allocato dal chiamante e compilato da GetDataHere. Il chiamante deve anche liberare il supporto. L'implementazione di questo metodo deve sempre fornire un valore NULL per il membro punkForRelease della struttura STGMEDIUM a cui punta questo parametro.
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 pformatetc non è valido. |
|
Il valore tymed non è valido. |
|
Il valore dwAspect non è valido. |
|
L'applicazione oggetto non è in esecuzione. |
|
Errore durante l'allocazione del supporto. |
|
Si è verificato un errore imprevisto. |
|
Il parametro dwDirection non è valido. |
|
Memoria insufficiente disponibile per questa operazione. |
Commenti
Il metodo GetDataHere è simile a IDataObject::GetData, ad eccezione del fatto che il chiamante deve allocare e liberare il supporto specificato in pmedium. GetDataHere esegue il rendering dei dati descritti in una struttura FORMATETC e copia i dati in tale struttura STGMEDIUM fornita dal chiamante. Ad esempio, se il supporto è TYMED_HGLOBAL, questo metodo non può ridimensionare il supporto o allocare un nuovo hGlobal.
Alcuni supporti non sono appropriati in una chiamata a GetDataHere, inclusi i tipi GDI, ad esempio i metafile. Il metodo GetDataHere non può inserire dati in un metafile fornito dal chiamante. In generale, l'unico supporto di archiviazione che è necessario supportare in questo metodo è TYMED_ISTORAGE, TYMED_ISTREAM e TYMED_FILE.
Quando il supporto di trasferimento è un flusso, OLE presuppone dove vengono restituiti i dati e la posizione del puntatore di ricerca del flusso. In una chiamata GetData , i dati restituiti provengono dalla posizione del flusso zero fino a poco prima del puntatore di ricerca corrente del flusso, ovvero la posizione all'uscita. Per GetDataHere, i dati restituiti provengono dalla posizione del flusso all'ingresso appena prima della posizione all'uscita.
Requisiti
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 |