Platform SDK: DirectX

IDirectPlay4::CancelMessage

IDirectPlay4::CancelMessage メソッドは、送信キューにまだ残っている特定のメッセージ (またはすべてのメッセージ) を取り消す。CancelMessage は、非同期メッセージにのみ適用される。

特定のメッセージを取り消すためには、アプリケーションで IDirectPlay4::SendEx メソッドにより返されるメッセージ ID を取得して保存する必要がある。

メッセージ キューに残っているものの、一部が既に送信されているメッセージについては、取り消すことができない。グループに送信されるメッセージは、グループの一部のメンバに既に送信されていると取り消すことができない。

メッセージを取り消しても、その旨を示す DPMSG_SENDCOMPLETE システム メッセージは生成される。

HRESULT CancelMessage(
  DWORD dwMsgID,
  DWORD dwFlags
);

パラメータ

dwMsgID
取り消す特定のメッセージの ID。この ID は、IDirectPlay4::SendEx を使用してメッセージを送信すると返される。すべてのメッセージを取り消す場合は 0 を指定する。
dwFlags
このパラメータは将来の使用に備えて予約されているので、0 に設定しておく。

戻り値

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

DPERR_CANCELFAILED
DPERR_INVALIDFLAGS
DPERR_INVALIDPARAMS
DPERR_UNKNOWNMESSAGE
DPERR_UNSUPPORTED

メッセージを取り消すことができなかった場合は、DPERR_CANCELFAILED を返す。また、取り消すメッセージの ID が無効な場合は、DPERR_UNKNOWNMESSAGE を返す。送信キューにメッセージがなかった場合は、DP_OK を返す。

注意

DirectPlay プロトコルがセッション記述で指定されている場合、CancelMessage のすべてのオプションを使用できる。それ以外の場合、アプリケーションでは サービス プロバイダにより実装されているオプションを判定するために、GetCaps を呼び出す必要がある。

必要条件

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

参照

IDirectPlay4::SendExIDirectPlay4::SendIDirectPlay4::GetMessageQueueDPMSG_SENDCOMPLETEIDirectPlay4::CancelPriority