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.
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 |