Implementando o IClassFactory
Quando um cliente usa um CLSID para solicitar a criação de uma instância de objeto, a primeira etapa é a criação de um objeto de classe, um objeto intermediário que contém uma implementação dos métodos da interface IClassFactory. Embora o COM forneça várias funções de criação de instância, a primeira etapa na implementação dessas funções é a criação de um objeto de classe.
Como resultado, todos os servidores devem implementar os métodos da interface IClassFactory , que contém dois métodos:
- CreateInstance. Esse método deve criar uma instância não inicializada do objeto e retornar um ponteiro para uma interface solicitada no objeto.
- LockServer. Esse método apenas incrementa a contagem de referência no objeto de classe para garantir que o servidor permaneça na memória e não seja desligado antes que o cliente esteja pronto para fazer isso.
Para permitir que um servidor seja responsável por seu próprio licenciamento, COM define IClassFactory2, que herda sua definição de IClassFactory. Assim, um servidor que implementa IClassFactory2 deve, por definição, implementar os métodos de IClassFactory.
O COM também fornece funções auxiliares para implementar servidores fora do processo. Para obter mais informações, consulte Auxiliares de implementação de servidor fora do processo.
Tópicos relacionados