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

IDirectPlay8Peer::GetPeerInfo 메서드


지정된 피어로 설정되어 있는 피어 정보를 얻어온다.

구문

HRESULT GetPeerInfo(      

    const DPNID dpnid,     DPN_PLAYER_INFO *const pdpnPlayerInfo,     DWORD *const pdwSize,     const DWORD dwFlags );

파라미터

dpnid
[in] 정보의 취득 대상이 되는 피어의 식별자를 지정하는 DPNID 형의 변수.
pdpnPlayerInfo
[out] 피어 정보를 저장 하는 DPN_PLAYER_INFO 구조체의 포인터. pdwSize 가 NULL 로 설정되지 않은 경우,pdpnPlayerInfo. dwSize 에 DPN_PLAYER_INFO 구조체의 사이즈를 설정해야 한다.
pdwSize
[in, out] pdpnPlayerInfo 파라미터에 돌려받는 피어 데이터의 사이즈를 보관 유지하는 DWORD 형의 변수의 포인터. 버퍼가 너무 작은 경우, 이 메서드는 DPNERR_BUFFERTOOSMALL 을 돌려주어, 이 파라미터에는 필요한 버퍼의 사이즈가 들어간다.
dwFlags
[in] 예약이 끝난 상태. 0 으로 설정하는 것.

반환값

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

DPNERR_BUFFERTOOSMALL지정된 버퍼가 너무 작아, 요구된 데이터를 저장 할 수 없다.
DPNERR_INVALIDFLAGS이 메서드에 건네진 플래그는 무효이다.
DPNERR_INVALIDPARAM메서드에 건네진 1 개 이상의 파라미터가 무효이다.
DPNERR_INVALIDPLAYERplayer ID 가, 이 게임 세션에 대한 유효한 player ID 로서 인식되지 않다.
DPNERR_CONNECTING메서드는 네트워크에의 접속 처리중이다.


주의

피어가 정보를 갱신한 것을 나타내는 DPN_MSGID_PEER_INFO 메시지를 애플리케이션으로부터 수신한 후, 이 메서드를 호출한다.

호스트가 IDirectPlay8Peer::Host 로부터 돌아가기 전에 IDirectPlay8Peer::GetPeerInfo 를 호출하면, 이 메서드는 DPNERR_CONNECTING 로 실패한다. 이 경우, 한번 더 IDirectPlay8Peer::GetPeerInfo 의 호출을 시험하는 것.

Microsoft® DirectPlay® 는 DPN_PLAYER_INFO 구조체와 연속하는 버퍼에 있는, 이 구조체의 pwszName 멤버와 pvData 멤버에 할당된 포인터를 돌려준다. 이 2 개의 포인터가 설정되는 경우, 구조체에 가세해 2 개의 포인터에도 충분한 메모리를 할당해 둘 필요가 있다. 이 메서드를 사용하는 가장 확실한 방법은, 처음은 pdwSize 를 NULL 로 설정해 이 메서드를 호출하는 것이다. 메서드가 돌아오면pdwSize 가 올바른 값을 포인트 하고 있다. 그 값을 사용해 구조체에 메모리를 할당해 한번 더 메서드를 호출해 정보를 얻어온다.

메서드가 돌아오면 대응하는 포인터가 NULL 로 설정되어 있는 경우에서도,DPN_PLAYER_INFO 구조체의 dwInfoFlags 멤버에는 항상 DPNINFO_DATA 플래그와 DPNINFO_NAME 플래그가 설정되어 있다. 이러한 플래그는 IDirectPlay8Peer::SetPeerInfo 를 호출할 때에 사용되어 DirectPlay 로 변경된 값을 통지한다.

IDirectPlay8Peer::SetPeerInfo 메서드를 사용하면 처리에 부담이 가기 (위해)때문에, 비정적 정보는 IDirectPlay8Peer::SendTo 메서드를 사용해 전송 하는 것.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP