DirectPlay DirectPlay C/C++ 레퍼런스 인터페이스 IDirectPlay8LobbyClient ConnectApplication [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
로비 대응 애플리케이션을,DPL_CONNECT_INFO 구조체로 지정되고 있는 세션에 접속한다. 애플리케이션이 실행되지 않은 경우, 이 메서드를 사용해 애플리케이션을 기동할 수 있다.
접속이 올바르게 확립되면 로비 애플리케이션은 메시지 핸들러에 DPL_MSGID_CONNECT 시스템 메시지를 송신한다.
구문
HRESULT ConnectApplication(
DPL_CONNECT_INFO *const pdplConnectionInfo, const PVOID pvUserApplicationContext, DPNHANDLE *const phApplication, const DWORD dwTimeOut, const DWORD dwFlags );
파라미터
- pdplConnectionInfo
- [in] DPL_CONNECT_INFO 구조체의 포인터. 이 구조체는 접속처 애플리케이션의 글로벌 일의 식별자 (GUID)를 포함한, 접속 파라미터를 기술한다.
- pvUserApplicationContext
- [in] 로비 클라이언트용으로 정의된 문맥값의 포인터. 이 값은, 로비 클라이언트의 메시지 핸들러에의 호출로 건네받는다.
- phApplication
- [out] 이 메서드가 성공했을 경우로 설정되는 애플리케이션 접속 핸들을 지정하는 DPNHANDLE 의 포인터. 이 핸들은, 애플리케이션과의 통신에 사용된다. 또, 이 핸들은 IDirectPlay8LobbyClient::ReleaseApplication 메서드의 phApplication 파라미터에서도 사용된다.
- dwTimeOut
- [in] 접속의 처리를 기다리는 시간 (밀리 세컨드 단위)을 지정하는 DWORD 형의 변수.
- dwFlags
- [in] 예약이 끝난 상태. 0 이 아니면 안된다.
반환값
성공했을 경우는 S_OK 를 돌려주어, 실패했을 경우는 다음의 몇개의 에러값을 돌려준다.
DPNERR_CANTLAUNCHAPPLICATION 로비는 지정된 애플리케이션을 기동할 수 없다. DPNERR_INVALIDFLAGS 이 메서드에 건네진 플래그는 무효이다. DPNERR_INVALIDPARAM 메서드에 건네진 1 개 이상의 파라미터가 무효이다. DPNERR_TIMEDOUT 마감 시간이기 때문에, 처리를 완료할 수 없었다. DPNERR_NOCONNECTION 통신 링크가 확립되지 않았다. DPNERR_DOESNOTEXIST 요구된 요소는 주소의 일부에서는 없다.
주의
이 메서드가 DPNERR_NOCONNECTION 를 돌려줄 때, 보통은,pdplConnectionInfo 파라미터에 기술되고 있는 애플리케이션이 IDirectPlay8LobbiedApplication::SetAppAvailable 를 호출하지 않은 것이 원인이다.