Posted: Thu Oct 04, 2007 9:05 pm Post subject: Просмотр COM/OLE2/ActiveX утилита OleView.Exe
Утилита OLEVIEW под Windows. (OleView.Exe)
Автор: vga
Для просмотра COM объектов существует несколько путей, один из них — обратиться непосредственно к редактору реестра (Regedit.exe) и в разделе HKEY_CLASSES_ROO;I\CLSID\, просмотрев список СОМ-объектов, найти необходимый код объекта. Однако, если у вас установлен пакет Microsoft Visual Studio версии 5.0 и выше, то просмотр зарегистрированных СОМ-объектов легко решается с помощью утилиты OLE/COM Object Viewer (Oleview.exe).
Для работы с программой просмотра OLE- и СОМ-объектов в качестве первого шага необходимо запустить программу Oleview.exe, расположенную в папке С:\Program File\Microsoft Visual Studio\Common\Tools\, куда была установлена программа MS Visual Studio 5.0. После запуска OLE/COM Object Viewer выберем пункт All Objects (Все объекты).
Информация о COM объекте хранится в двоичном виде в специальном формате - в библиотеке типов. Библиотека типов может быть либо отдельным файлом, поставляемым вместе с компонентом ActiveX, либо быть подлинкованным к самому компоненту в виде двоичного ресурса. Самое важное - то, что Вы можете её просматривать так же, как это делает любой контроллер OLE Automation. Для этого как раз и существует просмотрщик библиотеки типов - программа oleview.exe.
Утилита показывает COM объекты, зарегистрированные в системе с помощью regsvr32.exe
Объектами могут быть файлы .dll (также может иметь расширение .ocx) - так называемый внутризадачный COM компонент; его выполнение происходит в контексте вызывающего процесса. .dll должна соответствовать некоторым требованиям, налагаемым на двоичный формат компонентов ActiveX, а именно - экспортировать несколько предопределенных функций:
DllCanUnloadNow - определяет, занята ли в настоящий момент .dll, и нельзя ли её выгрузить.
DllGetClassObject - функция, возвращающая ещё один интерфейс - IClassFactory для создания компонентов запрошенного типа. Также может возвращаться интерфейс IClassFactory2 - если компонент ActiveX поддерживает лицензирование (тоже обширный предмет исследования)
DllRegisterServer - используется для автоматической регистрации элементов ActiveX (помещает в реестр Windows информацию о местонахождении компонента, а также его библиотеки типов и характеристики самого компонента, например, может ли ActiveX компонент быть помещён на форму Visual Basic etc)
DllUnregisterServer - используется для автоматической дерегистрации компонента (скажем, при его удалении из системы)
Самое важное, что утилита позволяет на основании указанного COM объекта делать обратное преобразование - создавать "библиотеку типов" (Type Library), которую в дальнейшем можно использовать для подлинковки существующих DLL или COM в ваше приложение.
На уровне программиста-разработчика Type Library представляет собой Interface Definition Language (IDL) - специальный язык на котором абстрактно можно описать интерфейсы, компонент, как набор интерфейсов, реализуемых вместе, и сервер, как набор компонентов, располагающихся вместе. На уровне средства разработки оно представляет собой специальный компилятор MIDL, который позволяет откомпилировать составленное программистом описание и получить изоморфные ему структуры - реализацию proxy и stub и файл в специальном формате, содержащий описания IDL в двоичном, "понятном компоненту" виде.
В качестве простого примера работы с утилитой OleView.exe просмотрим установленный на рабочей станции OCX объект
"C:\Program Files\SAP\FrontEnd\SapGui\SAPfewin.OCX'
в котором реализованы методы взаимодействия с GUI интерфейсом сервера презентаций, в том числе ФМ 'GUI_GET_REGVALUE' чтения значений из реестра Windows.
Запускаем утилиту OleView.exe
Меню: File - View TypeLib
Выбираем файл 'C:\Program Files\SAP\FrontEnd\SapGui\SAPfewin.OCX'
Описание методов и их параметров видим в правом окне.
Если у вас не установлена MS Visual Studio, можете попробовать запустить утилиту отдельно:
OleView.zip
но проверить было не где, возможно каких-то библиотек не хватит.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.