Compartilhar via


Método IOleObject::InitFromData (oleidl.h)

Inicializa um objeto recém-criado com dados de um objeto de dados especificado, que pode residir no mesmo contêiner ou na Área de Transferência.

Sintaxe

HRESULT InitFromData(
  [in] IDataObject *pDataObject,
  [in] BOOL        fCreation,
  [in] DWORD       dwReserved
);

Parâmetros

[in] pDataObject

Ponteiro para a interface IDataObject no objeto de dados do qual os dados de inicialização devem ser obtidos. Esse parâmetro pode ser NULL, o que indica que o chamador deseja saber se vale a pena tentar enviar dados; ou seja, se o contêiner é capaz de inicializar um objeto de dados passados para ele. O objeto de dados a ser passado pode ser baseado na seleção atual dentro do documento de contêiner ou nos dados transferidos para o contêiner de uma fonte externa.

[in] fCreation

TRUE indica que o contêiner está inserindo um novo objeto dentro de si e inicializando esse objeto com dados da seleção atual; FALSE indica uma transferência de dados programática mais geral, provavelmente de uma fonte diferente da seleção atual.

[in] dwReserved

Esse parâmetro é reservado e precisa ser zero.

Valor retornado

Esse método retorna S_OK se pDataObject não for NULL, o objeto tentou se inicializar com êxito dos dados fornecidos; se pDataObject for NULL, o objeto poderá tentar uma inicialização bem-sucedida. Outros valores retornados possíveis incluem o seguinte.

Código de retorno Descrição
S_FALSE
Se pDataObject não for NULL, o objeto não tentará inicializar a si mesmo; se pDataObject for NULL, o objeto não poderá tentar se inicializar dos dados fornecidos.
E_NOTIMPL
O objeto não dá suporte a InitFromData.
OLE_E_NOTRUNNING
O objeto não está em execução e, portanto, não pode executar a operação.

Comentários

Esse método permite que um documento de contêiner insira dentro de si um novo objeto cujo conteúdo se baseia em uma seleção de dados atual dentro do contêiner. Por exemplo, um documento de planilha pode querer criar um objeto de grafo com base em dados em um intervalo selecionado de células.

Usando esse método, um contêiner também pode substituir o conteúdo de um objeto inserido por dados transferidos de outra fonte. Isso fornece uma maneira conveniente de atualizar um objeto inserido.

Anotações aos Chamadores

Após a inicialização, o contêiner deve chamar IOleObject::GetMiscStatus para marcar o valor do OLEMISC_INSERTNOTREPLACE bit. Se o bit estiver ativado, o novo objeto se inserirá seguindo os dados selecionados. Se o bit estiver desativado, o novo objeto substituirá os dados selecionados.

Observações aos implementadores

Um contêiner especifica se um novo objeto deve ser base na seleção atual passando TRUE ou FALSE para o parâmetro fCreation .

Se fCreation for TRUE, o contêiner tentará criar uma nova instância de um objeto, inicializando-a com os dados selecionados especificados pelo objeto de dados.

Se fCreation for FALSE, o chamador está tentando substituir o conteúdo atual do objeto pelo apontado por pDataObject. As restrições usuais que se aplicam a um objeto durante uma operação de colagem devem ser aplicadas aqui. Por exemplo, se o tipo dos dados fornecidos for inaceitável, o objeto não deverá inicializar e retornar S_FALSE.

Se o objeto retornar S_FALSE, ele não poderá se inicializar dos dados fornecidos.

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 oleidl.h

Confira também

IDataObject::SetData

Ioleobject

IOleObject::GetMiscStatus