Método IDataObject::GetDataHere (objidl.h)
Chamado por um consumidor de dados para obter dados de um objeto de dados de origem. Esse método difere do método GetData em que o chamador deve alocar e liberar o meio de armazenamento especificado.
Sintaxe
HRESULT GetDataHere(
[in] FORMATETC *pformatetc,
[in, out] STGMEDIUM *pmedium
);
Parâmetros
[in] pformatetc
Um ponteiro para a estrutura FORMATETC que define o formato, o dispositivo médio e de destino a ser usado ao passar os dados. Somente um meio pode ser especificado em tymed e somente os seguintes valores são válidos: TYMED_ISTORAGE, TYMED_ISTREAM, TYMED_HGLOBAL ou TYMED_FILE.
[in, out] pmedium
Um ponteiro para a estrutura STGMEDIUM que define o meio de armazenamento que contém os dados que estão sendo transferidos. O meio deve ser alocado pelo chamador e preenchido por GetDataHere. O chamador também deve liberar o meio. A implementação desse método deve sempre fornecer um valor nulo para o membro punkForRelease da estrutura STGMEDIUM à qual esse parâmetro aponta.
Valor retornado
Esse método retorna S_OK com êxito. Outros valores possíveis incluem o seguinte.
Código de retorno | Descrição |
---|---|
|
O valor de lindex não é válido; Atualmente, há suporte apenas para -1. |
|
O valor de pformatetc não é válido. |
|
O valor de tymed não é válido. |
|
O valor dwAspect não é válido. |
|
O aplicativo de objeto não está em execução. |
|
Ocorreu um erro ao alocar o meio. |
|
Ocorreu um erro inesperado. |
|
O parâmetro dwDirection não é válido. |
|
Não havia memória suficiente disponível para esta operação. |
Comentários
O método GetDataHere é semelhante a IDataObject::GetData, exceto que o chamador deve alocar e liberar o meio especificado no pmedium. GetDataHere renderiza os dados descritos em uma estrutura FORMATETC e copia os dados para essa estrutura STGMEDIUM fornecida pelo chamador. Por exemplo, se o meio for TYMED_HGLOBAL, esse método não poderá redimensionar o meio ou alocar um novo hGlobal.
Algumas mídias não são apropriadas em uma chamada para GetDataHere, incluindo tipos de GDI, como metafiles. O método GetDataHere não pode colocar dados em um metarquivo fornecido pelo chamador. Em geral, a única mídia de armazenamento que é necessária para dar suporte nesse método são TYMED_ISTORAGE, TYMED_ISTREAM e TYMED_FILE.
Quando o meio de transferência é um fluxo, o OLE faz suposições sobre onde os dados estão sendo retornados e a posição do ponteiro de busca do fluxo. Em uma chamada GetData , os dados retornados são da posição do fluxo zero até pouco antes do ponteiro de busca atual do fluxo (ou seja, a posição na saída). Para GetDataHere, os dados retornados são da posição do fluxo na entrada até pouco antes da posição na saída.
Requisitos
Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | objidl.h |