Pointer-Attribute类型继承
根据 DCE 规范,每个 IDL 文件必须为其指针定义属性。 如果未将显式属性分配给指针,则指针将使用 [ pointer_default] 关键字 (keyword) 指定的值。 某些 DCE 实现不允许使用未归因指针。 如果指针没有显式属性,则 IDL 文件必须具有 [pointer_default] 规范,以便可以设置指针属性。
在默认 (Microsoft-extensions) 模式下,可以在导入定义 IDL 文件的 IDL 文件中指定指针的 属性。 在一个 IDL 文件中定义的指针可以继承在其他 IDL 文件中指定的属性。 此外,在默认模式下,IDL 文件可以包含未归因的指针。 如果基文件和导入的 IDL 文件均未指定指针属性或 [pointer_default],则未归因的指针将被解释为唯一指针。
MIDL 编译器使用以下优先级规则将指针属性分配给指针, (1 是最高) 。
优先级 | 说明 |
---|---|
1 | 显式指针属性应用于定义或使用站点上的指针。 |
2 | 默认值为 IDL 文件中定义类型的 [pointer_default] 属性。 |
3 | 默认值为导入类型的 IDL 文件中的 [pointer_default] 属性。 |
4 | 在 DCE 兼容模式下,默认值为 [ ptr],在 Microsoft 扩展模式下为 [ 唯一]。 |