DirectPlay DirectPlay C/C++ 레퍼런스 인터페이스 IDirectPlay8Server SetApplicationDesc [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
호스트 되고 있는 애플리케이션의 설정을 변경한다. 변경할 수 있는 것은, 몇개의 설정뿐이다.
구문
HRESULT SetApplicationDesc(
const DPN_APPLICATION_DESC *const pad, const DWORD dwFlags );
파라미터
- pad
- [in] 변경하는 애플리케이션의 설정을 기술하는 DPN_APPLICATION_DESC 구조체의 포인터.
- dwFlags
- [in] 예약이 끝난 상태. 0 이 아니면 안된다.
반환값
성공했을 경우는 S_OK 를 돌려주어, 실패했을 경우는 다음의 몇개의 에러값을 돌려준다.
DPNERR_DATATOOLARGE 애플리케이션 데이터가, 서비스 프로바이더의 MTU (Maximum Transmission Unit)에 대해서 너무 크다. DPNERR_INVALIDFLAGS 이 메서드에 건네진 플래그는 무효이다. DPNERR_INVALIDPARAM 메서드에 건네진 1 개 혹은 복수의 파라미터가 무효이다.
주의
이 메서드를 사용해 변경할 수 있는 것은,DPN_APPLICATION_DESC 구조체의 이하의 멤버뿐이다.
- dwMaxPlayers
- pwszSessionName
- pwszPassword
- pvApplicationReservedData
- dwApplicationReservedDataSize
IDirectPlay8Server::SetApplicationDesc 를 호출하면, Microsoft® DirectPlay® 는 pad 가 가리키는 데이터의 복사를 생성 한다. IDirectPlay8Server::SetApplicationDesc 가 돌아왔을 경우,DPN_APPLICATION_DESC 구조체를 보존할 필요는 없다.
dwMaxPlayers 멤버를, 세션에 현재 있는 player의 수보다 작은 값으로 설정할 수 없다.
DPN_APPLICATION_DESC 구조체의 pvApplicationReservedData 멤버에 할당하는 애플리케이션 데이터의 최대 사이즈는, 서비스 프로바이더의 MTU (Maximum Transmission Unit)에 의해 제한된다. 애플리케이션 데이터가 너무 큰 경우, 메서드는 실패해, DPNERR_DATATOOLARGE 를 돌려준다.
애플리케이션의 기술을 틀려 덧쓰기하지 않기 때문에, 애플리케이션은 IDirectPlay8Server::GetApplicationDesc 를 호출해 DPN_APPLICATION_DESC 구조체의 내용을 설정한 후,IDirectPlay8Server::SetApplicationDesc 를 호출하는 것.