Classe Monikers
Embora as classes sejam normalmente identificadas diretamente com CLSIDs para funções como CoCreateInstance ou CoGetClassObject, as classes também podem agora ser identificadas com um apelido chamado moniker de classe. Os monikers de classe se vinculam ao objeto de classe da classe para a qual são criados.
A capacidade de identificar classes com um apelido oferece suporte a operações úteis que, de outra forma, são pesadas. Por exemplo, os monikers de arquivo tradicionalmente ofereciam suporte à vinculação avançada apenas à classe associada à classe de arquivo a que se referiam; um moniker para um arquivo do Excel seria vinculado a uma instância de um objeto do Excel e um moniker para uma imagem GIF seria vinculado a uma instância do manipulador GIF registrado no momento. Um moniker de classe permite que você indique a classe que deseja usar para manipular um arquivo por meio da composição com um moniker de arquivo. Um moniker de classe para uma classe de gráfico 3D composta com um apelido para um arquivo do Excel produz um moniker que se liga a uma instância do objeto de gráfico 3D e inicializa o objeto com o conteúdo do arquivo do Excel.
Os apelidos de classe são, portanto, mais úteis na composição com outros tipos de apelidos, como apelidos de arquivo ou apelidos de item.
Os monikers de classe também podem ser compostos à direita de monikers que suportam a vinculação à interface IClassActivator. Quando composto dessa maneira, IClassActivator simplesmente dá acesso ao objeto de classe e instâncias da classe por meio de IClassActivator::GetClassObject. Os monikers de classe podem ser identificados através de IMoniker::IsSystemMoniker, que retorna MKSYS_CLASSMONIKER no pdwMksys.
Os programadores normalmente criam monikers de classe usando a função CreateClassMoniker ou por meio de MkParseDisplayName. (Veja IMoniker::P arseDisplayName para obter detalhes.)
Tópicos relacionados