emitidl

指定是否将处理所有后续 IDL 属性并将其放置在生成的 .idl 文件中。

语法

[ emitidl(state, defaultimports=boolean) ];

参数

State
其中一个可能的值:truefalseforcedrestrictedpushpop

  • 如果为 true,在源代码文件中遇到的任何 IDL 类别属性都放置在生成的 .idl 文件中。 这是 emitidl 的默认设置。

  • 如果为 false,在源代码文件中遇到的任何 IDL 类别属性都不放置在生成的 .idl 文件中。

  • 如果为 restricted,则允许 IDL 属性位于没有模块属性的文件中。 编译器不生成 .idl 文件。

  • 如果为 forced。则重写后续 restricted 属性,此属性要求文件具有 module 属性(如果文件中存在 IDL 属性)。

  • push 允许将当前 emitidl 设置保存到内部 emitidl 堆栈,并允许 popemitidl 设置为内部 emitidl 堆栈顶部的任何值。

defaultimports=布尔值(可选)

  • 如果布尔值true,docobj.idl 将导入到生成的 .idl 文件中。 此外,如果发现 .dl 文件与 .h 文件在同一个目录下,其中 .dl 文件与 #include 添加到源代码的 .h 文件名称相同,则生成的 .idl 包含该 .idl 文件的 import 语句。

  • 如果布尔值false,docobj.idl 不会导入到生成的 .idl 文件中。 必须使用 import 显式导入 .idl 文件。

备注

在源代码文件中遇到 emitidl C++ 属性后,IDL 类别属性将放置在生成的 .idl 文件中。 如果没有 emitidl 属性,则源代码文件中的 IDL 属性将输出到生成的 .idl 文件。

可以在源代码文件中有多个 emitidl 属性。 如果在没有后续 [emitidl(true)]; 操作的文件中遇到 [emitidl(false)];,则不会将任何属性处理到生成的 .idl 文件中。

每次编译器遇到新文件时,emitidl 都会隐式设置为 true

要求

特性上下文
适用于 任何位置
可重复
必需的特性
无效的特性

有关详细信息,请参见 特性上下文

另请参阅

编译器特性
独立特性