Compartilhar via


IDataObject::GetDataHere

Windows Mobile SupportedWindows Embedded CE Supported

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

See Also

Reference

IDataObject::GetData
FORMATETC
STGMEDIUM