Platform SDK: DirectX

IDirectPlayLobby3::ReceiveLobbyMessage

IDirectPlayLobby3::ReceiveLobbyMessage メソッドは、ロビー クライアント アプリケーションと DirectPlay アプリケーションの間で送信されるメッセージを取得する。メッセージはキューに設定されるので、時間内に読み取られなくてもデータがなくなってしまう危険性はない。

HRESULT ReceiveLobbyMessage(
  DWORD dwFlags,
  DWORD dwAppID,
  LPDWORD lpdwMessageFlags,
  LPVOID lpData,
  LPDWORD lpdwDataSize
);

パラメータ

dwFlags
将来の使用に備えて予約されているので、0 に設定しておく。
dwAppID
(複数のアプリケーションと通信している) ロビー クライアントから呼び出したときに取得するアプリケーションのメッセージを指定する。(1 つのロビー クライアントとのみ通信している) アプリケーションから呼び出すときは、このパラメータは 0 でなければならない。この ID 番号は、IDirectPlayLobby3::RunApplication メソッドから取得する。
lpdwMessageFlags
返されるメッセージのタイプを指定するフラグ。デフォルト (lpdwMessageFlags = 0) は、メッセージが送信者によりカスタム定義されたものであると指定する。このタイプのメッセージの処理は、オプションである。受信者は、送信側アプリケーションの識別情報に基づいてこのメッセージを解釈する必要がある。ロビーは、起動されたアプリケーションの GUID に基づいて送信側アプリケーションを識別できる。アプリケーションは、識別 GUID を要求する標準メッセージをロビーに送信することで、ロビーを識別する必要がある。
DPLMSG_STANDARD
DirectPlay により定義されたメッセージであると指定する。このタイプのメッセージの処理は、オプションである。
DPLMSG_SYSTEM
ロビーにより起動されたアプリケーションのステータスが変更されたことをそのロビーに通知するときに使用される DirectPlay により生成されたシステム メッセージであると指定する。
lpData
メッセージが書き込まれるバッファへのポインタ。メッセージのサイズのみを要求するときは、このパラメータに NULL を設定する。lpdwDataSize パラメータには、メッセージを保持するのに最低限必要なサイズが設定される。
lpdwDataSize
このメソッドを呼び出す前に、バッファのサイズに初期化された変数へのポインタ。メソッドが戻ると、このパラメータにはメッセージのサイズがバイト単位で設定されている。バッファが小さすぎる (DPERR_BUFFERTOOSMALL) 場合、このパラメータには最低限必要なバッファのサイズが設定される。

戻り値

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

DPERR_APPNOTSTARTED
DPERR_BUFFERTOOSMALL
DPERR_GENERIC
DPERR_INVALIDINTERFACE
DPERR_INVALIDOBJECT
DPERR_INVALIDPARAMS
DPERR_NOMESSAGES
DPERR_OUTOFMEMORY

必要条件

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : Dplobby.h で宣言。
  インポート ライブラリ : dplayx.lib を使用。

参照

IDirectPlayLobby3::RunApplicationIDirectPlayLobby3::SendLobbyMessage