Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O snap-in MMC de Usuários e Computadores do Microsoft Active Directory fornece um mecanismo para permitir que os componentes recebam notificações quando o usuário exclui, renomeia, move ou altera as propriedades de um objeto usando o snap-in. O componente que recebe as notificações é conhecido como um "manipulador de notificação".
Isso é útil quando vários objetos são vinculados e devem existir dentro do mesmo contêiner. Se um dos objetos vinculados for movido, uma notificação será fornecida ao manipulador de notificação e o manipulador de notificação poderá mover os outros objetos vinculados para a mesma pasta.
Quando uma das operações é executada e um ou mais manipuladores de notificação são instalados, o snap-in Usuários e Computadores exibirá uma caixa de diálogo de confirmação que lista os manipuladores de notificação e uma caixa de seleção para cada manipulador. Se a caixa de seleção de um manipulador estiver selecionada, o manipulador será notificado. Se a caixa de seleção não estiver marcada, o manipulador não será notificado.
Implementando um manipulador de notificação
Um manipulador de notificação é um objeto COM implementado como um servidor in-proc. O manipulador de notificação deve implementar a interface deIDsAdminNotifyHandler.
Quando ocorre um evento que causará uma notificação, o snap-in Usuários e Computadores enumera os manipuladores de notificação registrados e cria cada um usando o CLSID para o manipulador. Depois que o manipulador é criado, o snap-in chama o método IDsAdminNotifyHandler::Initialize. O método Initialize fornece o snap-in com os eventos que o manipulador deve receber.
Se o evento for aquele que deve ser enviado para o manipulador de notificação, o snap-in chamará o método IDsAdminNotifyHandler::Begin. O método Begin fornece ao manipulador dados sobre o objeto em que o evento está ocorrendo e, dependendo do evento, dados sobre o que o objeto se tornará. O método Begin também fornece o snap-in com o texto que deve ser exibido para o manipulador na caixa de diálogo de confirmação.
Quando o método Begin para cada manipulador tiver sido chamado, o snap-in exibirá a caixa de diálogo de confirmação. A caixa de diálogo de confirmação solicita que o usuário selecione quais manipuladores receberão a notificação. Se o usuário pressionar o botão No push na caixa de diálogo de confirmação, nenhum dos manipuladores será notificado. Se o usuário pressionar o botão Sim, cada um dos manipuladores selecionados na caixa de diálogo de confirmação receberá a notificação. O snap-in envia a notificação para o manipulador chamando o método IDsAdminNotifyHandler::Notify.
Depois que todos os manipuladores tiverem sido notificados, o snap-in chamará o método IDsAdminNotifyHandler::End. O método End é sempre chamado, mesmo que o método Notify não seja chamado.
Registrando um manipulador de notificação no Registro do Windows
Como todos os servidores COM, um manipulador de notificação deve ser registrado no Registro do Windows. O manipulador é registrado na seguinte chave:
HKEY_CLASSES_ROOT - CLSID - <CLSID>
< > CLSID é a representação de cadeia de caracteres do CLSID, conforme produzido pela funçãoStringFromCLSID. Na chave>CLSID<, há uma chave InProcServer32 que identifica o objeto como um servidor in-proc de 32 bits. Na chave InProcServer32, o local da DLL é especificado no valor padrão e o modelo de threading é especificado no valor ThreadingModel. Todos os manipuladores de notificação devem usar o modelo de threading Apartment.
Registrando um manipulador de notificação com um servidor do Active Directory
No Active Directory Domain Services, o registro do manipulador de notificação é específico para uma localidade. Se o manipulador de notificação se aplicar a todas as localidades, ele deverá ser registrado no displaySpecifier objeto em todos os subcontenentes de localidade no contêiner DisplaySpecifiers. Se o manipulador de notificação for localizado para uma determinada localidade, ele será registrado no displaySpecifier objeto no subcontenente dessa localidade. Para obter mais informações sobre o contêiner DisplaySpecifiers e as localidades, consulte Especificadores de Exibição e de Contêiner DisplaySpecifiers.
Os manipuladores de notificação são registrados no atributo dsUIAdminNotification no contêiner DS-UI-Default-Settings. Este é um valor de cadeia de caracteres Unicode de vários valores em que cada valor requer o seguinte formato:
<order number>,<CLSID>
O "<número de pedido>" é um número sem sinal que representa a posição do manipulador na caixa de diálogo de confirmação. Quando a caixa de diálogo de confirmação é exibida, os valores são classificados usando uma comparação de "<número de pedido de cada valor>". Se mais de um valor tiver o mesmo "<número de pedido>", esses manipuladores serão exibidos na ordem em que são lidos do servidor do Active Directory. Um não existente, ou seja, um não usado por outros valores na propriedade, "<número de pedido>" deve ser usado, se possível. Não há nenhuma posição inicial prescrita e as lacunas podem aparecer na sequência "<número da ordem>".
O "<>CLSID " é a representação de cadeia de caracteres do CLSID, conforme produzido pela função StringFromCLSID.