Condividi tramite


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.

Nota Lo snap-in dell'estensione deve essere un'estensione dello spazio dei nomi. Inoltre, le voci del Registro di sistema MMC per lo snap-in da estendere, nonché lo snap-in di estensione, devono essere impostate correttamente.
 
Per aggiungere dinamicamente altri tipi di estensioni, ad esempio menu di scelta rapida, barre degli strumenti, finestre delle proprietà o taskpad, lo snap-in deve aggiungere il nuovo formato degli Appunti CCF_MMC_DYNAMIC_EXTENSIONS all'oggetto dati per gli elementi che si desidera estendere. Il formato CCF_MMC_DYNAMIC_EXTENSIONS usa la struttura SMMCDynamicExtensions . Per altre informazioni, vedere Dynamic Non-Namespace Extensions .For more information, see Dynamic Non-Namespace Extensions.

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

Vedi anche

IConsoleNameSpace2