Поделиться через


Функция CoGetApartmentType (combaseapi.h)

Возвращает текущий тип квартиры и квалификатор типа.

Синтаксис

HRESULT CoGetApartmentType(
  [out] APTTYPE          *pAptType,
  [out] APTTYPEQUALIFIER *pAptQualifier
);

Параметры

[out] pAptType

Значение перечисления APTTYPE, указывающее тип текущего подразделения.

[out] pAptQualifier

Значение перечисления APTTYPEQUALIFIER, указывающее квалификатор типа текущего подразделения.

Возвращаемое значение

Возвращает S_OK, если вызов выполнен успешно. В противном случае возвращается один из следующих кодов ошибок.

Код возврата Описание
E_FAIL
Вызову не удалось успешно запросить текущий тип подразделения и квалификатор типа.
E_INVALIDARG
Для функции было предоставлено недопустимое значение параметра. В частности, для одного или обоих параметров вызывающий объект задал значение NULL .
CO_E_NOTINITIALIZED

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

См. также раздел

APTTYPE

APTTYPEQUALIFIER