CoGetApartmentType-Funktion (combaseapi.h)
Gibt den aktuellen Apartmenttyp und den Typqualifizierer zurück.
Syntax
HRESULT CoGetApartmentType(
[out] APTTYPE *pAptType,
[out] APTTYPEQUALIFIER *pAptQualifier
);
Parameter
[out] pAptType
APTTYPE-Enumerationswert , der den Typ des aktuellen Apartments angibt.
[out] pAptQualifier
APTTYPEQUALIFIER-Enumerationswert , der den Typqualifizierer der aktuellen Wohnung angibt.
Rückgabewert
Gibt S_OK zurück, wenn der Aufruf erfolgreich war. Andernfalls wird einer der folgenden Fehlercodes zurückgegeben.
Rückgabecode | Beschreibung |
---|---|
|
Der Aufruf konnte den aktuellen Apartmenttyp und den Typqualifizierer nicht erfolgreich abfragen. |
|
Für die Funktion wurde ein ungültiger Parameterwert angegeben. Insbesondere wurde einer oder beide Parameter vom Aufrufer auf NULL festgelegt. |
|
CoInitialize oder CoInitializeEx wurde vor dem Aufrufen von CoGetApartmentType nicht für diesen Thread aufgerufen. |
Hinweise
Auf Windows-Plattformen vor Windows 7 müssen die folgenden Aktionen für einen Thread ausgeführt werden, um den Apartmenttyp abzufragen:
- Rufen Sie CoGetContextToken auf, um das aktuelle Kontexttoken abzurufen.
- Wandeln Sie das Kontexttoken in einen IUnknown*-Zeiger um.
- Rufen Sie die QueryInterface-Methode für diesen Zeiger auf, um die IComThreadingInfo-Schnittstelle abzurufen.
- Rufen Sie die GetCurrentApartmentType-Methode der IComThreadingInfo-Schnittstelle auf, um den aktuellen Apartmenttyp abzurufen.
In Multithreadszenarien gibt es eine Racebedingung, die beim Ausführen der oben genannten Vorgangssequenz möglicherweise eine Zugriffsverletzung innerhalb des Prozesses verursachen kann. Die CoGetApartmentType-Funktion wird empfohlen, da die Zugriffsverletzung möglicherweise nicht auftritt.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 7 [Desktop-Apps | UWP-Apps] |
Unterstützte Mindestversion (Server) | Windows Server 2008 R2 [Desktop-Apps | UWP-Apps] |
Zielplattform | Windows |
Kopfzeile | combaseapi.h (include Objbase.h) |
Bibliothek | Ole32.lib |
DLL | Ole32.dll |