Поделиться через


Атрибут 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();

См. также раздел

Файл конфигурации приложения (ACF)