Microsoft DirectX 8.0 (C++)

IDirectPlay8Peer::CancelAsyncOperation

非同期の要求を取り消す。たとえば、IDirectPlay8Peer インターフェイスのいくつかのメソッドはデフォルトでは非同期に実行される。状況に応じて、要求が処理される前にその要求を取り消したい場合もある。このインターフェイスで非同期に実行できるすべてのメソッドは、hAsyncHandle パラメータを返す。

要求の hAsyncHandle をこのメソッドの hAsyncHandle パラメータに渡すことによって、特定の要求が取り消される。このメソッドを呼び出し、hAsyncHandle パラメータに NULL を、dwFlags パラメータに DPNCANCEL_ALL_OPERATIONS を指定することによって、待機中のすべての非同期処理を取り消すことができる。特定のハンドルがこのメソッドに指定された場合は、いずれのフラグも設定してはならない。

HRESULT CancelAsyncOperation(
const DPNHANDLE hAsyncHandle,
const DWORD dwFlags
);

パラメータ

hAsyncHandle
非同期処理を停止するハンドル。このハンドルは、非同期の処理をサポートするメソッドを呼び出したときに受け取る。すべての要求または特定の種類の非同期処理を停止するには、この値を NULL に設定する。その要求に特定のハンドラを指定した場合は、dwFlags パラメータを 0 にする。
dwFlags
取り消す非同期要求を指定するフラグ。次のいずれかのフラグを設定できる。
DPNCANCEL_ENUM
すべての非同期 IDirectPlay8Peer::EnumHosts 要求を取り消す。EnumHosts メソッドから返されるハンドルを指定することによって、単一の EnumHosts 要求を取り消すことができる。
DPNCANCEL_CONNECT
非同期 IDirectPlay8Peer::Connect 要求を取り消す。
DPNCANCEL_SEND
非同期 IDirectPlay8Peer::SendTo 要求を取り消す。
DPNCANCEL_ALL_OPERATIONS
非同期の Connect、Send、および SentTo の各処理をすべて取り消す。

戻り値

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

DPNERR_CANNOTCANCEL
DPNERR_INVALIDFLAGS
DPNERR_INVALIDHANDLE

注意

このメソッドを使って、IDirectPlay8Peer::ConnectIDirectPlay8Peer::SendTo、および IDirectPlay8Peer::EnumHosts メソッドの非同期処理を取り消すことができる。Microsoft® DirectPlay® 8.0 は、ほかの非同期処理の取り消しをサポートしていない。

IDirectPlay8Peer::SendTo メソッドから返されたハンドルを指定すると、送信要求を取り消すことができる。その場合も、DPN_MSGID_SEND_COMPLETE または DPN_CONNECT_COMPLETE システム メッセージは、DPNSEND_NOCOMPLETE フラグを設定せずに送信された非同期のセンド要求ごとに、アプリケーション メッセージ ハンドラに送信される。このメソッドで取り消された送信要求は、DPN_MSGID_SEND_COMPLETE メッセージの hResultCode メンバに DPNERR_USERCANCEL を返す。

dwFlags に DPNCANCEL_ALL_OPERATIONS、DPNCANCEL_CONNECT、DPNCANCEL_SEND、または DPNCANCEL_ENUM を設定した場合、DirectPlay はすべての一致する処理を取り消そうとする。このメソッドは、取り消しに失敗した処理がある場合、一部の取り消しが成功していてもエラーを返す。

  このメソッドが値を返すまで、完了メッセージは到着しない場合がある。DPN_MSGID_SEND_COMPLETE、DPN_MSGID_CONNECT_COMPLETE、または DPN_MSGID_ASYNC_OP_COMPLETE メッセージを受け取るまで、処理が終了したと見なしてはならない。

動作環境

  Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
  Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
  ヘッダー : Dplay8.h で宣言。