Поделиться через


Определение класса Notify

Классы Notify должны быть реализованы таким образом, чтобы они наследовали от интерфейса INetCfgComponentControl . Однако если объекты notify выполняют определенные операции, их классы уведомления также должны быть реализованы для наследования от следующих интерфейсов:

  • Если объект уведомления выполняет операции, связанные с установкой, обновлением и удалением компонента, которому принадлежит объект , связанный класс notify должен наследоваться от интерфейса INetCfgComponentSetup .

  • Если объект уведомления отображает пользовательские страницы свойств для компонента, которому принадлежит объект, связанный класс уведомления должен наследоваться от интерфейса INetCfgComponentPropertyUi .

  • Если объект уведомления оценивает изменения в том, как подсистема конфигурации сети привязывает компонент, которому принадлежит объект, с другими сетевыми компонентами, связанный класс notify должен наследоваться от интерфейса INetCfgComponentNotifyBinding .

  • Если объект уведомления оценивает изменения в конфигурации сети, которые могут повлиять на компонент, которому принадлежит объект, связанный класс notify должен наследоваться от интерфейса INetCfgComponentNotifyGlobal .

Некоторые элементы данных в классах notify должны быть определены как общие для всех объектов notify. Некоторые элементы данных должны быть определены как относящиеся к их компоненту. Элементы данных, которые должны определять все объекты уведомления, включают:

  • Указатель на экземпляр сетевого компонента, которому принадлежит объект типа интерфейс INetCfgComponent . Экземпляр объекта уведомления использует этот указатель для доступа к компоненту, которому принадлежит объект, и управления ими.

  • Указатель на экземпляр объекта конфигурации сети типа интерфейса INetCfg . Экземпляр объекта уведомления использует этот указатель для доступа ко всем аспектам конфигурации сети.

  • Переменные для хранения сведений о параметрах компонента, которому принадлежит объект notify

  • Переменная, указывающая действие, ранее выполненное объектом уведомления. Определите константы, чтобы указать различные действия, которые могут выполняться объектами уведомления. Когда подсистема конфигурации сети вызывает метод INetCfgComponentControl::ApplyRegistryChanges объекта notify для применения изменений конфигурации к реестру, ApplyRegistryChanges использует эту переменную для определения способа внесения изменений в реестр. Например, если объект уведомления ранее выполнял операции, связанные с установкой компонента, которому принадлежит объект, в методе INetCfgComponentSetup::Install , установка должна задать эту переменную, чтобы указать действие как установку.

  • Раздел реестра типа HKEY. Объект уведомления вызывает метод INetCfgComponent::OpenParamKey компонента, которому принадлежит объект , для открытия и получения раздела реестра, содержащего параметры компонента. Затем объект notify задает для элемента HKEY этот ключ.

Определите конструктор и деструктор для класса notify. Также рассмотрите возможность определения частных методов, которые может использовать только класс notify.

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