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

IDirectPlay8Peer::GetGroupInfo 메서드


그룹명 등, 그룹에 관련지을 수 있는 데이터 블록을 얻어온다.

보통, 그룹 데이터가 변경된 것을 나타내는 DPN_MSGID_GROUP_INFO 메시지가 수신된 후, 이 메서드가 호출된다.

구문

HRESULT GetGroupInfo(      

    const DPNID dpnid,     DPN_GROUP_INFO *const pdpnGroupInfo,     DWORD *const pdwSize,     const DWORD dwFlags );

파라미터

dpnid
[in] 데이터 블록을 얻어온다 그룹의 식별자를 지정하는 DPNID 형의 변수.
pdpnGroupInfo
[out] 그룹 데이터를 기술하는 DPN_GROUP_INFO 구조체의 포인터. pdwSize 가 NULL 로 설정되지 않은 경우,pdpnGroupInfo. dwSize 에 DPN_GROUP_INFO 구조체의 사이즈를 설정할 필요가 있다.
pdwSize
[out] 데이터의 사이즈를 pdpnGroupInfo 파라미터에 돌려주는 DWORD 형의 변수의 포인터. 버퍼가 너무 작은 경우, 이 메서드는 DPNERR_BUFFERTOOSMALL 를 돌려준다. 이 파라미터에는, 필요한 사이즈가 설정된다.
dwFlags
[in] 예약이 끝난 상태. 0 으로 설정하는 것.

반환값

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

DPNERR_BUFFERTOOSMALL지정된 버퍼가 너무 작아, 요구된 데이터를 저장 할 수 없다.
DPNERR_INVALIDFLAGS이 메서드에 건네진 플래그는 무효이다.
DPNERR_INVALIDGROUP그룹 ID 가, 이 게임 세션에 대한 유효한 그룹 ID 로서 인식되지 않다.


주의

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

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

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



© 2002 Microsoft Corporation. All rights reserved.
↑TOP