DirectPlay DirectPlay C/C++ 레퍼런스 인터페이스 IDirectPlay8Server CancelAsyncOperation   [목차열람] [주소복사] [슬롯비우기]
IDirectPlay8Server::CancelAsyncOperation 메서드
 
Microsoft DirectX 9.0

IDirectPlay8Server::CancelAsyncOperation 메서드


비동기의 요구를 취소한다. 디폴트에서는,IDirectPlay8Server 인터페이스가 많은 메서드가 비동기에게 실행된다. 상황에 따라, 요구가 처리되기 전에 그 요구를 취소하고 싶은 경우도 있다. 이 인터페이스로 비동기에게 실행할 수 있는 모든 메서드는,hAsyncHandle 파라미터를 돌려준다.

요구의 hAsyncHandle 를 이 메서드의 hAsyncHandle 파라미터에 건네주는 것에 의해, 특정의 요구가 삭제된다. 이 메서드를 호출해,hAsyncHandle 파라미터에 NULL 를,dwFlags 파라미터에 DPNCANCEL_ALL_OPERATIONS 를 지정하는 것에 의해, 보류 상태의 모든 비동기 처리를 취소할 수가 있다. 특정의 핸들이 이 메서드로 지정되었을 경우는, 어느 플래그도 설정해서는 안 된다.

구문

HRESULT CancelAsyncOperation(      

    const DPNHANDLE hAsyncHandle,     const DWORD dwFlags );

파라미터

hAsyncHandle
[in] 정지하는 비동기 처리의 핸들. 모든 요구 또는 특정의 종류의 비동기 요구를 정지하려면 , 이 값을 NULL 로 한다. 특정의 핸들이 지정되고 있는 경우,dwFlags 파라미터는 0 으로 설정한다. 이 핸들은, 비동기 처리를 지원 하는 메서드를 호출했을 때에 받는다. DPNCANCEL_PLAYER_SENDS 플래그의 1 개가 dwFlags 파라미터로 지정되고 있는 경우,hAsyncHandle 는 player의 DPNID 로 설정할 필요가 있다.
dwFlags
[in] 취소하는 비동기 요구를 지정하는 플래그. 다음의 몇개의 플래그를 설정할 수 있다.
DPNCANCEL_SEND
비동기 IDirectPlay8Server::SendTo 요구를 취소한다.
DPNCANCEL_PLAYER_SENDS
hAsyncHandle 파라미터로 지정된 player용의 비동기 IDirectPlay8Server::SendTo 요구를 모두 취소한다.
DPNCANCEL_PLAYER_SENDS_PRIORITY_LOW
hAsyncHandle 파라미터로 지정된 player용의 우선 순위의 낮은 비동기 IDirectPlay8Server::SendTo 요구를 취소한다.
DPNCANCEL_PLAYER_SENDS_PRIORITY_NORMAL
hAsyncHandle 파라미터로 지정된 player용의, 보통의 우선 순위의 비동기 IDirectPlay8Server::SendTo 요구를 취소한다.
DPNCANCEL_PLAYER_SENDS_PRIORITY_HIGH
hAsyncHandle 파라미터로 지정된 player용의 우선 순위의 높은 비동기 IDirectPlay8Server::SendTo 요구를 취소한다.
DPNCANCEL_ALL_OPERATIONS
모든 비동기 요구를 취소한다.

반환값

성공했을 경우는 S_OK 를 돌려주어, 실패했을 경우는 다음의 몇개의 에러값을 돌려준다.

DPNERR_CANNOTCANCEL처리를 취소할 수가 없었다.
DPNERR_INVALIDFLAGS이 메서드에 건네진 플래그는 무효이다.
DPNERR_INVALIDHANDLE지정된 핸들은 무효이다.
DPNSUCCESS_PENDING비동기 처리로, 큐에의 설정이 성공하는 곳(중)까지 처리가 진행되었다.


주의

이 메서드를 사용해,IDirectPlay8Server::SendTo 메서드의 비동기 처리를 취소할 수가 있다. Microsoft® DirectPlay® 는, 다른 비동기 처리의 취소를 지원 하고 있지 않다.

IDirectPlay8Server::SendTo 메서드로부터 돌려주어진 핸들을 지정 하면,IDirectPlay8Server::SendTo 요구를 취소할 수가 있다. 그 경우도,DPN_MSGID_SEND_COMPLETE 시스템 메시지는, DPNSEND_NOCOMPLETE 플래그를 설정하지 않고 송신된 비동기 IDirectPlay8Server::SendTo 요구 마다, 애플리케이션 메시지 핸들러에 송신된다. 이 메서드로 삭제된 송신 요구는,DPN_MSGID_SEND_COMPLETE 메시지의 hResultCode 멤버에 DPNERR_USERCANCEL 를 돌려준다.

dwFlags 에 DPNCANCEL_ALL_OPERATIONS 또는 DPNCANCEL_SEND 플래그를 설정했을 경우, DirectPlay 는 모든 일치하는 처리를 취소하려고 한다. 이 메서드는, 취소해에 실패한 처리가 있는 경우, 일부의 취소가 성공하고 있어도 에러를 돌려준다.

다음의 몇개의 DPNCANCEL_PLAYER_SENDS 플래그를 dwFlags 로 설정했을 경우,hAsyncHandle 에 player의 DPNID 를 지정할 필요가 있다. 이 경우,dpnid 파라미터로 지정한 DPNID 가 hAsyncHandle 파라미터로 설정한 값과 일치하는 보류 상태의 IDirectPlay8Server::SendTo 요구는 모두 삭제된다.

  이 메서드가 값을 돌려줄 때까지, 완료 메시지는 도착하지 않는 경우가 있다. DPN_MSGID_SEND_COMPLETE,DPN_MSGID_CONNECT_COMPLETE , 또는 DPN_MSGID_ASYNC_OP_COMPLETE 메시지를 받아들일 때까지, 처리가 종료했다고 봐서는 안 된다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP