Método IConsoleNameSpace2::AddExtension (mmc.h)
El método IConsoleNameSpace2::AddExtension permite al complemento agregar un complemento de extensión que extiende dinámicamente el espacio de nombres de un elemento seleccionado.
Sintaxis
HRESULT AddExtension(
[in] HSCOPEITEM hItem,
[in] LPCLSID lpClsid
);
Parámetros
[in] hItem
Identificador del elemento que se va a extender con el complemento especificado por lpClsid.
[in] lpClsid
Puntero al CLSID del complemento que extenderá el espacio de nombres del elemento especificado por hItem.
Valor devuelto
Este método puede devolver uno de estos valores.
Comentarios
Cuando un complemento llama al método AddExtension, la extensión de espacio de nombres especificada por lpClsid extiende solo la instancia específica del elemento especificado por hItem. Otros elementos de ese tipo no se ven afectados: llamar a AddExtension no es el mismo que usar el administrador de complementos para agregar una extensión a un complemento. Mediante el uso del administrador de complementos para agregar una extensión a un complemento, la extensión se agrega a todas las instancias de complementos de ese tipo.
Además, el método AddExtension solo funciona para los elementos que pertenecen directamente al complemento que realiza la llamada AddExtension. Por ejemplo, si un complemento tiene una extensión de espacio de nombres que agrega un elemento a su espacio de nombres, el complemento no puede llamar a AddExtension para el elemento proporcionado por la extensión de espacio de nombres porque el complemento no posee ese elemento.
Un lugar común para agregar extensiones de espacio de nombres dinámicos se encuentra en el controlador de notificaciones MMCN_EXPAND del objeto IComponentData del complemento.
Si un complemento de extensión está pensado para usarse solo como una extensión dinámica, ese complemento de extensión no debe aparecer en el cuadro de lista Extensiones disponibles cuando el complemento principal está seleccionado en el cuadro Complemento que se puede extender en la página de extensiones del administrador de complementos. Para ocultar una extensión en el administrador de complementos, agregue la clave "Extensiones dinámicas" a la clave que representa el tipo de nodo del elemento que desea extender. A continuación, coloque los CLSID de los complementos que solo deben extender dinámicamente el tipo de nodo como valores bajo la nueva clave.
Ejemplos
En el ejemplo de código siguiente se agrega el complemento de extensión especificado por 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();
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista |
Servidor mínimo compatible | Windows Server 2008 |
Plataforma de destino | Windows |
Encabezado | mmc.h |
Archivo DLL | Mmcndmgr.dll |