out 特性
[out] 属性标识从被调用过程返回到调用过程 (从服务器到客户端) 的指针参数。
[ [function-attribute-list] ] type-specifier [pointer-declarator] function-name(
[ out [ , parameter-attribute-list ] ] type-specifier [declarator]
, ...
);
-
function-attribute-list
-
指定应用于函数的零个或多个属性。 有效的函数属性为 [callback]、 [local];指针属性 [ref]、[unique]或 [ptr];和用法属性 [string]、[ignore] 和 [context_handle]。
-
type-specifier
-
pointer-declarator
-
指定零个或多个指针声明符。 指针声明符与 C 中使用的指针声明符相同;它由 * 指示符、修饰符(如 far)和限定符 const 构造。
-
function-name
-
指定远程过程的名称。
-
parameter-attribute-list
-
指定适用于指定参数类型的零个或多个属性。 具有 [out] 属性的参数属性也可以采用方向属性 [out];字段属性 [first_is]、[last_is]、[length_is]、[max_is]、[size_is]和 [switch_type];指针属性 [ref]、[unique]或 [ptr];和用法属性 [context_handle] 和 [string]。 usage 属性 [ignore] 不能用作参数属性。 用逗号分隔多个属性。
-
declarator
-
指定标准声明符,例如标识符、指针声明符和数组声明符。 有关详细信息,请参阅 数组和Sized-Pointer属性、 数组和 数组和指针。 函数声明符中的参数声明符(如参数名称)是可选的。
[out] 属性指示充当指针的参数及其在内存中的关联数据将从调用过程传回调用过程。
[out] 属性必须是指针。 DCE IDL 编译器要求在参数声明中存在显式 * 作为指针声明符。 Microsoft IDL 提供了一个扩展,该扩展可删除此要求,并允许数组或以前定义的指针类型。
相关属性 [in]指示参数从调用过程传递到被调用的过程。 [in] 和 [out] 属性指定参数的传递方向。 参数可以定义为 [in]-only、[out]-only 或 [in, out]。
当调用远程过程并由服务器分配对象的内存时,假定未定义 [out]-only 参数。 由于顶级指针/参数必须始终指向有效的存储,因此不能为 NULL,因此[out] 不能应用于顶级 [unique] 或 [ptr] 指针。 [unique] 或 [ptr] 指针的参数必须是 [in] 或 [in, out] 参数。
HRESULT MyFunction([out] short * pcount);