Поделиться через


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

Указывает base_type, структуру, объединение, тип перечисления или идентификатор типа. Необязательная спецификация хранилища может предшествовать описательу типа.

указатель-декларатор

Указывает ноль или несколько деклараторов указателей. Декларатор указателя совпадает с декларатором указателя, используемым в 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] и [строка]. Атрибут использования [ignore] нельзя использовать в качестве атрибута параметра. Разделяйте несколько атрибутов запятыми.

declarator

Задает стандартные деклараторы, такие как идентификаторы, деклараторы указателей и деклараторы массива. Дополнительные сведения см. в разделе Атрибуты массива и Sized-Pointer, массивы и массивы и указатели. Декларатор параметров в деклараторе функции, например имя параметра, является необязательным.

Комментарии

Атрибут [out] указывает, что параметр, который выступает в качестве указателя, и связанные с ним данные в памяти должны быть переданы обратно из вызываемой процедуры в вызывающую процедуру.

Атрибут [out] должен быть указателем. Компиляторы IDL DCE требуют наличия явного символа * в качестве декларатора указателя в объявлении параметра. Microsoft IDL предлагает расширение, которое отменяет это требование и позволяет использовать массив или ранее определенный тип указателя.

Связанный атрибут [in] указывает, что параметр передается из вызывающей процедуры в вызываемую процедуру. Атрибуты [in] и [out] указывают направление, в котором передаются параметры. Параметр может быть определен как [in]-only, [out]-only или [in, out].

Предполагается, что параметр [out] не определен при вызове удаленной процедуры и выделении памяти для объекта сервером. Так как указатель или параметры верхнего уровня всегда должны указывать на допустимое хранилище и, следовательно, не могут иметь значение NULL, [out] нельзя применять к указателям верхнего уровня [unique] или [ptr]. Параметры, которые являются указателями [unique] или [ptr], должны быть параметрами [in] или [in, out].

Примеры

HRESULT MyFunction([out] short * pcount);

См. также раздел

Массивы

Базовые типы MIDL

Обратного вызова

const

context_handle

Перечисления

first_is

Игнорировать

В

last_is

length_is

Местных

max_is

Ptr

Ref

size_is

строка

Структура

switch_type

union

Уникальный