Freigeben über


CoGetDefaultContext-Funktion (combaseapi.h)

Ruft einen Verweis auf den Standardkontext des angegebenen Apartments ab.

Syntax

HRESULT CoGetDefaultContext(
  [in]  APTTYPE aptType,
  [in]  REFIID  riid,
  [out] void    **ppv
);

Parameter

[in] aptType

Der Apartmenttyp des angeforderten Standardkontexts. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
APTTYPE_CURRENT
-1
Die Wohnung des Anrufers.
APTTYPE_MTA
1
Das Multithread-Apartment für den aktuellen Prozess.
APTTYPE_NA
2
Die neutrale Wohnung für den aktuellen Prozess.
APTTYPE_MAINSTA
3
Die Standard Singlethread-Apartment für den aktuellen Prozess.
 

Der APTTYPE-Wert APTTYPE_STA (0) wird nicht unterstützt. Ein Prozess kann mehrere Singlethread-Apartments mit jeweils eigenem Kontext enthalten, sodass CoGetDefaultContext nicht bestimmen konnte, welche STA von Interesse ist. Daher gibt diese Funktion E_INVALIDARG zurück, wenn APTTYPE_STA angegeben ist.

[in] riid

Der Schnittstellenbezeichner (INTERFACE Identifier, IID) der Schnittstelle, die im Standardkontext angefordert wird. In der Regel fordert der Aufrufer IID_IObjectContext an. Der Standardkontext unterstützt nicht alle normalen Objektkontextschnittstellen.

[out] ppv

Ein Verweis auf die von riid im Standardkontext angegebene Schnittstelle. Wenn die Komponente des Objekts nicht konfiguriert ist (d. h. die Komponente des Objekts wurde nicht in eine COM+-Anwendung importiert), oder wenn die CoGetDefaultContext-Funktion von einem Konstruktor oder einer IUnknown-Methode aufgerufen wird, wird dieser Parameter auf einen NULL-Zeiger festgelegt.

Rückgabewert

Diese Methode kann die folgenden Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich abgeschlossen.
E_INVALIDARG
Einer der Parameter ist ungültig.
CO_E_NOTINITIALIZED
Der Anrufer befindet sich nicht in einer initialisierten Wohnung.
E_NOINTERFACE
Der Objektkontext unterstützt die durch riid angegebene Schnittstelle nicht.

Hinweise

Jedes COM-Apartment verfügt über einen speziellen Kontext, der als Standardkontext bezeichnet wird. Ein Standardkontext unterscheidet sich von allen anderen, nicht standardmäßigen Kontexten in einem Apartment, da er keine Laufzeitdienste bereitstellt. Es werden nicht alle normalen Objektkontextschnittstellen unterstützt.

Der Standardkontext wird auch von Instanzen nicht konfigurierter COM-Komponenten (d. h. Komponenten, die nicht Teil einer COM+-Anwendung waren) verwendet, wenn sie aus einem Apartment erstellt werden, das ihr Threadingmodell nicht unterstützt. Anders ausgedrückt: Wenn ein COM-Objekt eine instance einer nicht konfigurierten Komponente erstellt und das neue Objekt aufgrund seines Threadingmodells nicht dem Kontext des Erstellers hinzugefügt werden kann, wird das neue Objekt stattdessen dem Standardkontext eines Apartments hinzugefügt, das das Threadingmodell unterstützt.

Ein Objekt sollte niemals einen IObjectContext-Verweis an ein anderes Objekt übergeben. Wenn Sie einen IObjectContext-Verweis an ein anderes Objekt übergeben, ist er kein gültiger Verweis mehr.

Wenn ein Objekt einen Verweis auf ein IObjectContext erhält, muss es das IObjectContext-Objekt freigeben, wenn es damit fertig ist.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile combaseapi.h
Bibliothek Ole32.lib
DLL Ole32.dll

Weitere Informationen

COM+-Kontexte und Threadingmodelle