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 moniker chamado moniker de classe. Os monikers de classe se ligam ao objeto de classe da classe para a qual foram criados.
A capacidade de identificar classes com um moniker suporta operações úteis que, de outra forma, seriam pesadas. Por exemplo, os monikers de arquivo tradicionalmente suportavam a vinculação avançada apenas para a 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 atualmente registrado. Um moniker de classe permite que você indique a classe que você deseja usar para manipular um arquivo através da composição com um moniker de arquivo. Um moniker de classe para uma classe de gráficos 3D composta com um moniker 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 monikers de classe são, portanto, mais úteis na composição com outros tipos de monikers, como monikers de arquivo ou monikers de item.
Os monikers de classe também podem ser compostos à direita de monikers que suportam a ligação à interfaceIClassActivator. 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 IMoniker::IsSystemMoniker, que retorna MKSYS_CLASSMONIKER em pdwMksys.
Os programadores normalmente criam monikers de classe usando a função deCreateClassMonikerou por meio MkParseDisplayName. (Consulte IMoniker::P arseDisplayName para obter detalhes.)
Tópicos relacionados