IDataObject::GetData
9/8/2008
Este método é chamado por um consumidor dados para obter dados de uma objeto de dados origem. O GetData método processa os dados descritos especificado FORMATETC estrutura e transfere-la por meio especificado STGMEDIUM estrutura. O chamador, em seguida, assume responsabilidade para liberar o STGMEDIUM estrutura.
Syntax
HRESULT GetData(
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. É possível especificar mais de uma mídia usando o Boolean Ou operador, permitindo que o método para escolher o melhor meio entre aqueles especificados.
pmedium
[out] Ponteiro para o STGMEDIUM estrutura que indica o meio de armazenamento que contém os dados retornados por meio seu TYMED membro e a responsabilidade para liberar a mídia por meio de valor do seu pUnkForRelease membro.Se pUnkForRelease é NULL, o receptor de médio porte é responsável por liberando-lo; caso contrário, pUnkForRelease aponta para o IUnknown interface sobre o apropriado objeto para sua Lançamento método pode ser chamado.
A mídia deve ser alocada e preenchida por IDataObject::GetData.
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 |
Erro ao alocar a mídia. |
Remarks
Chama um consumidor dados IDataObject::GetData Para recuperar dados de uma objeto de dados, transmitidas através um meio de armazenamento (definido por meio de STGMEDIUM estrutura).
Notas para chamadores
Você pode especificar mais de um aceitável TYMED mídia com o Boolean Ou operador. IDataObject::GetData deve escolher a mídia que melhor representa os dados a partir de Ou Valores, faça a alocação e indicar responsabilidade para liberar a mídia.
Dados transferidos entre um transmitir se estende da posição zero do ponteiro transmitir através para a posição imediatamente antes de atual ponteiro transmitir (that is, a transmitir ponteiro posição no sair).
Para determinar se a plataforma oferece suporte a esta interface, consulte Determinando suporte COM APIs.
Notas para Implementers
IDataObject::GetData deve verificar todos os campos na FORMATETC estrutura. É importante que IDataObject::GetData processar o aspecto solicitado e, se possível, usar a mídia solicitada.
Se o objeto de dados não é possível obedecer as informações especificadas na FORMATETC, o método deve retornar DV_E_FORMATETC.
Se uma tentativa de alocar a mídia falhar, o método deve retornar STG_E_MEDIUMFULL.
É importante para preencher em todos os campos a STGMEDIUM estrutura.
Embora o chamador pode especificar mais de um meio para retornar os dados, IDataObject::GetData pode fornecer apenas uma média.
Se a transferir inicial falhar com a mídia selecionada, este método pode ser implementado para tentar uma das outras mídias especificadas antes de retornar um erro.
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 |
See Also
Reference
IDataObject::GetDataHere
IDataObject::SetData
FORMATETC
STGMEDIUM