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.
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 |
---|---|
|
Die Methode wurde erfolgreich abgeschlossen. |
|
Einer der Parameter ist ungültig. |
|
Der Anrufer befindet sich nicht in einer initialisierten Wohnung. |
|
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 |