Platform SDK: DirectX |
IDirectPlay4::CancelMessage メソッドは、送信キューにまだ残っている特定のメッセージ (またはすべてのメッセージ) を取り消す。CancelMessage は、非同期メッセージにのみ適用される。
特定のメッセージを取り消すためには、アプリケーションで IDirectPlay4::SendEx メソッドにより返されるメッセージ ID を取得して保存する必要がある。
メッセージ キューに残っているものの、一部が既に送信されているメッセージについては、取り消すことができない。グループに送信されるメッセージは、グループの一部のメンバに既に送信されていると取り消すことができない。
メッセージを取り消しても、その旨を示す DPMSG_SENDCOMPLETE システム メッセージは生成される。
HRESULT CancelMessage( DWORD dwMsgID, DWORD dwFlags );
成功した場合は 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::SendEx、IDirectPlay4::Send、IDirectPlay4::GetMessageQueue、DPMSG_SENDCOMPLETE、IDirectPlay4::CancelPriority