explicit_handle 属性

[explicit_handle] ACF 属性指定每个过程都有一个基元句柄作为其第一个参数,例如 handle_t 类型。

[
    explicit_handle
] 
interface interface-name
{
    ...
}

参数

interface-name

指定接口的名称。

备注

使用 [explicit_handle] 属性时,每个过程都有一个基元句柄作为其第一个参数,即使 IDL 文件在其参数列表中不包含此句柄也是如此。 发送到头文件和存根例程的原型包含附加参数,该参数用作定向远程调用的句柄。

[explicit_handle] 属性同时影响远程过程和序列化过程。 对于类型序列化,支持例程使用初始参数作为显式 (序列化) 句柄生成。 如果未使用 [explicit_handle] 属性,则应用程序仍可以指定操作具有显式句柄 (绑定或序列化) 定向调用。 为此,向 IDL 文件提供包含句柄类型的参数的原型。 请注意,在默认模式下,未首先出现的参数也可以用作指示调用的句柄。

因此,虽然 [explicit_handle] 属性是一种为 IDL 原型提供基元 [explicit_handle] 属性的方法,但它不一定需要更改 IDL 文件。 在 /osf 模式下,只有第一个参数可用作显式句柄类型。

[explicit_handle] 属性可用作接口属性或操作属性。 作为接口属性,它会影响接口中的所有操作以及需要序列化支持的所有类型。 但是,如果将其用作操作属性,则它仅影响该特定操作。 如果方法包含一个或多个 [in] 上下文句柄,则最左边的 [in] 上下文句柄将用作绑定句柄,并且不会创建其他显式句柄。

示例

/* ACF File */ 
[
    explicit_handle
] 
interface iface
{ 
    // Interface definition statements.
};

另请参阅

应用程序配置文件 (ACF)

auto_handle

implicit_handle

/osf