IDataObject::GetDataHere
9/8/2008
Este método é chamado por um consumidor dados para obter dados de uma objeto de dados origem. Esse método difere de GetData método em que o chamador deve alocar e livre de meio de armazenamento especificado.
Syntax
HRESULT GetDataHere(
FORMATETC* pFormatetc,
STGMEDIUM* pmedium
);
Parameters
pFormatetc
[no] Ponteiro para o FORMATETC estrutura que define o formato, médio e dispositivo destino para usar ao passar os dados.Apenas uma mídia pode ser especificada no TYMED.
Oomente os seguinte TYMED Os valores são válido: TYMED_STORAGE, TYMED_STREAM, TYMED_HGLOBAL e TYMED_FILE.
pmedium
[in, Out] Ponteiro para o STGMEDIUM estrutura que define o meio de armazenamento que contém os dados que estão sendo transferidos.A mídia deve ser alocada pelo chamador e preenchida por IDataObject::GetDataHere.
O chamador deve também livre de médio porte.
A implementação desse método deve sempre fornecer um valor de NULL para a punkForRelease membro das STGMEDIUM estrutura para o qual este parâmetro aponta.
Return Value
Este método oferece suporte a padrão retornam valores E_INVALIDARG, E_UNEXPECTED e E_OUTOFMEMORY.
A seguinte tabela mostra os adicionais retornam valores para este método.
Valor | Descrição |
---|---|
S_OK |
Dados com êxito foi recuperados e colocados na meio de armazenamento fornecido. |
DV_E_LINDEX |
Valor inválido para lIndex; Atualmente, somente-1 é com suporte. |
DV_E_FORMATETC |
Valor inválido para pFormatetc. |
DV_E_TYMED |
Inválido TYMED valor. |
DV_E_DVASPECT |
Inválido dwAspect valor. |
OLE_E_NOTRUNNING |
O aplicativo objeto não execução. |
STG_E_MEDIUMFULL |
A mídia fornecida pelo chamador não é grande o suficiente para conter os dados. |
Remarks
O IDataObject::GetDataHere método é semelhante a IDataObject::GetData, exceto pelo fato de que o chamador deve ambos alocar e livre a mídia especificada na pmedium. GetDataHere processa os dados descritos em um FORMATETC estrutura e copia os dados em que chamador - fornecido STGMEDIUM estrutura.
De exemplo, se a mídia for TYMED_HGLOBAL, este método não é possível redimensionar a mídia ou alocar um novo hGlobal.
Algumas mídias não são apropriado em um chamar para GetDataHere, incluindo tipos GDI como metarquivos. O GetDataHere método não pode pôr dados em um metarquivo Caller-provided.
Em geral, mídia de armazenamento somente é necessário para suporte nesse método são TYMED_ISTORAGE, TYMED_ISTREAM e TYMED_FILE.
Quando a mídia transferir é um transmitir, OLE faz suposições sobre onde os dados está sendo retornados e a posição do ponteiro buscar da transmitir.
Em um GetData chamar, os dados retornados é de transmitir posição zero através de imediatamente antes de atual ponteiro buscar da transmitir (that is, a posição em sair).
Para GetDataHere, os dados retornados é de posição de transmitir na entrada por meio imediatamente antes de posição em sair.
Para determinar se a plataforma oferece suporte a esta interface, consulte Determinando suporte COM APIs.
Requirements
Header | objidl.h, objidl.idl |
Library | ole32.lib, uuid.lib |
Windows Embedded CE | Windows CE 3.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |