Microsoft DirectX 8.0 (Visual Basic) |
非同期要求を取り消す。デフォルトでは、DirectPlay8Server クラスの多くのメソッドが非同期に実行される。状況に応じて、要求が処理される前にその要求を取り消したい場合もある。非同期で実行できるこのクラスのメソッドはすべて lAsyncHandle パラメータを返す。
このメソッドの lAsyncHandle パラメータに要求の lAsyncHandle を渡すことによって、特定の要求が取り消される。このメソッドを呼び出し、hAsyncHandle パラメータに 0 を、lFlags パラメータに DPNCANCEL_ALL_OPERATIONS を指定することによって、待機中のすべての非同期処理を取り消すことができる。特定のハンドルがこのメソッドに指定された場合は、lFlags パラメータに 0 を渡す必要がある。
CancelAsyncOperation(lAsyncHandle As Long, _ lFlags As CONST_DPNCANCELFLAGS)
失敗した場合は、Err.Number に次のいずれかの値が設定される。
DPNERR_PENDING |
DPNERR_INVALIDFLAGS |
DPNERR_CANNOTCANCEL |
DPNERR_INVALIDHANDLE |
DirectPlay8Server.SendTo メソッドから返されたハンドルを指定すると、送信を取り消すことができる。DirectPlay8Event.SendComplete メソッドは、メッセージが DPNSEND_NOCOMPLETE フラグを設定して送信された場合を除き、その後も呼び出される。DirectPlay8Peer.CancelAsyncOperation を呼び出して送信処理を取り消した場合、DirectPlay8Event.SendComplete メソッドに渡された DPNMSG_SEND_COMPLETE 型の hResultCode メンバに、DPNERR_CANCELLED が設定される。