Método IDataObject::GetDataHere (objidl.h)
Lo llama un consumidor de datos para obtener datos de un objeto de datos de origen. Este método difiere del método GetData en que el autor de la llamada debe asignar y liberar el medio de almacenamiento especificado.
Sintaxis
HRESULT GetDataHere(
[in] FORMATETC *pformatetc,
[in, out] STGMEDIUM *pmedium
);
Parámetros
[in] pformatetc
Puntero a la estructura FORMATETC que define el formato, el medio y el dispositivo de destino que se usará al pasar los datos. Solo se puede especificar un medio en tymed y solo los valores siguientes son válidos: TYMED_ISTORAGE, TYMED_ISTREAM, TYMED_HGLOBAL o TYMED_FILE.
[in, out] pmedium
Puntero a la estructura STGMEDIUM que define el medio de almacenamiento que contiene los datos que se transfieren. GetDataHere debe asignar el medio y rellenarlo. El llamador también debe liberar el medio. La implementación de este método siempre debe proporcionar un valor NULL para el miembro punkForRelease de la estructura STGMEDIUM a la que apunta este parámetro.
Valor devuelto
Este método devuelve S_OK cuando funciona correctamente. Otros valores posibles son los siguientes.
Código devuelto | Descripción |
---|---|
|
El valor de lindex no es válido; actualmente, solo se admite -1. |
|
El valor de pformatetc no es válido. |
|
El valor tymed no es válido. |
|
El valor dwAspect no es válido. |
|
La aplicación de objeto no se está ejecutando. |
|
Error al asignar el medio. |
|
Se produjo un error inesperado. |
|
El parámetro dwDirection no es válido. |
|
No había suficiente memoria disponible para esta operación. |
Comentarios
El método GetDataHere es similar a IDataObject::GetData, salvo que el autor de la llamada debe asignar y liberar el medio especificado en pmedium. GetDataHere representa los datos descritos en una estructura FORMATETC y copia los datos en esa estructura STGMEDIUM proporcionada por el autor de la llamada. Por ejemplo, si el medio es TYMED_HGLOBAL, este método no puede cambiar el tamaño del medio ni asignar un nuevo hGlobal.
Algunos medios no son adecuados en una llamada a GetDataHere, incluidos los tipos GDI, como los metarchivos. El método GetDataHere no puede colocar datos en un metarchivo proporcionado por el autor de la llamada. En general, los únicos medios de almacenamiento que es necesario admitir en este método son TYMED_ISTORAGE, TYMED_ISTREAM y TYMED_FILE.
Cuando el medio de transferencia es una secuencia, OLE realiza suposiciones sobre dónde se devuelven los datos y la posición del puntero de búsqueda de la secuencia. En una llamada GetData , los datos devueltos son de la posición cero de la secuencia hasta justo antes del puntero de búsqueda actual de la secuencia (es decir, la posición en la salida). Para GetDataHere, los datos devueltos proceden de la posición de la secuencia en la entrada justo antes de la posición en la salida.
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | objidl.h |