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 Attribut [notify] weist den MIDL-Compiler an, einen Aufruf einer [notify] -Prozedur auf der Serverseite der Anwendung zu generieren.
[notify] procedure-name();
Parameter
-
Prozedurname
-
Der Name der Remoteprozedur, der die Benachrichtigungsprozedur zugeordnet wird.
Bemerkungen
Die [notify] -Prozedur, die als Ergebnis des [notify] -Attributs aufgerufen wird, ist einer bestimmten Remoteprozedur auf dem Server zugeordnet. Das Konzept ähnelt einer Rückruffunktion. Der Stub ruft die [notify] -Prozedur auf, nachdem alle Ausgabeargumente der Remoteprozedur, der sie zugeordnet ist, gemarshallt wurden und der den Parametern zugeordnete Arbeitsspeicher freigegeben wurde. Die [notify] -Routine wird aufgerufen, wenn ein Aufruf fehlschlägt, bevor die Serverroutine ausgeführt wird. Wenn beispielsweise ein Server während der Aufhebung derMarshaling aufgrund des Empfangs fehlerhafter Daten vom Client fehlschlägt, wird die [notify]-Routine aufgerufen.
Das [notify] -Attribut ist nützlich, um Anwendungen zu entwickeln, die Ressourcen in Remoteprozeduren abrufen. Diese Ressourcen werden dann in der [notify] -Prozedur freigegeben, nachdem die Ausgabeparameter der Remoteprozedur vollständig gemarshallt wurden.
Der Name der [notify] -Prozedur ist der Name der Remoteprozedur mit dem Suffix _notify. Die _notify Prozedur erfordert keine Parameter und gibt kein Ergebnis zurück. Ein Prototyp dieser Prozedur wird auch in der Headerdatei generiert. Beispiel: Die IDL-Datei enthält Folgendes:
MyProcedure([in] short S);
Geben Sie im ACF für MIDL Folgendes an, um den _notify Aufruf zu generieren:
[notify] MyProcedure();
Der MIDL-Compiler generiert Serverstubcode, der den folgenden Aufruf der _notify-Prozedur enthält:
MyProcedure_notify();
Die Headerdatei enthält einen Prototyp:
void MyProcedure_notify(void);
Beispiele
[notify] MyProcedure();
Weitere Informationen