英語で読む

次の方法で共有


notify 属性

[notify] 属性は、アプリケーションのサーバー側で [notify] プロシージャの呼び出しを生成するように MIDL コンパイラに指示します。

[notify] procedure-name();

パラメーター

procedure-name

通知プロシージャーが関連付けられるリモート・プロシージャーの名前。

解説

[notify] 属性の結果として呼び出される [notify] プロシージャは、サーバー上の特定のリモート プロシージャに関連付けられます。 これは、概念的にはコールバック関数と似ています。 スタブは、関連付けられているリモート プロシージャのすべての出力引数がマーシャリングされ、パラメーターに関連付けられているすべてのメモリが解放された後、 [notify] プロシージャを呼び出します。 [notify] ルーチンは、サーバー ルーチンが実行される前に呼び出しが失敗した場合に呼び出されます。 たとえば、クライアントからの不適切なデータの受信が原因でマーシャリング解除中にサーバーが失敗した場合、[notify] ルーチンが呼び出されます。

[notify] 属性は、リモート プロシージャでリソースを取得するアプリケーションを開発するのに役立ちます。 これらのリソースは、リモート プロシージャの出力パラメーターが完全にマーシャリングされた後、[ notify] プロシージャで解放されます。

[notify] プロシージャ名は、_notifyによってサフィックスが付いたリモート プロシージャの名前です。 _notify プロシージャはパラメーターを必要とせず、結果を返しません。 このプロシージャのプロトタイプもヘッダー ファイルで生成されます。 たとえば、IDL ファイルに次のものが含まれている場合です。

MyProcedure([in] short S);

_NOTIFY呼び出しを生成するには、MIDL の ACF で次を指定します。

[notify] MyProcedure();

MIDL コンパイラは、 _notify プロシージャの次の呼び出しを含むサーバー スタブ コードを生成します。

MyProcedure_notify();

ヘッダー ファイルにはプロトタイプが含まれます。

void MyProcedure_notify(void);

[notify] MyProcedure();

関連項目

アプリケーション構成ファイル (ACF)