

| стрелялки |
| спорт |
| драки |
| стратегии |
| гонки |
| логические |
| азартные |
| аркады |
| эротические |
| фильмы онлайн |
| Элементы COM-приложения |
|
Разработчик стандартного COM-приложения в любом случае столкнется с двумя его элементами: сервер COM и клиент COM. Сервер COM представляет собой отдельный модуль, реализованный в виде самостоятельного исполняемого EXE-файла или файла динамической библиотеки DLL. Моделью COM предусмотрены две разновидности сервера: внутренний и внешний. Внутренний сервер COM трудится в том же адресном пространстве, что и клиентское приложение. Для этого сервер реализуется в динамически подключаемых библиотеках и вызывается клиентом COM в нужный момент. В отличие от внутреннего сервера, внешний COM-сервер выполняется в своем собственном адресном пространстве. Допускается, чтобы внешний сервер порождался процессом, выполняющимся на другом компьютере. В этом случае вернее говорить не просто о COM, а о распределенной COM (Distributed COM, DCOM). При этом передача вызовов между двумя машинами осуществляется с помощью механизма удаленного вызова процедур (Remote Procedure Call, RPC). Теперь рассмотрим классы VCL, поставленные на службу технологии COM. В состав COM-сервера как минимум входят: 1. Один-единственный экземпляр класса TcomServer, инкапсулирующий сам COM-сервер. Доступ к этому объекту обеспечивает создаваемая при запуске сервера глобальная переменная ComServer. 2. Описание COM-объекта (или нескольких объектов), прототипом которого служит класс TComObject. 3. Фабрика класса (по одной на каждый тип COM-объекта). Основой фабрики класса служит класс TComObjectFactory. 4. Обслуживанием фабрик ведает менеджер фабрик - объект класса TComClass-Manager. Экземпляр менеджера создается автоматически и доступен в приложении COM-сервера благодаря глобальной переменной ComClassManager. Клиент COM пользуется услугами сервера, но не имеет ни малейшего понятия об особенностях его реализации. Доступ клиента к службам внедренного в сервер COM-объекта осуществляется только через интерфейсы этого объекта; это ключевая особенность всей COM-модели. Получив указатель на интерфейс, клиентское приложение приобретает право вызова методов объекта. |
