Что такое оснастки расширения MMC?

Просматривая наш код оснастки MMC, я не могу понять ни одной концепции. У нас есть дерево различных элементов класса, вставленных в корневой узел оснастки MMC, и только два из них зарегистрируйтесь как расширения. Эти два класса не представляют собой ничего особенного по сравнению с любыми другими классами, которые мы используем для представления элементов дерева MMC. Но только эти два регистрируются в реестре в ключе NodeTypes, а другие классы - нет.

Единственное объяснение, которое у меня есть, это то, что нам их вообще не нужно регистрировать — достаточно зарегистрировать оснастку. Однако я не уверен.

Что это за оснастки-расширения, как они используются и что именно я получаю после регистрации какого-то класса в качестве оснастки-расширения в реестре?


person sharptooth    schedule 07.10.2009    source источник


Ответы (1)


Вы читали это?

Оснастки-расширения расширяют функциональные возможности других оснасток, но они не добавляются непосредственно в консоль, как автономные оснастки. Оснастки-расширения могут добавлять элементы контекстного меню, страницы свойств, кнопки панели инструментов, задачи панели задач и элементы в пространство имен расширенной оснастки (также называемой основной оснасткой).

Основные оснастки сами по себе могут расширять функциональные возможности других оснасток. То есть одна и та же кодовая база оснастки может создать экземпляр основной оснастки и экземпляр оснастки расширения.

Оснастка расширения загружается только тогда, когда загружается расширяемая им оснастка и используется функция, которую она расширяет. Например, когда пользователь отображает контекстное меню в автономной оснастке, MMC создает контекстное меню, предлагает автономной оснастке добавить свои элементы, а затем предлагает оснастке расширения добавить свои элементы. . После того, как все оснастки добавили свои элементы, MMC отображает контекстное меню, а затем перенаправляет щелчок меню на оснастку, которой принадлежит элемент.

Оснастка расширения может расширять только те типы узлов, которые автономная оснастка указывает как расширяемые. Оснастка расширения объявляет себя подчиненной по отношению к расширяемым типам узлов, а затем для каждого вхождения этих типов узлов в консоли консоль автоматически добавляет под собой соответствующие расширения оснастки.

Важно понимать, что тип узла может представлять элемент области, стандартный элемент результата представления списка или элемент результата представления виртуального списка, добавленный основной оснасткой. Обратитесь к документации по основной оснастке, чтобы определить, что представляет собой тип узла и формат его экспортируемых данных.

person 1800 INFORMATION    schedule 07.10.2009
comment
Да, я читал это, но я не понимаю практического значения этого. Как это работает? Означает ли это, что я заявляю, что моя оснастка расширяет какую-то другую оснастку, и по волшебству MMC моя оснастка начинает перехватывать некоторые вызовы этой оснастки? Как определить, действительно ли мне это нужно или странный регистрационный код в нашем проекте просто лишний? - person sharptooth; 07.10.2009
comment
Я думаю, что, вероятно, степень моего ответа заключалась в том, прочитали ли вы этот фрагмент - надеюсь, вы все же поняли это. Судя по всему, основная оснастка — это тип, который вы обычно добавляете — это вид, который вы добавляете в mmc вручную, в то время как оснастка расширения работает автоматически, добавляя новые функции к другим оснасткам. - person 1800 INFORMATION; 07.10.2009