§ 13. Использование GUID в качестве идентификаторов компонентов.
Кроме уникальной идентификации
интерфейсов, GUID используется и для уникальной
идентификации компонентов. Мы определим для создания компонентов функции CallСreateInstance.
Параметром этой функции служит строка с именем DLL, в которой содержится компонент:
IUnknown* CallСreateInstance (char*name);
Эту функцию заменим на функцию
библиотеки СОМ CоСreateInstance, которая использует для идентификации, компонента на
строку, а CUID. Такой GUID в СОМ называется идентификатором класса. Чтобы
отличить идентификаторы классов от IDD, для
них используют тип CLSID.
Подобно интерфейсам, все
компоненты имеют различные идентификаторы. Два компонента могут реализовать
одинаковые наборы интерфейсов, но у них должны быть свои CLSID. Компоненты могут добавлять новые интерфейсы, не
изменяя CLSID. Однако
если изменения компонента отражается на работе приложения, компоненту надо дать
новый CLSID.