IDL-описаниеи библиотека типа

 

Помимо информации об интерфейсах, IDL-описание может содержать информацию о библиотеке типа.

Библиотека типа определяет важные для клиента характеристики СОМ-объекта: имя его класса, поддерживаемые интерфейсы, имена и адреса элементов интерфейса.

Рассмотрим пример приведенного ниже IDL-описания объекта для работы с файлами. Оно состоит из 3 частей. Первые две части описывают интерфейсы IРаботаСФайлами и IПреобразованиеФорматов, третья часть– библиотеку типа ФайлыБибл. По первым двум частям компилятор MIDL генерирует код посредников и заглушек, по третьей части – код библиотеки типа:

-----------1-я часть

[ object,

uuid(E7CDODOO-1827-11CF-9946-444553540000) ]

interface IРаботаСФайлами; IUnknown

{ import "unknown.idl"

HRESULT ОткрытьФайл ([in] OLECHAR имя[31]);

HRESULT ЗаписатьФайл ([in] OLECHAR имя[31]);

HRESULT ЗакрытьФайл ([in] OLECHAR имя[31]);

}

----------– 2-я часть

[ object.

uuid(5FBDD020-1863-11CF-9946-444553540000) ]

interface IПреобразованиеФорматов: IUnknown

{ HRESULT ПреобразоватьФормат ([in] OLECHAR имя[31],

[in] OLECHAR формат[31]);

}

-----------– 3-я часть

[ uuid(B253E460-1826-11CF-9946-444553540000),

version (1.0)]

library ФайлыБибл

{ importlib ("stdole32.tlb");

[uuid(B2ECFAAO-1827-11CF-9946-444553540000) ]

coclass СоФайлы

{ interface IРаботаСФайлами;

interface IпреобразованиеФорматов;

}

}

Описание библиотеки типа начинается с ее уникального имени (записывается после служебного слова uuid), затем указывается номер версии библиотеки.

После служебного слова library записывается символьное имя библиотеки (ФайлыБибл).

Далее в операторе importlib указывается файл со стандартными определениями IDL – stdole32.tlb.

Тело описания библиотеки включает только один элемент – СОМ-класс (coclass), на основе которого создается СОМ-объект.

В начале описания СОМ-класса приводится его уникальное имя (это и есть идентификатор класса – CLSID), затем символьное имя – СоФайлы. В теле класса перечислены имена поддерживаемых интерфейсов – РаботаСФайлами и IПреобразованиеФорматов.

Как показано на рис. 13.24, доступ к библиотеке типа выполняется по стандартному интерфейсу ITypeLib, а доступ к отдельным элементам библиотеки – по интерфейсу ITypelnfo.

Рис. 13.24. Доступ к библиотеке типа








Дата добавления: 2019-02-07; просмотров: 387;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.