Поделиться через


Реализация диспенсера ресурсов 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+