Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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