Condividi tramite


Metodo IOleObject::InitFromData (oleidl.h)

Inizializza un oggetto appena creato con dati da un oggetto dati specificato, che può risiedere nello stesso contenitore o negli Appunti.

Sintassi

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

Parametri

[in] pDataObject

Puntatore all'interfaccia IDataObject nell'oggetto dati da cui ottenere i dati di inizializzazione. Questo parametro può essere NULL, che indica che il chiamante vuole sapere se è utile provare a inviare dati; ovvero, se il contenitore è in grado di inizializzare un oggetto dai dati passati. L'oggetto dati da passare può essere basato sulla selezione corrente all'interno del documento del contenitore o sui dati trasferiti al contenitore da un'origine esterna.

[in] fCreation

TRUE indica che il contenitore inserisce un nuovo oggetto all'interno di se stesso e inizializza tale oggetto con dati dalla selezione corrente; FALSE indica un trasferimento dati a livello di codice più generale, probabilmente da un'origine diversa dalla selezione corrente.

[in] dwReserved

Questo parametro è riservato e deve essere zero.

Valore restituito

Questo metodo restituisce S_OK se pDataObject non è NULL, l'oggetto ha tentato di inizializzare se stesso dai dati specificati; se pDataObject è NULL, l'oggetto è in grado di tentare un'inizializzazione riuscita. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
S_FALSE
Se pDataObject non è NULL, l'oggetto non ha tentato di inizializzare se stesso; se pDataObject è NULL, l'oggetto non può tentare di inizializzare se stesso dai dati forniti.
E_NOTIMPL
L'oggetto non supporta InitFromData.
OLE_E_NOTRUNNING
L'oggetto non è in esecuzione e pertanto non può eseguire l'operazione.

Commenti

Questo metodo consente a un documento contenitore di inserire all'interno di sé un nuovo oggetto il cui contenuto è basato su una selezione dei dati corrente all'interno del contenitore. Ad esempio, un documento del foglio di calcolo può voler creare un oggetto grafico in base ai dati in un intervallo selezionato di celle.

Usando questo metodo, un contenitore può anche sostituire il contenuto di un oggetto incorporato con i dati trasferiti da un'altra origine. In questo modo è possibile aggiornare un oggetto incorporato.

Note ai chiamanti

Dopo l'inizializzazione, il contenitore deve chiamare IOleObject::GetMiscStatus per controllare il valore del bit di OLEMISC_INSERTNOTREPLACE. Se il bit è attivo, il nuovo oggetto si inserisce seguendo i dati selezionati. Se il bit è disattivato, il nuovo oggetto sostituisce i dati selezionati.

Note per gli implementatori

Un contenitore specifica se basare un nuovo oggetto sulla selezione corrente passando TRUE o FALSE al parametro fCreation .

Se fCreation è TRUE, il contenitore tenta di creare una nuova istanza di un oggetto, inizializzandolo con i dati selezionati specificati dall'oggetto dati.

Se fCreation è FALSE, il chiamante sta tentando di sostituire il contenuto corrente dell'oggetto con quello indicato da pDataObject. I vincoli consueti che si applicano a un oggetto durante un'operazione incolla devono essere applicati qui. Ad esempio, se il tipo dei dati forniti non è accettabile, l'oggetto non deve inizializzare e restituire S_FALSE.

Se l'oggetto restituisce S_FALSE, non può inizializzarsi dai dati forniti.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione oleidl.h

Vedi anche

IDataObject::SetData

Ioleobject

IOleObject::GetMiscStatus