C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 43 - Как грузится COM (SCM) ? / ActiveX по шагам / Приложение

Шаг 43 - Как грузится COM (SCM) ?

Интересный вопрос. Кто дает информацию о модуле, например, по его CLSID ??? Первый ответ, подходящий я имею в виду, это делает библиотека OLE. А вот оказывается и нет. За поиск COM объекта отвечает SCM - Services Control Message. Именно он в ответ на запрос использования COM сервера производит поиск в реестре и отыскивает по данным из реестра DLL или EXE. По русски это менеджер сервисов. Он загружается вместе с системой и является RPC сервером. Как это происходит ???

Клиент просит загрузить сервер по конкретному CLSID от OLE
OLE обращается к SCM 
SCM ищет в системном реестре информацию
Если он найден, то SCM возвращает OLE имя модуля.

Так зачем он нужен то этот SCM и почему его не включить в OLE ??? Дело в том, что так реализуется так называемая прозрачность. Так как саму библиотеку OLE не интересует где находится клиент и сервер. В одном процессе, в разных процессах, на разных машинах. Сама библиотека OLE в данном случае посредник. К ней можно обратиться, а она обратится к другой системе. Только вот к ней обращение всегда одинаковое и остальное нас не интересует.

43.gif (3918 b)

SCM может манипулировать сервисами на удаленном компьютере. Именно для этого реализована подобная модель. Для этого модифицируется CLSID и запрос на активизацию элемента идет уже на MTS. Ну это тема отдельного разговора. Итак, за загрузку и активизацию COM объекта отвечает SCM, а он при необходимости может загрузить компонент по сети.


| |
Автор Каев Артем.
[AD]