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,因为该管理单元不拥有该项。
添加动态命名空间扩展的常见位置位于管理单元的 IComponentData 对象的 MMCN_EXPAND 通知处理程序中。
如果扩展管理单元仅用作动态扩展,则当管理单元在管理单元管理器的扩展页上的“可以扩展”框中选择主管理单元时,不应在“可用扩展”列表框中列出该扩展管理单元。 若要在管理单元管理器中隐藏扩展,请将密钥“动态扩展”添加到表示要扩展的项的节点类型的键。 然后,将只应动态扩展节点类型的管理单元的 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 |
标头 | mmc.h |
DLL | Mmcndmgr.dll |