Metodo IConsoleNameSpace2::AddExtension (mmc.h)
Il metodo IConsoleNameSpace2::AddExtension consente allo snap-in di aggiungere uno snap-in di estensione che estende dinamicamente lo spazio dei nomi di un elemento selezionato.
Sintassi
HRESULT AddExtension(
[in] HSCOPEITEM hItem,
[in] LPCLSID lpClsid
);
Parametri
[in] hItem
Handle per l'elemento da estendere con lo snap-in specificato da lpClsid.
[in] lpClsid
Puntatore al CLSID dello snap-in che estenderà lo spazio dei nomi dell'elemento specificato da hItem.
Valore restituito
Questo metodo può restituire uno di questi valori.
Commenti
Quando uno snap-in chiama il metodo AddExtension, l'estensione dello spazio dei nomi specificata da lpClsid estende solo l'istanza specifica dell'elemento specificato da hItem. Altri elementi di quel tipo non sono interessati: la chiamata a AddExtension non equivale all'uso del gestore snap-in per aggiungere un'estensione a uno snap-in. Usando la gestione snap-in per aggiungere un'estensione a uno snap-in, l'estensione viene aggiunta a tutte le istanze di snap-in di tale tipo.
Inoltre, il metodo AddExtension funziona solo per gli elementi di proprietà diretta dello snap-in che effettua la chiamata AddExtension. Ad esempio, se uno snap-in ha un'estensione dello spazio dei nomi che aggiunge un elemento al relativo spazio dei nomi, lo snap-in non può chiamare AddExtension per l'elemento fornito dall'estensione dello spazio dei nomi perché lo snap-in non è proprietario di tale elemento.
Un luogo comune per aggiungere estensioni dello spazio dei nomi dinamiche è nel gestore di notifica MMCN_EXPAND dell'oggetto IComponentData dello snap-in.
Se uno snap-in di estensione deve essere utilizzato solo come estensione dinamica, tale snap-in di estensione non deve essere elencato nella casella di riepilogo Estensioni disponibili quando lo snap-in primario è selezionato nella casella Snap-in che può essere estesa nella pagina delle estensioni del gestore snap-in. Per nascondere un'estensione nella gestione snap-in, aggiungere la chiave "Estensioni dinamiche" alla chiave che rappresenta il tipo di nodo dell'elemento da estendere. Inserire quindi i CLSID degli snap-in che devono estendere in modo dinamico solo il tipo di nodo come valori sotto la nuova chiave.
Esempio
Nell'esempio di codice seguente viene aggiunto lo snap-in dell'estensione specificato da 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();
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Piattaforma di destinazione | Windows |
Intestazione | mmc.h |
DLL | Mmcndmgr.dll |