Méthode IConsoleNameSpace2 ::AddExtension (mmc.h)
La méthode IConsoleNameSpace2 ::AddExtension permet au composant logiciel enfichable d’ajouter un composant logiciel enfichable d’extension qui étend dynamiquement l’espace de noms d’un élément sélectionné.
Syntaxe
HRESULT AddExtension(
[in] HSCOPEITEM hItem,
[in] LPCLSID lpClsid
);
Paramètres
[in] hItem
Handle de l’élément à étendre avec le composant logiciel enfichable spécifié par lpClsid.
[in] lpClsid
Pointeur vers le CLSID du composant logiciel enfichable qui étend l’espace de noms de l’élément spécifié par hItem.
Valeur retournée
Cette méthode peut retourner l’une de ces valeurs.
Remarques
Lorsqu’un composant logiciel enfichable appelle la méthode AddExtension, l’extension d’espace de noms spécifiée par lpClsid étend uniquement la instance spécifique de l’élément spécifié par hItem. Les autres éléments de ce type ne sont pas affectés : l’appel de AddExtension n’est pas identique à l’utilisation du gestionnaire de composant logiciel enfichable pour ajouter une extension à un composant logiciel enfichable. En utilisant le gestionnaire de composants logiciels enfichables pour ajouter une extension à un composant logiciel enfichable, l’extension est ajoutée à toutes les instances de composants logiciels enfichables de ce type.
En outre, la méthode AddExtension fonctionne uniquement pour les éléments qui appartiennent directement au composant logiciel enfichable qui effectue l’appel AddExtension. Par exemple, si un composant logiciel enfichable a une extension d’espace de noms qui ajoute un élément à son espace de noms, le composant logiciel enfichable ne peut pas appeler AddExtension pour l’élément fourni par l’extension d’espace de noms, car le composant logiciel enfichable ne possède pas cet élément.
Un emplacement courant pour ajouter des extensions d’espace de noms dynamiques se trouve dans le gestionnaire de notification MMCN_EXPAND de l’objet IComponentData du composant logiciel enfichable.
Si un composant logiciel enfichable d’extension est destiné à être utilisé uniquement comme extension dynamique, ce composant logiciel enfichable d’extension ne doit pas être répertorié dans la zone de liste Extensions disponibles lorsque le composant logiciel enfichable principal est sélectionné dans la zone Composant logiciel enfichable qui peut être étendu sur la page extensions du gestionnaire de composants logiciels enfichables. Pour masquer une extension dans le gestionnaire de composants logiciels enfichables, ajoutez la clé « Extensions dynamiques » à la clé qui représente le type de nœud de l’élément que vous souhaitez étendre. Placez ensuite les CLSID des composants logiciels enfichables qui doivent uniquement étendre dynamiquement le type de nœud en tant que valeurs sous la nouvelle clé.
Exemples
L’exemple de code suivant ajoute le composant logiciel enfichable d’extension spécifié par CLSID_Extension :
IConsoleNameSpace2* pExtensions = NULL;
HRESULT hr = m_pConsole->QueryInterface(IID_IConsoleNameSpace2, reinterpret_cast<void**>(&pExtensions));
if (SUCCEEDED(hr))
{
hr = pExtensions->AddExtension(m_pStaticRoot, const_cast<CLSID*>(&CLSID_Extension));
ASSERT(hr == S_OK);
pExtensions->Release();
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | mmc.h |
DLL | Mmcndmgr.dll |