Implementando um dispensador de recursos COM+
As etapas a seguir descrevem um procedimento geral para implementar um dispensador de recursos COM+:
Decida sobre o formato RESTYPID que categoriza como seus recursos diferem uns dos outros.
Use o arquivo de cabeçalho e a biblioteca Mtxdm.h e Mtxdm.lib, respectivamente.
Crie uma DLL que implementa a interface IDispenserDriver e a API que você deseja expor aos aplicativos.
Na inicialização (DllMain ou primeira chamada para a API do dispensador), chame a função GetDispenserManager. Isso retorna um ponteiro para a interface IDispenserManager do gerenciador de dispensadores.
Chame IDispenserManager::RegisterDispenser, passando um ponteiro para sua implementação de IDispenserDriver. Isso faz com que o gerenciador de dispensadores crie um suporte (gerenciador de pooling) para o dispensador de recursos e, em seguida, retorne o ponteiro para sua interface IHolder.
Armazene esse ponteiro para que você possa chamar IHolder::AllocResource e IHolder::FreeResource.
Agora você pode (em resposta a chamadas para sua API) fazer chamadas para AllocResource e FreeResource. AllocResource inicialmente responde chamando de volta para seu método CreateResource, mas posteriormente as chamadas AllocResource são atendidas a partir do pool crescente de recursos.
Tópicos relacionados