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 [ rückruf, ] [ local, ] das Zeigerattribut [ ref, ] [ eindeutigoder ] [ ptrund die ] Verwendungsattribute [ Zeichenfolge ] , [ ignorieren ] und [ _ Kontexthandle ] .

Typspezifizierer

Gibt einen _ Basistyp, eine Struktur, einen Union-oder Enumerationstyp oder einen Typbezeichner an. Eine optionale Speicherspezifikation kann dem Typspezifizierer vorangestellt werden.

Zeigerdeklarator

Gibt null oder mehr Zeigerdeklaratoren an. Ein Zeigerdeklarator entspricht dem in C verwendeten Zeigerdeklarator. sie wird aus dem * Bezeichner, Modifizierern wie far und dem Qualifizierer consterstellt.

Funktionsname

Gibt den Namen der Remoteprozedur an.

parameter-attribute-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 [ herausnehmen. Die ] Feldattribute sind [ zuerst _ ] , die letzte [ _ ist ] , die Länge [ _ ist ] , max [ _ ist ] , die Größe [ _ ist ] , und der [ _ Schaltertyp ] ; das Zeigerattribut [ ref ] , [ eindeutig ] oder [ ptr; und das ] [ _ Kontexthandle der Verwendungsattribute ] und die [ Zeichenfolge ] . Das Verwendungsattribut [ ignore ] kann nicht als Parameterattribut verwendet werden. Trennen Sie mehrere Attribute durch Kommas.

Deklarator

Gibt die Standarddeklaratoren an, z. B. Bezeichner, Zeigerdeklaratoren und Arraydeklaratoren. Weitere Informationen finden Sie unter Array- und Sized-Pointer Attribute, Arraysund Arrays und Zeiger. Der Parameterdeklarator im Funktionsdeklarator, 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 übergeben werden sollen.

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

Ein verknüpftes Attribut [ in ] gibt an, dass der Parameter von der aufrufenden Prozedur an die aufgerufene Prozedur übergeben wird. Die [ ] In- und [ Out-Attribute ] 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 zugeordnet wird. Da Zeiger/Parameter der obersten Ebene immer auf gültigen Speicher zeigen müssen und daher nicht NULL sein können, kann out nicht auf eindeutige Zeiger [ ] der obersten Ebene [ ] oder [ ptr-Zeiger angewendet ] werden. Parameter, die [ eindeutige ] oder [ ptr-Zeiger sind, ] müssen entweder [ in ] oder [ in ] out-Parametern sein.

Beispiele

HRESULT MyFunction([out] short * pcount);

Weitere Informationen

Arrays

MIDL-Basistypen

Rückruf

const

_Kontexthandle

Enum

_first ist

Ignorieren

In

last _ ist

length _ ist

lokal

max _ ist

Ptr

ref

size _ ist

Schnur

Struktur

_switch-Typ

union

Einzigartige