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 do IClassFactory interface. 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 do IClassFactory interface, que contém dois métodos:
- CriarInstância. 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 desligue antes que o cliente esteja pronto para fazê-lo.
Para permitir que um servidor seja responsável por seu próprio licenciamento, a 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 a implementação de servidores fora do processo. Para obter mais informações, consulte Auxiliares de implementação de servidor fora de processo.
Tópicos relacionados
-
Licenciamento e IClassFactory2