Реализация интерфейса

СОМ задает стандартный двоичный формат, который должен реализовать каждый СОМ-объект и для каждого интерфейса. Стандарт гарантирует, что любой клиент может вызывать операции любого объекта, причем независимо от языков программирования, на которых написаны клиент и объект.

Внешний указатель на интерфейс (указатель клиента) ссылается на внутренний указатель объекта СОМ. Внутренний указатель — это адрес виртуальной таблицы. Виртуальная таблица содержит указатели на все операции интерфейса.

Первые три элемента виртуальной таблицы являются указателями на операции, унаследованные от интерфейса IUnknown. Такая ситуация типична для любого СОМ-интерфейса.

Обработка клиентского вызова выполняется в следующем порядке:

· с помощью указателя на виртуальную таблицу извлекается указатель на требуемую операцию интерфейса;

· указатель на операцию обеспечивает доступ к ее реализации;

· исполнение кода операции обеспечивает требуемую услугу.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: