Метод IConsoleNameSpace2::AddExtension (mmc.h)
Метод IConsoleNameSpace2::AddExtension позволяет оснастке добавить оснастку расширения, которая динамически расширяет пространство имен выбранного элемента.
Синтаксис
HRESULT AddExtension(
[in] HSCOPEITEM hItem,
[in] LPCLSID lpClsid
);
Параметры
[in] hItem
Дескриптор элемента для расширения с помощью оснастки, заданной lpClsid.
[in] lpClsid
Указатель на CLSID оснастки, расширяющий пространство имен элемента, указанного в hItem.
Возвращаемое значение
Этот метод может возвращать одно из этих значений.
Комментарии
Когда оснастка вызывает метод AddExtension, расширение пространства имен, заданное lpClsid, расширяет только конкретный экземпляр элемента, указанного в hItem. Другие элементы этого типа не затрагиваются. Вызов AddExtension не совпадает с использованием диспетчера оснастки для добавления расширения в оснастку. С помощью диспетчера оснастки для добавления расширения в оснастку расширение добавляется ко всем экземплярам оснастки этого типа.
Кроме того, метод AddExtension работает только для элементов, непосредственно принадлежащих оснастке, выполняющей вызов AddExtension. Например, если оснастка имеет расширение пространства имен, которое добавляет элемент в свое пространство имен, оснастка не может вызвать AddExtension для элемента, предоставленного расширением пространства имен, так как оснастка не владеет этим элементом.
Обычно для добавления расширений динамического пространства имен используется обработчик уведомлений MMCN_EXPAND объекта IComponentData оснастки.
Если оснастка расширения предназначена только для динамического расширения, эта оснастка расширения не должна быть указана в списке Доступные расширения, если основная оснастка выбрана в поле Оснастка, которую можно расширить на странице расширений диспетчера оснастки. Чтобы скрыть расширение в диспетчере оснастки, добавьте ключ "Динамические расширения" в ключ, представляющий тип узла элемента, который требуется расширить. Затем поместите идентификаторы CLSID оснастки, которые должны динамически расширять тип узла в качестве значений под новым ключом.
Примеры
В следующем примере кода добавляется оснастка расширения, указанная 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();
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | mmc.h |
DLL | Mmcndmgr.dll |