notify-Attribut
Das Attribut [notify] weist den MIDL-Compiler an, einen Aufruf einer [notify] -Prozedur auf der Serverseite der Anwendung zu generieren.
[notify] procedure-name();
-
Prozedurname
-
Der Name der Remoteprozedur, der die Benachrichtigungsprozedur zugeordnet wird.
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);
[notify] MyProcedure();