Уникальные идентификаторы

Как вы уже наверно успели заметить, в методе Queryinterface первым па-1 раметром мы передаем некий уникальный идентификатор запрашиваемого! интерфейса, имеющий тип данных tguid.
Глобальные идентификаторы являются ключевой составляющей библиотеки СОМ. Если просто посмотреть на этот идентификатор, то это обычная структура (запись), состоящая из 128 битов. При создании идентификатора гарантируется его уникальность. СОМ широко использует эти идентификаторы для следующих целей:

  • для уникальной идентификации СОМ-объекта. Такие идентификаторы называются идентификаторами класса (Class Identifier, CLSID). Они будут использоваться нами для создания конкретного СОМ-объекта;
  • для идентификации определенного интерфейса. Значение GUID, которое определяет некоторый интерфейс, будет называться идентификатором интерфейса (Interface Identifier, I.1D).

Несмотря на то, что уникальный идентификатор представляет собой структу­ру, его нередко записывают в виде строки. Ее формат — это пять шестнадцатеричных целых чисел в формате 8-4-4-4-12 ИЛИ «{хххххххх-хххх-хххх-
хххх-хххххххххххх}». Например, идентификатор интерфейса iDirect3D9:
{81BDCBCA-64D4-426d-AE8D-AD0147F4275C}
Идентификатор запомнить достаточно проблематично, и при его написании легко допустить ошибку. Гораздо проще использовать его эквивалентное имя. К примеру, это имя мы можем использовать для создания СОМ-объекта. По принятым соглашениям мы должны добавлять префиксы iid_ или clsid_ к имени интерфейса или объекта. Например, для интерфейса iDirect3D9 идентификатором будет выступать iiD_iDirect3

Желательно оставить комментарий, также можно поставить трэкбек со своего блога или сайта.

Написать сообщение

Яндекс.Метрика