emitidl
指定是否将处理所有后续 IDL 属性并将其放置在生成的 .idl 文件中。
语法
[ emitidl(state, defaultimports=boolean) ];
参数
State
其中一个可能的值:true
、false
、forced
、restricted
、push
或 pop
。
如果为
true
,在源代码文件中遇到的任何 IDL 类别属性都放置在生成的 .idl 文件中。 这是 emitidl 的默认设置。如果为
false
,在源代码文件中遇到的任何 IDL 类别属性都不放置在生成的 .idl 文件中。如果为
restricted
,则允许 IDL 属性位于没有模块属性的文件中。 编译器不生成 .idl 文件。如果为
forced
。则重写后续restricted
属性,此属性要求文件具有module
属性(如果文件中存在 IDL 属性)。push
允许将当前 emitidl 设置保存到内部 emitidl 堆栈,并允许pop
将 emitidl 设置为内部 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
。
要求
特性上下文 | 值 |
---|---|
适用于 | 任何位置 |
可重复 | 否 |
必需的特性 | 无 |
无效的特性 | 无 |
有关详细信息,请参见 特性上下文。