DirectPlay DirectPlay C++ 샘플 LobbyClient [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
LobbyClient 는, 간단한 로비 클라이언트 애플리케이션이다. 로컬 시스템 위에의 등록이 끝난 Microsoft® DirectPlay® 애플리케이션이, 모두 표시된다. 사용자는, 선택한 서비스 프로바이더를 사용해, 그러한 애플리케이션을 1 개 이상 기동할 수 있다. 기동하는 로비 애플리케이션에는, 게임에 참가하는지, 또는 게임의 호스트가 되는 것을 지시할 수 있다.
소스 파일 : (SDK 루트) \Samples\C++\DirectPlay\LobbyClient
실행 가능 파일 :(SDK 루트) \Samples\C++\DirectPlay\Bin
LobbyClient 샘플에서는,[Launch App] 를 클릭해 애플리케이션을 기동하기 전에, 기동 파라미터를 선택할 수 있는 다이알로그 박스가 표시된다. [Active Connections] 의 일람에는, 현재의 모든 로비 애플리케이션에의 핸들이 표시된다. [Send Message] 를 클릭 하면, 로비 애플리케이션에 로비 메시지가 송신된다. 이것은, 주로 데모의 목적으로 행해진다. 한층 더 복잡한 로비 클라이언트에서는, 이 기능을 유효하게 사용해, 로비 애플리케이션이 응답하는 메시지를 건네주는 일도 가능하다.
InitDirectPlay 함수는 다음의 처리를 실행한다.
OnInitDialog 함수는 다음의 처리를 실행한다.
[Launch App] 를 클릭 하면,LaunchApp 함수는 다음의 처리를 실행한다.
DirectPlayLobbyMessageHandler 함수는, 다음의 메시지를 처리할 수 있다.
DPL_MSGID_DISCONNECT | 로비 애플리케이션의 접속은 해제되었다. pDisconnectMsg->hDisconnectId 파라미터에는, 접속 해제된 로비 애플리케이션의 핸들이 포함되어pDisconnectMsg->hrReason 파라미터에는 그 이유가 포함된다. 이 샘플은, 메시지 박스를 표시한다. |
DPL_MSGID_RECEIVE | 로비 애플리케이션은 클라이언트 데이터를 송신했다. 이 샘플은, 어느 메시지에도 응답하지 않는다. |
DPL_MSGID_SESSION_STATUS | 로비 애플리케이션 상태가 변경되었다. pStatusMsg->hSender 파라미터는, 사전에 정의된 스테이터스 코드의 1 개를 취한다. 이 샘플은 사용자 인터페이스 (UI)를 갱신해, 로비 상태가 갱신된 것을 나타낸다. 그러나, 보다 복잡한 로비 클라이언트에서는, 액션을 사용하면 좋다. |
DPL_MSGID_CONNECTION_SETTINGS | 로비 애플리케이션의 접속 설정이 변경되었다. 이 로비 클라이언트는 액션을 사용하지 않는다. 그러나, 보다 복잡한 클라이언트에서는, 액션을 사용하면 좋다. |
[Send Message] 를 클릭 하면,SendMsgToApp 함수는 IDirectPlay8LobbyClient::Send 를 호출한다. hConnection 파라미터는 수신측인 로비 애플리케이션의 핸들로 설정되어pBuffer 파라미터는 메시지 버퍼로 설정된다.
[Disconnect] 를 클릭 하면,DisconnectFromApp 함수는 IDirectPlay8LobbyClient::ReleaseApplication 를 호출한다. hApplication 파라미터는, 접속의 해제원이 되는 로비 애플리케이션의 핸들로 설정된다.