Реализация диспенсера ресурсов COM+

Ниже описана общая процедура реализации диспенсера ресурсов COM+:

  1. Определите формат RESTYPID , который классифицирует, как ресурсы отличаются друг от друга.

  2. Используйте файл заголовка Mtxdm.h и mtxdm.lib соответственно.

  3. Создайте библиотеку DLL, реализующую интерфейс IDispenserDriver и API, который требуется предоставить приложениям.

  4. При запуске (DllMain или первом вызове API диспенсера) вызовите функцию GetDispenserManager . Возвращает указатель на интерфейс IDispenserManager диспетчера диспенсера.

  5. Вызовите IDispenserManager::RegisterDispenser, передав указатель на реализацию IDispenserDriver. Это приводит к созданию держателя (диспетчера пула) диспетчера ресурсов, а затем возврату указателя на интерфейс IHolder .

  6. Сохраните этот указатель, чтобы можно было вызвать IHolder::AllocResource и IHolder::FreeResource.

  7. Теперь вы можете (в ответ на вызовы API) совершать вызовы AllocResource и FreeResource. AllocResource изначально отвечает, вызывая метод CreateResource , но последующие вызовы AllocResource обслуживаются из растущего пула ресурсов.

Основные понятия диспенсера ресурсов COM+

Интерфейсы диспенсера ресурсов COM+