Freigeben über


OleCreate-Funktion (ole2.h)

Erstellt ein eingebettetes Objekt, das durch eine CLSID identifiziert wird. Sie verwenden es in der Regel, um das Menüelement zu implementieren, das es dem Endbenutzer ermöglicht, ein neues Objekt einzufügen.

Syntax

HRESULT OleCreate(
  [in]  REFCLSID        rclsid,
  [in]  REFIID          riid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     pFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

Parameter

[in] rclsid

CLSID des eingebetteten Objekts, das erstellt werden soll.

[in] riid

Verweis auf den Bezeichner der Schnittstelle, in der Regel IID_IOleObject (in den OLE-Headern als Schnittstellenbezeichner für IOleObject definiert), über den der Aufrufer mit dem neuen Objekt kommuniziert.

[in] renderopt

Ein Wert aus der ENUMERATION OLERENDER, der die lokal zwischengespeicherten Zeichnungsfunktionen angibt, über die das neu erstellte Objekt verfügen soll. Der ausgewählte OLERENDER-Wert wirkt sich auf die möglichen Werte für den pFormatEtc-Parameter aus.

[in] pFormatEtc

Je nachdem, welches der OLERENDER-Flags als Wert von renderopt verwendet wird, zeigen Sie auf einen der FORMATETC-Enumerationswerte . Einschränkungen finden Sie in der OLERENDER-Enumeration . Dieser Parameter gibt zusammen mit dem renderopt-Parameter an, was das neue Objekt zunächst zwischenspeichern kann.

[in] pClientSite

Wenn OleCreateIOleObject::SetClientSite aufrufen soll, zeigen Sie auf die IOleClientSite-Schnittstelle im Container. Der Wert kann NULL sein. In diesem Fall müssen Sie speziell IOleObject::SetClientSite aufrufen, bevor Sie Vorgänge versuchen.

[in] pStg

Zeiger auf eine instance der IStorage-Schnittstelle für das Speicherobjekt. Dieser Parameter ist möglicherweise nicht NULL.

[out] ppvObj

Adresse der Zeigervariable, die den in riid angeforderten Schnittstellenzeiger empfängt. Nach erfolgreicher Rückgabe enthält *ppvObject den angeforderten Schnittstellenzeiger.

Rückgabewert

Diese Funktion gibt bei Erfolg S_OK zurück und unterstützt den Standardrückgabewert E_OUTOFMEMORY.

Rückgabecode Beschreibung
E_OUTOFMEMORY
Unzureichender Arbeitsspeicher für den Vorgang.

Hinweise

Die OleCreate-Funktion erstellt ein neues eingebettetes Objekt und wird in der Regel aufgerufen, um den Menüelement Neues Objekt einfügen zu implementieren. Wenn OleCreate zurückgibt, ist das erstellte Objekt leer (enthält keine Daten), es sei denn , renderopt ist OLERENDER_DRAW oder OLERENDER_FORMAT und wird geladen. Container rufen dann in der Regel die OleRun-Funktion oder IOleObject::D oVerb auf, um das Objekt für die anfängliche Bearbeitung anzuzeigen.

Der rclsid-Parameter gibt die CLSID des angeforderten Objekts an. CLSIDs registrierter Objekte werden in der Systemregistrierung gespeichert. Wenn ein Anwendungsbenutzer Objekt einfügen auswählt, ermöglicht ein Auswahlfeld dem Benutzer die Auswahl des gewünschten Objekttyps aus denen in der Registrierung. Wenn OleCreate zum Implementieren des Menüelements Objekt einfügen verwendet wird, wird die dem ausgewählten Element zugeordnete CLSID dem rclsid-Parameter von OleCreate zugewiesen.

Der riid-Parameter gibt die Schnittstelle an, die der Client für die Kommunikation mit dem neuen Objekt verwendet. Nach erfolgreicher Rückgabe enthält der ppvObject-Parameter einen Zeiger auf die angeforderte Schnittstelle.

Der Cache des erstellten Objekts enthält Informationen, die eine Darstellung eines eigenständigen Objekts beim Öffnen des Containers ermöglichen. Informationen darüber, was zwischengespeichert werden soll, werden in den Werten renderopt und pFormatetc übergeben. Wenn OleCreate zurückgibt, wird der Cache des erstellten Objekts nicht unbedingt gefüllt. Stattdessen wird der Cache gefüllt, wenn das Objekt zum ersten Mal in den Ausführungszustand wechselt. Der Aufrufer kann nach der Rückgabe von OleCreate und vor der Ausführung des Objekts ein zusätzliches Cachesteuerelement mit einem Aufruf von IOleCache::Cache hinzufügen. Wenn renderopt OLERENDER_DRAW oder OLERENDER_FORMAT ist, erfordert OleCreate , dass das Objekt die IOleCache-Schnittstelle unterstützt. Es gibt keine solche Anforderung für einen anderen Wert von renderopt.

Wenn pClientSite nicht NULL ist, ruft OleCreateIOleObject::SetClientSite über den pClientSite-Zeiger auf. IOleClientSite ist die primäre Schnittstelle, über die ein Objekt Dienste von seinem Container anfordert. Wenn pClientSiteNULL ist, müssen Sie einen bestimmten Aufruf von IOleObject::SetClientSite ausführen, bevor Sie Vorgänge versuchen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ole2.h (einschließlich Ole2.h)
Bibliothek Ole32.lib
DLL Ole32.dll

Weitere Informationen

FORMATETC

IOleClientSite

IOleObject

OLERENDER