Compartilhar via


Definindo uma classe notify

As classes de notificação devem ser implementadas para que herdem da interface INetCfgComponentControl . No entanto, se os objetos de notificação executarem determinadas operações, suas classes de notificação também deverão ser implementadas para herdar das seguintes interfaces:

  • Se um objeto notify executar operações relacionadas à instalação, atualização e remoção do componente que possui o objeto, a classe de notificação associada deverá herdar da interface INetCfgComponentSetup .

  • Se um objeto notify exibir páginas de propriedades personalizadas para o componente que possui o objeto , a classe de notificação associada deverá herdar da interface INetCfgComponentPropertyUi .

  • Se um objeto notify avaliar alterações na forma como o subsistema de configuração de rede associa o componente que possui o objeto a outros componentes de rede, a classe de notificação associada deverá herdar da interface INetCfgComponentNotifyBinding .

  • Se um objeto notify avaliar alterações na configuração de rede que podem afetar o componente que possui o objeto, a classe de notificação associada deverá herdar da interface INetCfgComponentNotifyGlobal .

Determinados membros de dados dentro de classes de notificação devem ser definidos como comuns a todos os objetos de notificação. Determinados membros de dados devem ser definidos como específicos para seu componente. Os membros de dados que todos os objetos de notificação devem definir incluem:

  • Um ponteiro para uma instância do componente de rede que possui o objeto do tipo interface INetCfgComponent . Uma instância de um objeto notify usa esse ponteiro para acessar e controlar o componente que possui o objeto .

  • Um ponteiro para uma instância do objeto de configuração de rede do tipo interface INetCfg . Uma instância de um objeto notify usa esse ponteiro para acessar todos os aspectos da configuração de rede.

  • Variáveis para armazenar informações de parâmetro para o componente que possui o objeto notify

  • Uma variável que especifica a ação que um objeto de notificação executou anteriormente. Defina constantes para indicar as diferentes ações que podem ser executadas pelos objetos de notificação. Quando o subsistema de configuração de rede chama o método INetCfgComponentControl::ApplyRegistryChanges do objeto notify para aplicar alterações de configuração ao registro, ApplyRegistryChanges usa essa variável para determinar como fazer alterações no Registro. Por exemplo, se um objeto notify executou operações anteriormente relacionadas à instalação do componente que possui o objeto em seu método INetCfgComponentSetup::Install , Install deverá definir essa variável para indicar a ação como instalação.

  • Uma chave do Registro do tipo HKEY. Um objeto notify chama o método INetCfgComponent::OpenParamKey do componente que possui o objeto para abrir e recuperar a chave do Registro que contém parâmetros para o componente. Em seguida, o objeto notify define o membro HKEY como essa chave.

Defina um construtor e um destruidor para sua classe de notificação. Considere também a definição de métodos privados que somente a classe de notificação pode usar.

Todos os métodos de interface IUnknown devem ser implementados para uma classe de notificação. Se uma classe de notificação herdar de qualquer uma das interfaces opcionais indicadas na lista anterior, todos os métodos dessas interfaces deverão ser implementados. Observe que E_NOTIMPL não é um tipo de retorno válido para nenhum dos métodos das interfaces de objeto notify. Se um objeto notify não exigir uma implementação para um método específico, basta implementar o método para retornar S_OK.