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 |
---|---|
|
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 |