Атрибут notify
Атрибут [notify] указывает компилятору MIDL создать вызов процедуры [notify] на стороне сервера приложения.
[notify] procedure-name();
-
имя процедуры
-
Имя удаленной процедуры, с которой будет связана процедура уведомления.
Процедура [notify] , вызываемая в результате атрибута [notify] , связана с определенной удаленной процедурой на сервере. Это похоже на функцию обратного вызова. Заглушка вызывает процедуру [уведомлять] после того, как все выходные аргументы удаленной процедуры, с которой она связана, будут маршалированы, а вся память, связанная с параметрами, освобождается. Подпрограмма [notify] вызывается, если вызов завершается сбоем перед выполнением серверной подпрограммы. Например, если сервер завершается сбоем во время отмены маршалинга из-за получения неверных данных от клиента, вызывается подпрограмма [уведомлять].
Атрибут [notify] полезен для разработки приложений, приобретающих ресурсы в удаленных процедурах. Эти ресурсы затем освобождаются в процедуре [notify] после полного маршалинга выходных параметров удаленной процедуры.
Имя процедуры [notify] — это имя удаленной процедуры с суффиксом _notify. Процедура _notify не требует никаких параметров и не возвращает результат. Прототип этой процедуры также создается в файле заголовка. Например, если IDL-файл содержит следующее:
MyProcedure([in] short S);
Укажите следующее в ACF для MIDL, чтобы создать вызов _notify :
[notify] MyProcedure();
Компилятор MIDL создаст код заглушки сервера, который содержит следующий вызов процедуры _notify :
MyProcedure_notify();
Файл заголовка будет содержать прототип:
void MyProcedure_notify(void);
[notify] MyProcedure();