Работа с OLE/COM Object Viewer

   
На этом шаге мы рассмотрим работу с OLE/COM Object Viewer.

   
На этом шаге мы изучим особенности реализации СОМ-объектов и элементов управления на базе ActiveX.
С помощью средств просмотра объектов OLE/COM Object Viewer Вы обратитесь к реестру и исследуете
СОМ-объекты и ActiveX-элементы.

  • Запуск OLE/COM Object Viewer.
  • Запустите Visual Studio.
  • В меню Tools выберите команду OLE/COM Object Viewer.
  • В меню View щелкните Expert Mode (опция должна быть включена!). После этого пролистайте вниз список узлов в левой панели и найдите узел All Objects.
  • Щелкните знак "+" слева от него, чтобы отобразить список всех СОМ-объектов и ActiveX-элементов, находящихся в реестре. Одна
    часть записей содержит идентификаторы GUID, а другая - строковые имена.
  • Просмотр СОМ-объекта.
  • Пролистайте вниз список записей и найдите узел ADODB.Connection. Это объект ADO Connection,
    который пригодится Вам в дальнейшем.
  • Щелкните этот узел. В правой панели появится информация о записях реестра для этого объекта. Обратите
    внимание на раздел InprocServer32, содержащий путь к DLL, в которой реализован объект.
  • Щелкните знак "+" слева от этого узла, чтобы получить список всех интерфейсов, поддерживаемых этим СОМ-объектом.
    OLE/COM Object Viewer выглядит, как показано на рисунке 1.


    Рис.1. Средство просмотра OLE/COM Object Viewer

       
    Этот список содержит несколько интерфейсов. IUnknown поддерживает получение указателя на интерфейс.
    Реализация интерфейса IDispatch позволяет языкам сценариев типа VBScript обрашаться к этому СОМ-объекту. Наиболее часто
    используемый клиентами интерфейс - _Connection. Он содержит методы, позволяюшие подключаться к
    источникам данных.

  • Щелкните интерфейс _Connection. В правой панели появится информация о нем.   
    Посмотрев содержание подраздела InprocServer32 в разделе CLSID в правой панели, Вы увидите, что
    там указан путь к oleaut32.dll - маршалеру Automation. Таким образом, за маршалинг этого
    интерфейса отвечает маршалер Automation, а это означает, что при передаче параметров и получении значений,
    возвращаемых методами этого интерфейса, Вы должны использовать только типы, оддерживаемые
    Automation (типы, которые можно упаковывать в структуре данных VARIANT).

       
    В разделе TypeLib находится подраздел Win32 со значением
    "C:\Program Files\Common Files\ADO\MSADO15.DLL", значит, библиотека типов скомпонована в DLL-сервера.

       
    Дважды щелкните интерфейс _Connection. Откроется диалоговое окно Default Interface Viewer.

  • В Диалоговом окне Default Interface Viewer щелкните View Type Info.
  • В диалоговом окне ITypeInfo Viewer щелкните знак "+" слева от узла Methods.
  • Пролистайте список вниз и найдите метод Open.
  • Щелкните метод Open.
  • В правой части окна появится подробные сведения об этом методе.
    Рис.2. Окно ITypeInfo Viewer

       
    Первая запись - это диспетчерский идентификатор. Ниже находятся параметры, передаваемые Вашим клиентским
    приложением в этот метод. Обратите внимание на использование только типов, поддерживаемых Automation.

  • Закройте диалоговое окно ITypeInfo Viewer.
  • В диалоговом окне Default Interface Viewer щелкните Close.
  • Щелкните знак "-" слева от узла ADODB.Connection.
  • Просмотр ActiveX-элемента.
  • Пролистайте вниз список узлов в левой части OLE/COM Object Viewer и найдите узел
    Microsoft ADO Data Control.
  • Щелкните узел Microsoft ADO Data Control. В правой части окна появятся подробные сведения об этом элементе управления.
  • В разделе CLSID Вы увидите подраздел InprocServer32, определенный как
    "cucтемный каталог\MSADODC.OCX". Элементы управления на базе ActiveX обычно
    находятся в файлах с расширением *.осх. (Тем не менее это DLL-файлы.)
  • В правой части окна Вы увидите раздел Control. Это еще одно потверждение того, что это ActiveX-элемент. ~
  • В левой панели щелкните знак "+" слева от узла Microsoft ADO Data Control.
  • Вы увидите большое количество поддерживаемых интерфесов. Там перечислены все интерфейсы, поддержка
    которых нужна большинству ActiveX-контейнеров.
  • Дважды щелкнете интерфейс IAdodc в узле Microsoft ADO Data Control.
  • В диалоговом окне Default Interface Viewer щелкните View Type Info.
  • В появившемся диалоговом окне ITypeInfo Viewer щелкните знак "+" слева от узла Methods, чтобы развернуть его.
  • Щелкните любой из методов. В правой части диалогового окна ITypeInfo Viewer появятся диспетчерский идентификатор и сигнатура метода.
  • Закройте диалоговое окно ITypeInfo Viewer.
  • В диалоговом окне Default Interface Viewer щелкните Close.
  • Закройте OLE/COM Object Viewer.

   
Со следующего шага мы начнем рассматривать создание COM-компонентов.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий