Share via


IOleObject::InitFromData-Methode (oleidl.h)

Initialisiert ein neu erstelltes Objekt mit Daten aus einem angegebenen Datenobjekt, das sich entweder im selben Container oder in der Zwischenablage befinden kann.

Syntax

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

Parameter

[in] pDataObject

Zeiger auf die IDataObject-Schnittstelle für das Datenobjekt, aus dem die Initialisierungsdaten abgerufen werden sollen. Dieser Parameter kann NULL sein, was angibt, dass der Aufrufer wissen möchte, ob es sich lohnt, Daten zu senden. Das heißt, ob der Container ein Objekt aus den an ihn übergebenen Daten initialisieren kann. Das zu übergebende Datenobjekt kann entweder auf der aktuellen Auswahl innerhalb des Containerdokuments oder auf Daten basieren, die von einer externen Quelle an den Container übertragen werden.

[in] fCreation

TRUE gibt an, dass der Container ein neues Objekt in sich selbst einfügt und dieses Objekt mit Daten aus der aktuellen Auswahl initialisiert. FALSE gibt eine allgemeinere programmgesteuerte Datenübertragung an, höchstwahrscheinlich von einer anderen Quelle als der aktuellen Auswahl.

[in] dwReserved

Dieser Parameter ist reserviert und muss null sein.

Rückgabewert

Diese Methode gibt S_OK Wenn pDataObject nicht NULL ist, hat das Objekt erfolgreich versucht, sich aus den bereitgestellten Daten zu initialisieren. Wenn pDataObjectNULL ist, kann das Objekt versuchen, eine erfolgreiche Initialisierung zu versuchen. Weitere mögliche Rückgabewerte:

Rückgabecode Beschreibung
S_FALSE
Wenn pDataObject nicht NULL ist, hat das Objekt nicht versucht, sich selbst zu initialisieren. Wenn pDataObjectNULL ist, kann das Objekt nicht versuchen, sich selbst aus den bereitgestellten Daten zu initialisieren.
E_NOTIMPL
Das -Objekt unterstützt InitFromData nicht.
OLE_E_NOTRUNNING
Das -Objekt wird nicht ausgeführt und kann daher den Vorgang nicht ausführen.

Hinweise

Diese Methode ermöglicht es einem Containerdokument, ein neues Objekt in sich selbst einzufügen, dessen Inhalt auf einer aktuellen Datenauswahl im Container basiert. Beispielsweise kann ein Tabellenkalkulationsdokument ein Graphobjekt basierend auf Daten in einem ausgewählten Zellbereich erstellen.

Mit dieser Methode kann ein Container auch den Inhalt eines eingebetteten Objekts durch Daten ersetzen, die aus einer anderen Quelle übertragen werden. Dies bietet eine bequeme Möglichkeit, ein eingebettetes Objekt zu aktualisieren.

Hinweise für Anrufer

Nach der Initialisierung sollte der Container IOleObject::GetMiscStatus aufrufen, um den Wert des OLEMISC_INSERTNOTREPLACE Bits zu überprüfen. Wenn das Bit aktiviert ist, fügt sich das neue Objekt nach den ausgewählten Daten ein. Wenn das Bit deaktiviert ist, ersetzt das neue Objekt die ausgewählten Daten.

Hinweise für Implementierer

Ein Container gibt an, ob ein neues Objekt auf der aktuellen Auswahl basieren soll, indem entweder TRUE oder FALSE an den fCreation-Parameter übergeben wird.

Wenn fCreationAUF TRUE festgelegt ist, versucht der Container, eine neue instance eines Objekts zu erstellen und es mit den ausgewählten Daten zu initialisieren, die vom Datenobjekt angegeben werden.

Wenn fCreationauf FALSE festgelegt ist, versucht der Aufrufer, den aktuellen Inhalt des Objekts durch den inhalt zu ersetzen, auf den pDataObject verweist. Die üblichen Einschränkungen, die während eines Einfügevorgangs für ein Objekt gelten, sollten hier angewendet werden. Wenn beispielsweise der Typ der bereitgestellten Daten inakzeptabel ist, sollte das Objekt nicht initialisiert werden und S_FALSE zurückgeben.

Wenn das Objekt S_FALSE zurückgibt, kann es sich nicht selbst aus den bereitgestellten Daten initialisieren.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile oleidl.h

Weitere Informationen

IDataObject::SetData

IOleObject

IOleObject::GetMiscStatus