Implementando um dispensador de recursos COM+

As etapas a seguir descrevem um procedimento geral para implementar um dispensador de recursos COM+:

  1. Decida sobre o formato RESTYPID que categoriza como seus recursos diferem uns dos outros.

  2. Use o arquivo de cabeçalho e a biblioteca Mtxdm.h e Mtxdm.lib, respectivamente.

  3. Crie uma DLL que implementa a interface IDispenserDriver e a API que você deseja expor aos aplicativos.

  4. 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.

  5. 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.

  6. Armazene esse ponteiro para que você possa chamar IHolder::AllocResource e IHolder::FreeResource.

  7. 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.

Conceitos de Dispensador de Recursos COM+

Interfaces de dispensador de recursos COM+