我们遇到了基于 ATL 的 Visual C++ MMC 管理单元的问题。我们有一个仅显示在范围窗格中的范围项。选择此项后,它会使用一组结果项填充结果窗格。
当用户选择“删除所有项目”弹出菜单命令时,我们的管理单元代码被调用——首先它会做一些工作,然后继续清除结果视图。我们想要以下行为:用户单击该菜单项,调用我们的自定义代码以执行有用的工作,然后所有项从结果窗格中消失,范围项保持选中状态。
我尝试了两种方法来删除所有结果项。
变体 1 - 它调用IResultData::DeleteAllRsltItems()
哪些退货E_UNEXPECTED
和物品没有被删除 - 它们只是留在那里。
变体 2 - 它调用先前IResultData::DeleteItem()
插入结果窗格的每个项目。同样,每个调用都返回E_UNEXPECTED
并且项目不会被删除。
如何从 MMC 视图中正确删除所有结果项?