Función CoGetDefaultContext (combaseapi.h)
Recupera una referencia al contexto predeterminado del apartamento especificado.
Sintaxis
HRESULT CoGetDefaultContext(
[in] APTTYPE aptType,
[in] REFIID riid,
[out] void **ppv
);
Parámetros
[in] aptType
Tipo de apartamento del contexto predeterminado que se solicita. Este parámetro puede ser uno de los valores siguientes.
No se admite el valor APTTYPE APTTYPE_STA (0). Un proceso puede contener varios apartamentos de un solo subproceso, cada uno con su propio contexto, por lo que CoGetDefaultContext no pudo determinar qué STA es de interés. Por lo tanto, esta función devuelve E_INVALIDARG si se especifica APTTYPE_STA.
[in] riid
Identificador de interfaz (IID) de la interfaz que se solicita en el contexto predeterminado. Normalmente, el autor de la llamada solicita IID_IObjectContext. El contexto predeterminado no admite todas las interfaces de contexto de objeto normales.
[out] ppv
Referencia a la interfaz especificada por riid en el contexto predeterminado. Si el componente del objeto no está configurado (es decir, el componente del objeto no se ha importado en una aplicación COM+), o si se llama a la función CoGetDefaultContext desde un constructor o un método IUnknown , este parámetro se establece en un puntero NULL .
Valor devuelto
Este método puede devolver los valores siguientes.
Código devuelto | Descripción |
---|---|
|
El método se completó correctamente. |
|
Uno de los parámetros no es válido. |
|
El autor de la llamada no está en un apartamento inicializado. |
|
El contexto del objeto no admite la interfaz especificada por riid. |
Comentarios
Cada apartamento COM tiene un contexto especial denominado contexto predeterminado. Un contexto predeterminado es diferente del resto de contextos no predeterminados de un apartamento porque no proporciona servicios en tiempo de ejecución. No admite todas las interfaces de contexto de objeto normales.
Las instancias de componentes COM no configurados también usan el contexto predeterminado (es decir, los componentes que no han sido parte de una aplicación COM+), cuando se crean a partir de un apartamento que no admite su modelo de subprocesos. En otras palabras, si un objeto COM crea una instancia de un componente no configurado y el nuevo objeto no se puede agregar al contexto de su creador debido a su modelo de subprocesos, el nuevo objeto se agrega en su lugar al contexto predeterminado de un apartamento que admite su modelo de subprocesos.
Un objeto nunca debe pasar una referencia de IObjectContext a otro objeto. Si pasa una referencia IObjectContext a otro objeto, ya no es una referencia válida.
Cuando un objeto obtiene una referencia a un IObjectContext, debe liberar el objeto IObjectContext cuando haya terminado con él.
Requisitos
Cliente mínimo compatible | Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2003 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | combaseapi.h |
Library | Ole32.lib |
Archivo DLL | Ole32.dll |
Consulte también
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de