midl_user_allocate属性
midl_user_allocate関数は、クライアント アプリケーションとサーバー アプリケーションがメモリを割り当てるために提供する関数です。
void __RPC_FAR * __RPC_API midl_user_allocate (size_t cBytes);
パラメーター
-
cBytes
-
割り当てるバイト数を指定します。
解説
OSF 互換 (/osf) モードでコンパイルする場合を除き、クライアント アプリケーションとサーバー アプリケーションの両方でmidl_user_allocate関数を実装する必要があります。 アプリケーションと生成されたスタブは、ポインターによって参照されるオブジェクトを処理するときに midl_user_allocate を呼び出します。
- 新しいノードを作成する場合など、サーバー アプリケーションは midl_user_allocate を呼び出してアプリケーションのメモリを割り当てる必要があります。
- サーバー スタブは 、 ポイントされたデータをサーバー アドレス空間にマーシャリング解除すると、midl_user_allocateを呼び出します。
- クライアント スタブは、out ポインターによって参照されるサーバーからデータのマーシャリングを解除すると、midl_user_allocateを呼び出します。 [in]、[out]、および [unique] ポインターの場合、クライアント スタブは、入力時に [unique] ポインター値が NULL であり、呼び出し中に NULL 以外の値に変更された場合にのみ、midl_user_allocateを呼び出します。 [unique] ポインターが入力時に NULL 以外の場合、クライアント スタブは関連付けられたデータを既存のメモリに書き込みます。
midl_user_allocateがメモリの割り当てに失敗した場合は、NULL ポインターを返す必要があります。
8 バイトアラインされたポインター midl_user_allocate 返すようにすることをお勧めします。
例
#include <windows.h>
void __RPC_FAR * __RPC_API midl_user_allocate(size_t cBytes)
{
return(malloc(cBytes));
}
関連項目