out (atributo)

El atributo [out] identifica los parámetros de puntero que se devuelven del procedimiento llamado al procedimiento de llamada (del servidor al cliente).

[ [function-attribute-list] ] type-specifier [pointer-declarator] function-name(
    [ out [ , parameter-attribute-list ] ] type-specifier [declarator]
    , ...
);

Parámetros

function-attribute-list

Especifica cero o más atributos que se aplican a la función. Los atributos de función válidos son [devolución de llamada], [local]; el atributo de puntero [ref], [unique], o [ptr]; y los atributos de uso [string], [ignore] y [context_handle].

type-specifier

Especifica un base_type, una estructura, una unión o un identificador de tipo de enumeración . Una especificación de almacenamiento opcional puede preceder al especificador de tipos.

pointer-declarator

Especifica cero o más declaradores de puntero. Un declarador de puntero es el mismo que el declarador de puntero utilizado en C; se construye a partir del designador * , modificadores como far y el calificador const.

function-name

Especifica el nombre del procedimiento remoto.

parameter-attribute-list

Especifica cero o más atributos adecuados para un tipo de parámetro especificado. Los atributos de parámetro con el atributo [out] también pueden tomar el atributo direccional [out]; los atributos de campo [first_is], [last_is], [length_is], [max_is], [size_is] y [switch_type]; el atributo de puntero [ref], [unique], o [ptr]; y los atributos de uso [context_handle] y [string]. El atributo de uso [ignore] no se puede usar como atributo de parámetro. Separe varios atributos con comas.

declarator

Especifica los declaradores estándar, como identificadores, declaradores de puntero y declaradores de matriz. Para obtener más información, vea Array and Sized-Pointer Attributes, arrays, and Arrays and Pointers. El declarador de parámetros en el declarador de función, como el nombre del parámetro, es opcional.

Comentarios

El atributo [out] indica que un parámetro que actúa como puntero y sus datos asociados en la memoria se van a devolver desde el procedimiento llamado al procedimiento que realiza la llamada.

El atributo [out] debe ser un puntero. Los compiladores IDL de DCE requieren la presencia de un * explícito como declarador de puntero en la declaración de parámetros. Microsoft IDL ofrece una extensión que quita este requisito y permite una matriz o un tipo de puntero definido previamente.

Un atributo relacionado, [in], indica que el parámetro se pasa del procedimiento que realiza la llamada al procedimiento llamado. Los atributos [in] y [out] especifican la dirección en la que se pasan los parámetros. Un parámetro se puede definir como [in]-only, [out]-only o [in, out].

Se supone que un parámetro de solo salida no está definido cuando se llama al procedimiento remoto y el servidor asigna memoria para el objeto. Dado que los parámetros o punteros de nivel superior siempre deben apuntar a un almacenamiento válido y, por lo tanto, no pueden ser NULL, [out] no se puede aplicar a punteros de nivel superior [único] o [ptr]. Los parámetros que son punteros [unique] o [ptr] deben ser parámetros [in] o [in, out].

Ejemplos

HRESULT MyFunction([out] short * pcount);

Vea también

Matrices

Tipos base MIDL

devolución de llamada

const

context_handle

Enum

first_is

Ignorar

in

last_is

length_is

Local

max_is

Ptr

Ref

size_is

Cadena

Estructura

switch_type

union

unique