Шаг 24 - Перенаправление интерфейса и бинарная совместимость

При создании интерфейса создается IID. Давайте посмотрим на это, а для этого создадим COM DLL. Я создал с именем проекта Forward и именем класса ClassForward. В нем я создал один метод. Собираем DLL. Сразу ставим бинарную совместимость для того, чтобы дальше тестировать. Идем и находим запись в реестре. На данный момент она выглядит так:

gif/24_1.gif (3753 b)

А теперь добавим метод и соберем заново, смотрим реестр.

gif/24_2.gif (3387 b)

Ага, появилась запись Forward, то есть "вперед", нас отправляют по другому адресу.

gif/24_3.gif (2519 b)

Если добавить еще один метод, то нас отправят еще дальше:

gif/24_4.gif (3373 b)

Вот так и достигается бинарная совместимость, перенаправлением IID по другому адресу. Он каждый раз генерируется заново, но в реестр добавляется запись Forward для перенаправления. Данная реализация обходит некоторые правила COM, поэтому лучше создавать новый интерфейс для изменения функциональности или улучшения.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.