CoGetDefaultContext, fonction (combaseapi.h)
Récupère une référence au contexte par défaut de l’appartement spécifié.
Syntaxe
HRESULT CoGetDefaultContext(
[in] APTTYPE aptType,
[in] REFIID riid,
[out] void **ppv
);
Paramètres
[in] aptType
Type d’appartement du contexte par défaut demandé. Ce paramètre peut prendre les valeurs suivantes.
La valeur APTTYPE APTTYPE_STA (0) n’est pas prise en charge. Un processus peut contenir plusieurs appartements à thread unique, chacun avec son propre contexte, de sorte que CoGetDefaultContext n’a pas pu déterminer quel sta est intéressant. Par conséquent, cette fonction retourne E_INVALIDARG si APTTYPE_STA est spécifié.
[in] riid
Identificateur d’interface (IID) de l’interface demandée sur le contexte par défaut. En règle générale, l’appelant demande IID_IObjectContext. Le contexte par défaut ne prend pas en charge toutes les interfaces de contexte d’objet normales.
[out] ppv
Référence à l’interface spécifiée par riid sur le contexte par défaut. Si le composant de l’objet n’est pas configuré (autrement dit, le composant de l’objet n’a pas été importé dans une application COM+), ou si la fonction CoGetDefaultContext est appelée à partir d’un constructeur ou d’une méthode IUnknown , ce paramètre est défini sur un pointeur NULL .
Valeur retournée
Cette méthode peut retourner les valeurs suivantes.
Code de retour | Description |
---|---|
|
La commande s'est correctement terminée. |
|
L’un des paramètres n’est pas valide. |
|
L’appelant n’est pas dans un appartement initialisé. |
|
Le contexte de l’objet ne prend pas en charge l’interface spécifiée par riid. |
Remarques
Chaque appartement COM a un contexte spécial appelé contexte par défaut. Un contexte par défaut est différent de tous les autres contextes non par défaut d’un appartement, car il ne fournit pas de services d’exécution. Il ne prend pas en charge toutes les interfaces de contexte d’objet normales.
Le contexte par défaut est également utilisé par les instances de composants COM non configurés (c’est-à-dire les composants qui n’ont pas fait partie d’une application COM+), lorsqu’ils sont créés à partir d’un appartement qui ne prend pas en charge leur modèle de threading. En d’autres termes, si un objet COM crée une instance d’un composant non configuré et que le nouvel objet ne peut pas être ajouté au contexte de son créateur en raison de son modèle de threading, le nouvel objet est ajouté au contexte par défaut d’un appartement qui prend en charge son modèle de threading.
Un objet ne doit jamais passer une référence IObjectContext à un autre objet. Si vous passez une référence IObjectContext à un autre objet, il ne s’agit plus d’une référence valide.
Lorsqu’un objet obtient une référence à un IObjectContext, il doit libérer l’objet IObjectContext lorsqu’il est terminé.
Configuration requise
Client minimal pris en charge | Windows XP [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2003 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | combaseapi.h |
Bibliothèque | Ole32.lib |
DLL | Ole32.dll |