次の方法で共有


IDirectPlay8Peer::GetGroupInfo メソッド

IDirectPlay8Peer::GetGroupInfo メソッド

グループ名など、グループに関連付けられているデータ ブロックを取得する。

通常、グループ データが変更されたことを示す DPN_MSGID_GROUP_INFO メッセージが受信された後、このメソッドが呼び出される。

構文

HRESULT GetGroupInfo(      
    const DPNID dpnid,
    DPN_GROUP_INFO *const pdpnGroupInfo,
    DWORD *const pdwSize,
    const DWORD dwFlags
);

パラメータ

  • dpnid
    [in] データ ブロックを取得するグループの識別子を指定する DPNID 型の変数。
  • pdpnGroupInfo
    [out] グループ データを記述する DPN_GROUP_INFO 構造体へのポインタ。pdwSize が NULL に設定されていない場合、pdpnGroupInfo.dwSize に DPN_GROUP_INFO 構造体のサイズを設定する必要がある。
  • pdwSize
    [out] データのサイズを pdpnGroupInfo パラメータに返す DWORD 型の変数へのポインタ。バッファが小さすぎる場合、このメソッドは DPNERR_BUFFERTOOSMALL を返す。このパラメータには、必要なサイズが設定される。
  • dwFlags
    [in] 予約済み。0 に設定すること。

戻り値

成功した場合は S_OK を返し、失敗した場合は次のいずれかのエラー値を返す。

DPNERR_BUFFERTOOSMALL 指定されたバッファが小さすぎて、要求されたデータを格納できない。
DPNERR_INVALIDFLAGS このメソッドに渡されたフラグは無効である。
DPNERR_INVALIDGROUP グループ ID が、このゲーム セッションに対する有効なグループ ID として認識されていない。

注意

Microsoft® DirectPlay® は DPN_GROUP_INFO 構造体と、連続するバッファにある、この構造体の pwszName メンバと pvData メンバに割り当てられたポインタを返す。この 2 つのポインタが設定される場合、構造体に加えて 2 つのポインタにも十分なメモリを割り当てておく必要がある。このメソッドを使う最も確実な方法は、最初は pdwSize を NULL に設定してこのメソッドを呼び出すことである。メソッドが戻ると、pdwSize が正しい値をポイントしている。その値を使って構造体のメモリを再割り当てし、もう一度メソッドを呼び出して情報を取得する。

メソッドが戻ると、対応するポインタが NULL に設定されている場合でも、DPN_GROUP_INFO 構造体の dwInfoFlags メンバには常に DPNINFO_DATA フラグと DPNINFO_NAME フラグが設定されている。これらのフラグは IDirectPlay8Peer::SetGroupInfo を呼び出すときに使われ、DirectPlay に変更された値を通知する。

IDirectPlay8Peer::SetGroupInfo メソッドを使うと処理に負担がかかるため、非静的情報は IDirectPlay8Peer::SendTo メソッドを使って転送すること。