Método IConsoleNameSpace2::AddExtension (mmc.h)
O método IConsoleNameSpace2::AddExtension permite que o snap-in adicione um snap-in de extensão que estenda dinamicamente o namespace de um item selecionado.
Sintaxe
HRESULT AddExtension(
[in] HSCOPEITEM hItem,
[in] LPCLSID lpClsid
);
Parâmetros
[in] hItem
Um identificador para o item a ser estendido com o snap-in especificado por lpClsid.
[in] lpClsid
Um ponteiro para o CLSID do snap-in que estenderá o namespace do item especificado por hItem.
Retornar valor
Esse método pode retornar um desses valores.
Comentários
Quando um snap-in chama o método AddExtension, a extensão de namespace especificada por lpClsid estende apenas a instância específica do item especificado por hItem. Outros itens desse tipo não são afetados: chamar AddExtension não é o mesmo que usar o gerenciador de snap-in para adicionar uma extensão a um snap-in. Usando o gerenciador de snap-in para adicionar uma extensão a um snap-in, a extensão é adicionada a todas as instâncias de snap-ins desse tipo.
Além disso, o método AddExtension só funciona para itens que pertencem diretamente ao snap-in que está fazendo a chamada AddExtension. Por exemplo, se um snap-in tiver uma extensão de namespace que adiciona um item ao namespace, o snap-in não poderá chamar AddExtension para o item fornecido pela extensão de namespace porque o snap-in não possui esse item.
Um local comum para adicionar extensões de namespace dinâmico está no manipulador de notificação MMCN_EXPAND do objeto IComponentData do snap-in.
Se um snap-in de extensão se destina a ser usado apenas como uma extensão dinâmica, esse snap-in de extensão não deve ser listado na caixa de listagem Extensões Disponíveis quando o snap-in primário é selecionado no Snap-in que pode ser estendido na página de extensões do gerenciador de snap-in. Para ocultar uma extensão no gerenciador de snap-in, adicione a chave "Extensões Dinâmicas" à chave que representa o tipo de nó do item que você deseja estender. Em seguida, coloque os CLSIDs dos snap-ins que só devem estender dinamicamente o tipo de nó como valores sob a nova chave.
Exemplos
O exemplo de código a seguir adiciona o snap-in de extensão 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 | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | mmc.h |
DLL | Mmcndmgr.dll |