На этом шаге мы приведем общие сведения о глобально уникальных идентификаторах.
GUID - это 128-разрядные числовые идентификаторы, указывающие СОМ-объекты и предоставляемые ими интерфейсы. Они гарантированно уникальны в глобальном масштабе и останутся таковыми остаточно долго. Для генерации GUID своих компонентов и интерфейсов Вы будете пользоваться консольной утилитой UUIDGEN.EХЕ (или ее GUI-версией GUIDGEN.EXE).
Детальное строение GUID показано на рисунке 1.
Рис.1. Строение GUID
Известны два вида представления GUID - строковый и числовой. Строковый формат применяется в системном реестре. Числовое представление GUID требуется при использовании в клиентских приложениях и при реализации СОМ-объекта.
Как показано на рисунке 1, числовое представление GUID состоит bp 128 бит. Беззнаковое целое Data1 типа long в структуре _GUID имеет длину 32 бита, поля Data2 и Data3 - беззнаковые целые типа short длиной 16 бит, а каждая из восьми беззнаковых переменных типа char занимает 8 бит. Их общая длина составляет 128 бит.
Работая с числовым представлением в СОМ-объекте или в коде клиента на C++, нужно объявить переменную и инициализировать ее макросом, который носит имя DEFINE_GUID и находится в заголовочном файле initguid.h. Как правило, имя переменной GUID имеет приставку CLSID или IID, что позволяет отличить GUID COM-объекта от глобального идентификатора интерфейса.
На следующем шаге мы рассмотрим элементы реестра, относящиеся к COM.