Partilhar via


Criando páginas de propriedades para o componente

Um objeto notify cria páginas de propriedade personalizadas depois que o subsistema de configuração de rede chama o método INetCfgComponentPropertyUi::MergePropPages do objeto notify. As páginas de propriedades personalizadas podem ser mescladas no conjunto padrão de páginas na folha de propriedades do componente usando o método MergePropPages . MergePropPages retornará o número apropriado de páginas padrão nas quais as páginas personalizadas podem ser mescladas.

Para criar páginas de propriedades personalizadas, MergePropPages chama a função COM CoTaskMemAlloc para alocar memória para identificadores para estruturas PROPSHEETPAGE. Cada um desses identificadores representa uma página de propriedades a ser criada. Se CoTaskMemAlloc alocar com êxito a memória para os identificadores, MergePropPages declarará e preencherá estruturas PROPSHEETPAGE para cada página de propriedade. Depois que MergePropPages preenche essas estruturas, ele chama a função CreatePropertySheetPage do Win32 para cada página de propriedades. Nessa chamada, MergePropPages passa o endereço da estrutura PROPSHEETPAGE a ser criada.

Uma função de retorno de chamada de caixa de diálogo também deve ser implementada para cada página de propriedade criada por MergePropPages . Uma função de retorno de chamada de caixa de diálogo processa mensagens que o sistema operacional envia para a página de propriedades associada a essa função de caixa de diálogo. Para associar uma página de propriedades a uma função de caixa de diálogo, MergePropPages deve apontar o membro pfnDlgProc de cada estrutura PROPSHEETPAGE para cada página para a função de caixa de diálogo da página.

Uma função de caixa de diálogo processa as seguintes mensagens:

  • A mensagem WM_INITDIALOG, que é enviada para a função de caixa de diálogo imediatamente antes que o sistema operacional exiba sua página de propriedades associada. Normalmente, as funções de caixa de diálogo usam essa mensagem para inicializar a página de propriedades e executar tarefas que afetam a aparência da página de propriedades.

  • A mensagem WM_NOTIFY, que é enviada para a função de caixa de diálogo após um evento ocorrer na página de propriedades. Outras informações enviadas com essa mensagem identificam qual evento ocorreu. Essas informações de evento estão contidas em um ponteiro para uma estrutura NMHDR. As informações que o NMHDR pode conter para uma folha de propriedades incluem, por exemplo:

    • O evento PSN_APPLY, que indica que um usuário clica em OK, Fechar ou Aplicar na página de propriedades. Se o usuário clicar em OK, Fechar ou Aplicar, a função de caixa de diálogo poderá chamar a macro PropSheet_Changed para informar à folha de propriedades que as informações na página foram alteradas. Nessa chamada, a função de caixa de diálogo passa identificadores para a folha de propriedades e a página. A função de caixa de diálogo pode chamar a função Win32 GetParent e passar o identificador para a página para recuperar o identificador para a folha de propriedades.

      Depois que a função de caixa de diálogo notificar a folha de propriedades sobre a alteração, o subsistema de configuração de rede chamará o método INetCfgComponentPropertyUi::ValidateProperties para marcar a validade de todas as alterações. Se todas as alterações forem válidas, o subsistema chamará o método INetCfgComponentPropertyUi::ApplyProperties do objeto de notificação para fazer com que todas as alterações entrem em vigor. O subsistema de configuração de rede chama ApplyProperties antes que o sistema operacional feche a caixa de diálogo.

      O método ApplyProperties pode ser implementado para recuperar informações inseridas pelo usuário e definir as informações para os membros de dados do objeto notify.

    • O evento PSN_RESET, que indica que o sistema operacional está prestes a destruir uma página de propriedades. Um usuário pode clicar em Cancelar na página de propriedades para iniciar essa ação. Se o usuário clicar em Cancelar, o subsistema de configuração de rede chamará o método INetCfgComponentPropertyUi::CancelProperties para fazer com que todas as alterações sejam desconsideradas. O subsistema de configuração de rede chama CancelProperties antes que a caixa de diálogo seja fechada.

    • O evento PSN_KILLACTIVE, que indica que uma página de propriedades está prestes a ficar inativa. Esse evento ocorre quando um usuário ativa outra página ou clica em OK.

As funções de retorno de chamada da página de propriedades também podem ser implementadas para cada página de propriedade criada por MergePropPages . Uma função de retorno de chamada de página de propriedades executa operações de inicialização e limpeza para a página. Para associar uma página de propriedades a uma função de retorno de chamada de página de propriedades, MergePropPages deve apontar o membro pfnCallback de cada estrutura PROPSHEETPAGE para cada página para a função de retorno de chamada de página de propriedade para essa página.

Consulte a documentação do SDK do Microsoft Windows para obter mais informações sobre:

  • criando páginas de propriedades e estruturas, funções e notificações para páginas de propriedades

  • procedimentos, mensagens e estruturas de retorno de chamada da caixa de diálogo