Freigeben über


IConsoleNameSpace2::AddExtension-Methode (mmc.h)

Mit der IConsoleNameSpace2::AddExtension-Methode kann das Snap-In ein Erweiterungs-Snap-In hinzufügen, das den Namespace eines ausgewählten Elements dynamisch erweitert.

Syntax

HRESULT AddExtension(
  [in] HSCOPEITEM hItem,
  [in] LPCLSID    lpClsid
);

Parameter

[in] hItem

Ein Handle für das Element, das mit dem durch lpClsid angegebenen Snap-In erweitert werden soll.

[in] lpClsid

Ein Zeiger auf die CLSID des Snap-Ins, das den Namespace des durch hItem angegebenen Elements erweitert.

Rückgabewert

Diese Methode kann einen dieser Werte zurückgeben.

Hinweise

Wenn ein Snap-In die AddExtension-Methode aufruft, erweitert die von lpClsid angegebene Namespaceerweiterung nur die spezifische instance des durch hItem angegebenen Elements. Andere Elemente dieses Typs sind nicht betroffen: Das Aufrufen von AddExtension entspricht nicht der Verwendung des Snap-In-Managers zum Hinzufügen einer Erweiterung zu einem Snap-In. Wenn Sie den Snap-In-Manager verwenden, um einem Snap-In eine Erweiterung hinzuzufügen, wird die Erweiterung allen Instanzen von Snap-Ins dieses Typs hinzugefügt.

Darüber hinaus funktioniert die AddExtension-Methode nur für Elemente, die sich direkt im Besitz des AddExtension-Aufrufs des Snap-Ins befinden. Wenn ein Snap-In beispielsweise über eine Namespaceerweiterung verfügt, die seinem Namespace ein Element hinzufügt, kann das Snap-In keine AddExtension für das von der Namespaceerweiterung bereitgestellte Element aufrufen, da das Snap-In nicht im Besitz dieses Elements ist.

Dynamische Namespaceerweiterungen können häufig im MMCN_EXPAND Benachrichtigungshandler des IComponentData-Objekts des Snap-Ins hinzugefügt werden.

Hinweis Das Erweiterungs-Snap-In muss eine Namespaceerweiterung sein. Darüber hinaus müssen die MMC-Registrierungseinträge für das zu erweiternde Snap-In sowie das Erweiterungs-Snap-In ordnungsgemäß festgelegt werden.
 
Zum dynamischen Hinzufügen anderer Arten von Erweiterungen (z. B. Kontextmenüs, Symbolleisten, Eigenschaftenblätter oder Taskpads) muss das Snap-In das neue Zwischenablageformat CCF_MMC_DYNAMIC_EXTENSIONS dem Datenobjekt für die Elemente hinzufügen, die Sie erweitern möchten. Das CCF_MMC_DYNAMIC_EXTENSIONS-Format verwendet die SMMCDynamicExtensions-Struktur . Weitere Informationen finden Sie unter Dynamische Nicht-Namespace-Erweiterungen.

Wenn ein Erweiterungs-Snap-In nur als dynamische Erweiterung verwendet werden soll, sollte dieses Erweiterungs-Snap-In nicht im Listenfeld Verfügbare Erweiterungen aufgeführt werden, wenn das primäre Snap-In im Feld Snap-In, das erweitert werden kann auf der Erweiterungsseite des Snap-In-Managers ausgewählt ist. Um eine Erweiterung im Snap-In-Manager auszublenden, fügen Sie dem Schlüssel den Schlüssel "Dynamische Erweiterungen" hinzu, der den Knotentyp des Elements darstellt, das Sie erweitern möchten. Platzieren Sie dann die CLSIDs der Snap-Ins, die den Knotentyp nur dynamisch als Werte unter dem neuen Schlüssel erweitern sollen.

Beispiele

Im folgenden Codebeispiel wird das durch CLSID_Extension angegebene Erweiterungs-Snap-In hinzugefügt:

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();
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile mmc.h
DLL Mmcndmgr.dll

Weitere Informationen

IConsoleNameSpace2