Gerando uma biblioteca de tipos com MIDL
O elemento de nível superior da sintaxe ODL é a instrução library (bloco de biblioteca). Todas as outras instruções ODL, com exceção dos atributos aplicados à instrução library, devem ser definidas dentro do bloco de biblioteca. Quando o compilador MIDL vê um bloco de biblioteca, ele gera uma biblioteca de tipos da mesma maneira que o MkTypLib. Com algumas exceções, descritas em Diferenças entre MIDL e MKTYPLIB, as instruções dentro do bloco de biblioteca devem seguir a mesma sintaxe que na linguagem ODL e MkTypLib.
Observação
A ferramenta Mktyplib.exe está obsoleta. Em vez disso, use o compilador MIDL.
Você pode aplicar atributos ODL a elementos que são definidos dentro ou fora do bloco de biblioteca. Esses atributos não têm efeito fora do bloco de biblioteca, a menos que o elemento ao qual são aplicados seja referenciado dentro do bloco de biblioteca. Instruções dentro do bloco de biblioteca podem referenciar um elemento externo usando-o como um tipo base, herdando-o ou referenciando-o em uma linha, conforme mostrado:
<some IDL definitions including definitions for interface IFace and struct bar>
[<some attributes>]
library a
{
interface IFace;
struct this_struct;
...
};
Se um elemento definido fora do bloco de biblioteca for referenciado dentro do bloco de biblioteca, sua definição será colocada na biblioteca de tipos gerada. O compilador MIDL trata as instruções fora de um bloco de biblioteca como um arquivo IDL típico e analisa essas instruções como sempre fez. Normalmente, isso significa gerar stubs de linguagem C para um aplicativo RPC.
Para obter mais informações sobre a sintaxe geral de um arquivo ODL, consulte Sintaxe de arquivo ODL.