Anti-Monikers
OLE fornece uma implementação de um tipo especial de apelido chamado anti-moniker. Você usa esse apelido na criação de novas classes de apelido. Você o usa como o inverso do apelido no qual ele é composto, efetivamente cancelando esse moniker, da mesma forma que o operador ".." sobe um nível de diretório em um comando do sistema de arquivos.
É necessário ter um anti-apelido disponível, porque uma vez que um apelido composto é criado, não é possível excluir partes do apelido se, por exemplo, um objeto se mover. Em vez disso, você usa um antimoniker para remover uma ou mais entradas de um moniker composto.
Anti-monikers são uma classe de apelido explicitamente destinada ao uso como um inverso. COM define a função CreateAntiMoniker nomeada , que retorna um antimoniker . Você geralmente usa essa função para implementar o método IMoniker::Inverse.
Um anti-apelido é apenas um inverso para os tipos de apelidos que são implementados para tratar anti-apelidos como um inverso. Por exemplo, se você quiser remover a última parte de um moniker composto, não deve criar um anti-moniker e compô-lo até o final do composto. Você não pode ter certeza de que a última peça do composto considera um anti-apelido como seu inverso. Em vez disso, você deve chamar IMoniker::Enum no moniker composto, especificando FALSE como o primeiro parâmetro. Isso cria um enumerador que retorna os monikers de componente na ordem inversa. Use o enumerador para recuperar a última parte do composto e chame Inverse nesse apelido. O apelido retornado por Inverse é o que você precisa para remover a última peça do composto.
Tópicos relacionados