По умолчанию мастер Snap-In создает стандартный объект snap-in. Однако если вы выбрали вариант расширение оснастки, генерируемый код будет отличаться от стандартного кода оснастки. В частности, разница заключается в объекте класса данных расширение оснастки ( CMySnapInData ). Существует два основных различия, оба происходящих в заголовочном файле созданных данных класса.
InitDataClass , в CMySnapInData . InitDataClassМетод обеспечивает безопасный метод для инициализации m_pDataObject член данных класса расширение ( CMySnapInExtData ). В реализации по умолчанию кэширует указатель на объект snap-in, расширяется, в m_pDataObject член. В большинстве случаев не дальнейших действий не требуется.Однако если Расширенная оснастка объект должен быть преобразован в внутренний формат (представляющий данные) до кэширования, этот метод обеспечивает удобный доступ к точку выполнения этого преобразования.
CMySnapInExtData ). Макрос, найден перед новой карты, создает член данных типа CMySnapInExtData в расширенный объект snap-in. После этого макрос объявляется расширение узла информация о карте. Декларация включает в себя макросы BEGIN_EXTENSION_SNAPIN_NODEINFO_MAP, END_EXTENSION_SNAPIN_NODEINFO_MAPи EXTENSION_SNAPIN_NODEINFO_ENTRY . Определяет каждую запись на карте CMySnapInExtData класс.