В этом разделе мы не будем писать никакого кода. Вместо этого мы обсудим, как ActiveX-элемент регистрируется в компьютере.
Все ActiveX-элементы, используемые на компьютере, прописаны в реестре. Для их просмотра запустите редактор реестра. Для этого
1.Нажмите на кнопку "Пуск"
2.Выберете Запустить (Run), и в появившемся окошке впечатайте regedit (рис. 19)), после чего нажмите, разумеется, OK.
3.Появится окно редактора реестра (рис. 20))
Найдём в реестре наш только что созданный ActiveX-элемент Star. Для этого нажмите комбинацию клавиш Ctrl+F, и в появившемся окошке наберите полный путь к нашему ActiveX-элементу (т. е. что-то вроде D:\VB_star\star.ocx). Нажмите Find Next. Через некоторое время нужная запись в реестре будет найдена.
После нахождения нужного места в реестре (рис. 21)) обратите внимание на следующие вещи.Первое. Каждому ActiveX-элементу соответствует некоторое страшное длинное шестнадцатеричное число (на рис. 21) это {419A3BC3-D2A2-4CB0-9169-3D7F07C5ECAF}. На Вашем компьютере это число будет другим). Это так называемый Глобальный идентификатор (GUID по-английски). Это число служит для того, чтобы однозначно идентифицировать некий объект (ActiveX-элемент в нашем случае). Число это порождается автоматически в момент создания ActiveX-элемента, при этом гарантируется, что каждый раз оно будет разным, т. е. что в мире не может породиться двух одинаковых GUID. Подчеркнём здесь, что гарантируется уникальность всех GUID на всех компьютерах во всей Вселенной, т. е. если на каждом компьютере мира каждую секунду будут создавать миллион новых ActiveX-элементов, то гарантированно за миллион лет не возникнет двух одинаковых GUID (слегка переделанная фраза из научно-популярных книжек).
Как достигается уникальность порождения GUID? Во-первых, он порождается на основе MAC-адреса сетевой карты компьютера . А как известно у всех сетевых карт мира MAC-адреса различны. Таким образом гарантируется отличие GUID на разных компьютерах. Во-вторых, используется текущее время (тем самым все порождающиеся GUID'ы в пределах одного компьютера будет различными). И в-третьих, используется ещё целый ряд функций, которые возвращают гарантированно разные значения.
GUID порождается API-функцией CoCreateGuid.
Второе. Обратите внимание на то, что под одним GUID у нас может находиться несколько версий ActiveX-элемента (В приведённом рисунке это 1.0 и 2.0. Разумеется, если Вы при компиляции ocx-файла указали для версии только номер 1 0 0, то в реестре Вы бы увидели только одну версию. Показанный рисунок соответствует ситуации, когда Вы скомпилировали две версии для одного ActiveX-элемента).
При компиляции другой по номеру версии ActiveX-элемента используется старый GUID.
Таким образом для однозначной идентификации ActiveX-элемента нам кроме его GUID надо определить и номер его версии.
Вы можете поинтересоваться, а зачем мы вообще обсуждаем этот столь не дружественный для человека GUID? Оказывается, и он применяется в некоторых чисто практически вопросах. Но об этом - в следующем разделе.
Далее