|
Создание экземпляра внешнего COM-сервера
На первый взгляд
процесс создания экземпляра
СОМ-объекта из внешнего сервера,
подобен процессу создания объекта
из внутреннего сервера ? в модуле
ComObj вызывается функция CreateComObject(). Однако в остальном эти
процессы абсолютно не похожи. В
данном случае функция CoCreateComObject() просматривает реестр
в поисках параметра LocalServer32 и вызывает
ассоциированное приложение,
используя API-функцию CreateProcess(). Когда внешнее
приложение-сервер запущено, сервер
должен зарегистрировать свою
фабрику классов, используя API-функцию СОМ CoRegisterClassObject(). Эта функция добавляет
указатель IClassFactory
во внутреннюю
таблицу зарегистрированных
активных объектов СОМ-класса. После
этого функция CoGetClassObject() может получить из этой
таблицы необходимый указатель Factory СОМ-класса для
создания экземпляра СОМ-объекта.
|
|