Función CoGetApartmentType (combaseapi.h)
Devuelve el tipo de apartamento actual y el calificador de tipo.
Sintaxis
HRESULT CoGetApartmentType(
[out] APTTYPE *pAptType,
[out] APTTYPEQUALIFIER *pAptQualifier
);
Parámetros
[out] pAptType
Valor de enumeración APTTYPE que especifica el tipo del apartamento actual.
[out] pAptQualifier
Valor de enumeración APTTYPEQUALIFIER que especifica el calificador de tipo del apartamento actual.
Valor devuelto
Devuelve S_OK si la llamada se realizó correctamente. De lo contrario, se devuelve uno de los siguientes códigos de error.
Código devuelto | Descripción |
---|---|
|
La llamada no pudo consultar correctamente el tipo de apartamento actual y el calificador de tipo. |
|
Se proporcionó un valor de parámetro no válido a la función . En concreto, el autor de la llamada estableció uno o ambos parámetros en NULL . |
|
No se llamó a CoInitialize o CoInitializeEx en este subproceso antes de llamar a CoGetApartmentType. |
Comentarios
En las plataformas Windows anteriores a Windows 7, se deben realizar las siguientes acciones en un subproceso para consultar el tipo de apartamento:
- Llame a CoGetContextToken para obtener el token de contexto actual.
- Convierta el token de contexto en un puntero IUnknown*.
- Llame al método QueryInterface en ese puntero para obtener la interfaz IComThreadingInfo .
- Llame al método GetCurrentApartmentType de la interfaz IComThreadingInfo para obtener el tipo de apartamento actual.
En escenarios multiproceso, hay una condición de carrera que puede provocar una infracción de acceso dentro del proceso al ejecutar la secuencia de operaciones anterior. Se recomienda la función CoGetApartmentType , ya que no incurre en la infracción de acceso.
Requisitos
Cliente mínimo compatible | Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | combaseapi.h (incluya Objbase.h) |
Library | Ole32.lib |
Archivo DLL | Ole32.dll |