Share via


IOleItemContainer::GetObject-Methode (oleidl.h)

Ruft einen Zeiger auf das angegebene Objekt ab.

Syntax

HRESULT GetObject(
  [in]  LPOLESTR pszItem,
  [in]  DWORD    dwSpeedNeeded,
  [in]  IBindCtx *pbc,
  [in]  REFIID   riid,
  [out] void     **ppvObject
);

Parameter

[in] pszItem

Der Name des Containers für das angeforderte Objekt.

[in] dwSpeedNeeded

Gibt ungefähr an, wie lange der Aufrufer auf den Abruf des Objekts wartet. Mögliche Werte werden der Enumeration BINDSPEED entnommen.

[in] pbc

Ein Zeiger auf die IBindCtx-Schnittstelle für das Bindungskontextobjekt, das in diesem Bindungsvorgang verwendet werden soll. Der Bindungskontext zwischenspeichert Objekte, die während des Bindungsprozesses gebunden sind, enthält Parameter, die für alle Vorgänge gelten, die den Bindungskontext verwenden, und stellt die Mittel bereit, mit denen die Bindungsimplementierung Informationen zu ihrer Umgebung abrufen soll.

[in] riid

Ein Verweis auf den Bezeichner des angeforderten Schnittstellenzeigers.

[out] ppvObject

Adresse der Zeigervariable, die den in riid angeforderten Schnittstellenzeiger empfängt. Nach erfolgreicher Rückgabe enthält *ppvObject den angeforderten Schnittstellenzeiger auf das Objekt namens pszItem. Bei erfolgreicher Implementierung muss AddRef für das *ppvObject aufgerufen werden. Es liegt in der Verantwortung des Aufrufers , Release aufzurufen. Wenn ein Fehler auftritt, legt die Implementierung *ppvObject auf NULL fest.

Rückgabewert

Diese Methode kann den Standardrückgabewert E_OUTOFMEMORY sowie die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
MK_E_EXCEEDEDDEADLINE
Der Bindungsvorgang konnte nicht innerhalb des durch die BIND_OPTS-Struktur des Bindungskontexts angegebenen Zeitlimits oder mit der vom dwSpeedNeeded-Parameter angegebenen Geschwindigkeit abgeschlossen werden.
MK_E_NOOBJECT
Der Parameter pszItem identifiziert kein Objekt in diesem Container.
E_NOINTERFACE
Die angeforderte Schnittstelle war nicht verfügbar.

Hinweise

Die Elementmonikerimplementierung von IMoniker::BindToObject ruft diese Methode auf und übergibt den im Elementmoniker gespeicherten Namen als pszItem-Parameter .

Hinweise zu Implementierern

Ihre Implementierung von IOleItemContainer::GetObject sollte zunächst bestimmen, ob pszItem ein gültiger Name für eines der Containerobjekte ist. Andernfalls sollten Sie MK_E_NOOBJECT zurückgeben.

Wenn pszItem ein eingebettetes oder verknüpftes Objekt benennt, muss Ihre Implementierung den Wert des dwSpeedNeeded-Parameters überprüfen. Wenn der Wert BINDSPEED_IMMEDIATE ist und das Objekt noch nicht geladen ist, sollten Sie MK_E_EXCEEDEDDEADLINE zurückgeben. Wenn das Objekt geladen wird, sollte Ihre Implementierung bestimmen, ob das Objekt ausgeführt wird (z. B. durch Aufrufen der OleIsRunning-Funktion ). Wenn sie nicht ausgeführt wird und der dwSpeedNeeded-Wert BINDSPEED_MODERATE ist, sollte Ihre Implementierung MK_E_EXCEEDEDDEADLINE zurückgeben. Wenn das Objekt nicht ausgeführt wird und dwSpeedNeeded BINDSPEED_INDEFINITE ist, sollte Ihre Implementierung die OleRun-Funktion aufrufen, um das Objekt in den Ausführungszustand zu versetzen. Anschließend kann das Objekt für die angeforderte Schnittstelle abgefragt werden. Beachten Sie, dass es wichtig ist, dass das Objekt ausgeführt wird, bevor Sie die Schnittstelle abfragen.

Wenn pszItem ein Pseudoobjekt benennt, kann Ihre Implementierung den dwSpeedNeeded-Parameter ignorieren, da ein Pseudoobjekt immer dann ausgeführt wird, wenn sein Container ausgeführt wird. In diesem Fall kann Ihre Implementierung einfach die angeforderte Schnittstelle abfragen.

Wenn Sie spezifischere Informationen zum Zeitlimit benötigen, als von dwSpeedNeeded angegeben wird, können Sie IBindCtx::GetBindOptions für den pbc-Parameter aufrufen, um den tatsächlichen Deadline-Parameter abzurufen.

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

Weitere Informationen

IOleItemContainer