out-Attribut

Das [out]-Attribut identifiziert Zeigerparameter, die von der aufgerufenen Prozedur an die aufrufende Prozedur (vom Server zum Client) zurückgegeben werden.

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

Parameter

function-attribute-list

Gibt null oder mehr Attribute an, die für die Funktion gelten. Gültige Funktionsattribute sind [Callback], [local]; das Zeiger-Attribut [ref], [eindeutig], oder [ptr]; und die Verwendungsattribute [Zeichenfolge], [ignorieren] und [context_handle].

Typspezifizierer

Gibt einen base_type- oder Struktur-, Union- oder Enum-Typ oder Typbezeichner an. Eine optionale Speicherspezifikation kann dem Typbezeichner vorangestellt werden.

Zeiger-Deklarator

Gibt null oder mehr Zeiger-Deklaratoren an. Ein Zeigerdeklarations-Deklarator ist identisch mit dem Zeigerdeklarations-Deklarator, der in C verwendet wird. es wird aus dem * -Bezeichner, Modifizierern wie far und dem Qualifizierer const erstellt.

Funktionsname

Gibt den Namen der Remoteprozedur an.

parameter-attribut-list

Gibt null oder mehr Attribute an, die für einen angegebenen Parametertyp geeignet sind. Parameterattribute mit dem [out]-Attribut können auch das direktionale Attribut [out] annehmen; die Feldattribute [first_is], [last_is], [length_is], [max_is], [size_is] und [switch_type]; das Zeiger-Attribut [ref], [eindeutig], oder [ptr]; und die Verwendungsattribute [context_handle] und [Zeichenfolge]. Das Verwendungsattribut [ignore] kann nicht als Parameterattribute verwendet werden. Trennen Sie mehrere Attribute durch Kommas.

declarator

Gibt die Standard-Deklaratoren an, z. B. Bezeichner, Zeiger-Deklaratoren und Array-Deklaratoren. Weitere Informationen finden Sie unter Array- und Sized-Pointer Attribute, Arrays und Arrays und Zeiger. Der Parameterdeklarationsator im Funktionsdeklarationsator, z. B. der Parametername, ist optional.

Bemerkungen

Das [out]-Attribut gibt an, dass ein Parameter, der als Zeiger fungiert, und die zugehörigen Daten im Arbeitsspeicher von der aufgerufenen Prozedur an die aufrufende Prozedur zurückgegeben werden sollen.

Das [out]-Attribut muss ein Zeiger sein. DCE-IDL-Compiler erfordern das Vorhandensein eines expliziten * als Zeiger-Deklarator in der Parameterdeklaration. Microsoft IDL bietet eine Erweiterung, die diese Anforderung löscht und ein Array oder einen zuvor definierten Zeigertyp zulässt.

Das zugehörige Attribut [in] gibt an, dass der Parameter von der aufrufenden Prozedur an die aufgerufene Prozedur übergeben wird. Die Attribute [in] und [out] geben die Richtung an, in der die Parameter übergeben werden. Ein Parameter kann als [in]-only, [out]-only oder [in, out] definiert werden.

Es wird davon ausgegangen, dass ein [out]-only-Parameter nicht definiert ist, wenn die Remoteprozedur aufgerufen wird und arbeitsspeicher für das Objekt vom Server zugewiesen wird. Da Zeiger/Parameter der obersten Ebene immer auf einen gültigen Speicher verweisen müssen und daher nicht NULL sein können, kann [out] nicht auf [eindeutig] oder [ptr]-Zeiger der obersten Ebene angewendet werden. Parameter, die [eindeutig] oder [ptr]-Zeiger sind, müssen entweder [in] oder [in, out]-Parameter sein.

Beispiele

HRESULT MyFunction([out] short * pcount);

Weitere Informationen

Arrays

MIDL-Basistypen

Rückruf

const

context_handle

Enum

first_is

Ignorieren

In

last_is

length_is

lokal

max_is

Ptr

Ref

size_is

Schnur

Struktur

switch_type

union

Einzigartige