У каждого интерфейса СОМ два имени. Простое, символьное имя предназначено для людей, оно не уникально (допускается, чтобы это имя было одинаковым у двух интерфейсов). Другое, сложное имя предназначено для использования программами. Программное имя уникально, это позволяет точно идентифицировать интерфейс.
Принято, чтобы символьные имена СОМ-интерфейсов начинались с буквы I (от Interface). Программное имя любого интерфейса образуется с помощью глобально уникального идентификатора (globally unique identifier — GUID). GUID интерфейса считается идентификатором интерфейса (interface identifier — IID). GUID — это 16-байтовая величина (128-битовое число), генерируемая автоматически.
Уникальность во времени достигается за счет включения в каждый GUID метки времени, указателя момента создания. Уникальность в пространстве обеспечивается цифровыми параметрами компьютера, который использовался для генерации GUID.
Описание интерфейса
Для определения интерфейсов применяют специальный язык — язык описания интерфейсов (Interface Definition Language — IDL). Описание интерфейса начинается со слова object, отмечающего, что будут использоваться расширения, добавленные СОМ к оригинальному IDL. Далее записывается программное имя (IID интерфейса), оно начинается с ключевого слова uuid (Universal Unique Identifier — универсально уникальный идентификатор). UUID является синонимом термина GUID.
|
|
По правилам СОМ запрещается любое изменение интерфейса (после его публикации). Для реализации изменений нужно вводить новый интерфейс. Такой интерфейс может быть наследником старого интерфейса, но отличен от него и имеет другое уникальное имя.
Значение правила запрета на изменение интерфейса трудно переоценить. Оно — залог стабильности работы в среде, где множество клиентов взаимодействует с множеством СОМ-объектов и где независимая модификация СОМ-объектов — обычное дело. Именно это правило позволяет клиентам старых версий не пострадать при введении новых версий СОМ-объектов. Новая версия обязана поддерживать и старый СОМ-интерфейс.