out-Attribut

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

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

Parameter

function-attribut-list

Gibt null oder mehr Attribute an, die für die Funktion gelten. Gültige Funktionsattribute sind [rückruf], [local]; das Zeiger-Attribut [ref], [unique] oder [ptr]; und die Verwendungsattribute [string], [ignore] und [context_handle].

Typbezeichner

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

Zeiger-Deklarator

Gibt null oder mehr Zeiger-Deklaratoren an. Ein Zeiger-Deklarator ist identisch mit dem Zeiger-Deklarator, der in C verwendet wird; es wird aus dem *-Designator, Modifizierern wie weit und der Qualifizierer konst konstruiert.

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 Attribut [out] können auch das direktionale Attribut [out]; die Feldattribute [first_is], [last_is], [length_is], [max_is], [size_is] und [switch_type]; das Zeiger-Attribut [ref], [unique] oder [ptr]; und die Verwendungsattribute [context_handle] und [Zeichenfolge]. Das Verwendungsattribute [ignore] kann nicht als Parameterattribute verwendet werden. Trennen Sie mehrere Attribute mit 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 Zeigern. Der Parameter-Deklarator im Funktionsdeklarationsator, z. B. der Parametername, ist optional.

Bemerkungen

Das Attribut [out] gibt an, dass ein Parameter, der als Zeiger fungiert, und dessen zugeordneten Daten im Arbeitsspeicher von der aufgerufenen Prozedur an die aufrufende Prozedur übergeben werden.

Das Attribut [out] muss ein Zeiger sein. DCE IDL-Compiler erfordern die Anwesenheit eines expliziten * als Zeiger-Deklarator in der Parameterdeklaration. Microsoft IDL bietet eine Erweiterung, die diese Anforderung abbricht und ein Array oder einen zuvor definierten Zeigertyp ermöglicht.

Ein verwandtes 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.

Ein [out]-only-Parameter wird angenommen, wenn die Remoteprozedur aufgerufen wird und der Speicher für das Objekt vom Server zugewiesen wird. Da Zeiger/Parameter auf oberster Ebene immer auf gültigen Speicher zeigen müssen und daher nicht NULL sein können, kann [out] nicht auf [eindeutig] oder [ptr]-Zeiger auf oberster Ebene angewendet werden. Parameter, die [eindeutig] oder [ptr]-Zeiger sind, müssen entweder [in] oder [in, out] 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