Compartir a través de


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.

Nota El complemento de extensión debe ser una extensión de espacio de nombres. Además, las entradas del Registro MMC para el complemento que se van a extender, así como el complemento de extensión, deben establecerse correctamente.
 
Para agregar dinámicamente otros tipos de extensiones (como menús contextuales, barras de herramientas, hojas de propiedades o paneles de tareas), el complemento debe agregar el nuevo formato del Portapapeles CCF_MMC_DYNAMIC_EXTENSIONS al objeto de datos de los elementos que desea extender. El formato CCF_MMC_DYNAMIC_EXTENSIONS usa la estructura SMMCDynamicExtensions . Para obtener más información, vea Extensiones dinámicas que no son de espacio de nombres.

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

Consulte también

IConsoleNameSpace2