Категория
Информатика
Тип
реферат
Страницы
2 стр.
Дата
18.09.2008
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
20829.zip — 29.34 kb
  • perexvat-metodov-interfejsa-iunknown_20829_1.rtf — 330.85 Kb
  • Readme_docus.me.txt — 125 Bytes
Оцените работу
Хорошо  или  Плохо


Текст работы

Перехват методов интерфейса IUnknown Alena Alena
Перехват методов интерфейса IUnknown
Алексей Остапенко
Введение
В этой статье рассматривается технология, позволяющая перехватывать вызовы методов интерфейса IUnknown COM-объекта. Кроме исследовательских целей, эта технология может иметь и практическое применение. Она позволяет осуществлять такие полезные действия, как почти прозрачная подмена контекста пользователя, “под которым” производятся вызовы методов удаленного объекта, “агрегирование” удаленных
объектов, агрегирование объектов, не поддерживающих агрегацию и т.п. С исследовательской точки зрения перехват вызовов IUnknown позволяет заглянуть
во внутренности взаимодействия приложения и используемых им COM-объектов
. Например, отлаживая приведенный в статье пример, я обнаружил, что вызов функции CreateObject скриптового рантайма приводит к запросу четырех (!) интерфейсов вместо одного у создаваемого объекта. :)
Немного теории
Интерфейс IUnknown является основополагающим элементом COM. Он имеет 3 метода, управляющих доступом к другим интерфейсам объекта:
QueryInterface.
AddRef.
Release.
Перехватив вызовы методов IUnknown, можно управлять набором интерфейсов, предоставляемых объектом “наружу” (например, можно спрятать некоторые из них или добавить свои интерфейсы, сделав вид, что они тоже предоставляются
объектом), а также управлять некоторыми параметрами вызова методов интерфейсов (например, proxy blanket’ ом). Любой другой интерфейс, наследуемый от IUnknown, соответственно, наследует и эти три метода.
Работа с любым интерфейсом осуществляется через указатель на этот интерфейс. Физически указатель на интерфейс – это указатель на переменную,
которая, в свою очередь, указывает



Ваше мнение



CAPTCHA