Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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 |