埋め込みOut-Only参照ポインター
Microsoft RPC で [出力] のみの参照ポインターを使用すると、生成されたサーバー スタブによって、参照ポインターからアクセスできるポインターの最初のレベルのみが割り当てられます。 より深いレベルのポインターはスタブによって割り当てられないが、サーバー アプリケーション レイヤーによって割り当てられる必要があります。 たとえば、インターフェイスが参照ポインターの [out] のみの配列を指定するとします。
/* IDL file (fragment) */
typedef [ref] short * PREF;
Proc1([out] PREF array[10]);
この例では、サーバー スタブは 10 個のポインターにメモリを割り当て、各ポインターの値を null に設定します。 サーバー アプリケーションは、ポインターによって参照される 10 個の 短い 整数のメモリを割り当て、10 個のポインターを整数を指すよう設定する必要があります。
[出力] のみのデータ構造に入れ子になった参照ポインターが含まれている場合、サーバー スタブは参照ポインターからアクセスできる最初のポインターのみを割り当てます。 次に例を示します。
/* IDL file (fragment) */
typedef struct
{
[ref] small * psValue;
} STRUCT1_TYPE;
typedef struct
{
[ref] STRUCT1_TYPE * ps1;
} STRUCT_TOP_TYPE;
Proc2([out, ref] STRUCT_TOP_TYPE * psTop);
前の例では、サーバー スタブによってポインター psTop と構造体 STRUCT_TOP_TYPEが割り当てられます。 STRUCT_TOP_TYPEの参照ポインター ps1 は null に設定されています。 サーバー スタブは、データ構造のすべてのレベルを割り当てるわけではありません。また、 STRUCT1_TYPE またはその埋め込みポインター psValue も割り当てません。