次の方法で共有


埋め込み Out-Only 参照ポインター

Microsoft RPC で [] のみの参照ポインターを使用すると、生成されたサーバー スタブは、参照ポインターからアクセスできるポインターの最初のレベルのみを割り当てます。 より深いレベルのポインターはスタブによって割り当てられないが、サーバー アプリケーション レイヤーによって割り当てられる必要があります。 たとえば、インターフェイスが参照ポインターの [出力] のみの配列を指定するとします。

/* 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 に設定されています。 サーバー スタブは、データ構造のすべてのレベルを割り当てるわけではありません。また、psValue STRUCT1_TYPE またはその埋め込みポインターを割り当てません。