Функция CoGetApartmentType (combaseapi.h)
Возвращает текущий тип квартиры и квалификатор типа.
Синтаксис
HRESULT CoGetApartmentType(
[out] APTTYPE *pAptType,
[out] APTTYPEQUALIFIER *pAptQualifier
);
Параметры
[out] pAptType
Значение перечисления APTTYPE, указывающее тип текущего подразделения.
[out] pAptQualifier
Значение перечисления APTTYPEQUALIFIER, указывающее квалификатор типа текущего подразделения.
Возвращаемое значение
Возвращает S_OK, если вызов выполнен успешно. В противном случае возвращается один из следующих кодов ошибок.
Код возврата | Описание |
---|---|
|
Вызову не удалось успешно запросить текущий тип подразделения и квалификатор типа. |
|
Для функции было предоставлено недопустимое значение параметра. В частности, для одного или обоих параметров вызывающий объект задал значение NULL . |
|
CoInitialize или CoInitializeEx не вызывался в этом потоке до вызова CoGetApartmentType. |
Комментарии
На платформах Windows до Windows 7 необходимо выполнить следующие действия в потоке, чтобы запросить тип квартиры:
- Вызовите CoGetContextToken , чтобы получить текущий маркер контекста.
- Приведите маркер контекста к указателю IUnknown*.
- Вызовите метод QueryInterface для этого указателя, чтобы получить интерфейс IComThreadingInfo .
- Вызовите метод GetCurrentApartmentType интерфейса IComThreadingInfo , чтобы получить текущий тип квартиры.
В многопоточных сценариях существует состояние гонки, которое может привести к нарушению доступа в процессе при выполнении указанной выше последовательности операций. Рекомендуется использовать функцию CoGetApartmentType , так как она не может привести к нарушению доступа.
Требования
Минимальная версия клиента | Windows 7 [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 R2 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | combaseapi.h (включая Objbase.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |