Создание библиотеки типов с помощью MIDL
Элемент верхнего уровня синтаксиса ODL — это инструкция библиотеки (блок библиотеки). Каждая другая инструкция ODL, за исключением атрибутов, применяемых к инструкции библиотеки, должна быть определена в блоке библиотеки. Когда компилятор MIDL видит блок библиотеки, он создает библиотеку типов так же, как и MkTypLib. При некоторых исключениях, описанных в разделе Отличия между MIDL и MKTYPLIB, инструкции в блоке библиотеки должны соответствовать тому же синтаксису, что и в языке ODL и MkTypLib.
Заметка
Инструмент Mktyplib.exe устарел. Вместо этого используйте компилятор MIDL.
Атрибуты ODL можно применить к элементам, определенным внутри или за пределами блока библиотеки. Если элемент, к которому применены эти атрибуты, не ссылается изнутри блока библиотеки, они не имеют эффекта за пределами этого блока. Операторы внутри блока библиотеки могут ссылаться на внешний элемент, используя его в качестве базового типа, наследуя его или ссылаясь на него в строке, как показано.
<some IDL definitions including definitions for interface IFace and struct bar>
[<some attributes>]
library a
{
interface IFace;
struct this_struct;
...
};
Если элемент, определенный вне блока библиотеки, упоминается в блоке библиотеки, его определение будет помещено в генерируемую библиотеку типов. Компилятор MIDL обрабатывает инструкции за пределами блока библиотеки как типичный IDL-файл и анализирует эти инструкции, как это всегда сделано. Как правило, это означает создание заглушки кода на языке C для приложения RPC.
Дополнительные сведения об общем синтаксисе для ODL-файла см. в разделе ODL File Syntax.