DirectPlay DirectPlay C/C++ 레퍼런스 인터페이스 IDirectPlay8Peer EnumServiceProviders [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
애플리케이션으로 이용할 수 있는 등록이 끝난 서비스 프로바이더를 모두 열거한다.
구문
HRESULT EnumServiceProviders(
const GUID *const pguidServiceProvider, const GUID *const pguidApplication, const DPN_SERVICE_PROVIDER_INFO *const pSPInfoBuffer, DWORD *const pcbEnumData, DWORD *const pcReturned, const DWORD dwFlags );
파라미터
- pguidServiceProvider
- [in] 서비스 프로바이더를 지정하는 글로벌 일의 식별자 (GUID) 형의 변수의 포인터. 이 옵션 파라미터는, 지정한 서비스 프로바이더의 서브 장치를 열거시킨다. 보통은 이 값에 NULL 를 설정해, 모든 이용 가능한 서비스 프로바이더를 열거한다. 그 이외의 경우,pguidServiceProvider 는 다음의 정의 끝난 값의 어느 쪽인가에 설정한다.
- CLSID_DP8SP_TCPIP
- 인터넷 프로토콜 (IP) 서비스 프로바이더
- CLSID_NETWORKSIMULATOR_DP8SP_TCPIP
- DP8Sim 서비스 프로바이더
- CLSID_DP8SP_SERIAL
- 시리얼 서비스 프로바이더
- CLSID_DP8SP_MODEM
- 모뎀 서비스 프로바이더
- CLSID_DP8SP_IPX
- IPX 서비스 프로바이더
- pguidApplication
- [in] 애플리케이션을 지정하는 GUID 형의 변수의 포인터. 이 파라미터에 포인터를 건네주면 그 애플리케이션으로 접속할 수 있는 서비스 프로바이더만이 열거된다. 또, NULL 를 건네주면 시스템에 등록되어 모든 서비스 프로바이더를 열거할 수 있다.
- pSPInfoBuffer
- [out] 서비스 프로바이더 정보를 보관 유지하는,DPN_SERVICE_PROVIDER_INFO 구조체의 배열의 포인터.
- pcbEnumData
- [out] 버퍼가 너무 작은 경우,pSPInfoBuffer 버퍼의 사이즈가 저장 되는 DWORD 의 포인터.
- pcReturned
- [out] pcbEnumData 배열에 돌려받는 DPN_SERVICE_PROVIDER_INFO 구조체의 수를 지정하는 DWORD 형의 변수의 포인터.
- dwFlags
- [in] 다음의 플래그를 지정할 수 있다.
- DPNENUMSERVICEPROVIDERS_ALL
- 애플리케이션으로 이용할 수 없는 프로바이더나, 장치가 인스톨되지 않은 프로바이더를 포함해 시스템에 대해서 등록되어 모든 서비스 프로바이더를 열거한다.
반환값
성공했을 경우는 S_OK 를 돌려주어, 실패했을 경우는 다음의 몇개의 에러값을 돌려준다.
DPNERR_BUFFERTOOSMALL 지정된 버퍼가 너무 작아, 요구된 데이터를 저장 할 수 없다. DPNERR_INVALIDPARAM 메서드에 건네진 1 개 혹은 복수의 파라미터가 무효이다.
주의
pguidServiceProvider 파라미터에 NULL 를 지정해 최초로 이 메서드를 호출해, 시스템으로 이용 가능한 베이스 서비스 프로바이더를 결정한다. 다음에,pguidServiceProvider 에 서비스 프로바이더 GUID 의 포인터를 건네주는 것으로, 서비스 프로바이더용의 특정의 장치를 취득할 수 있다. 이것은, 예를 들어, Microsoft® DirectPlay® 서비스 프로바이더의 모뎀 접속을 사용하는 경우 등에 편리하다. dial out에는 다양한 모뎀을 선택해, 호스트에게는 특정의 모뎀을 선택할 수 있다.
pcbEnumData 버퍼에서는 요구된 서비스 프로바이더 정보를 보관 유지하는 용량이 부족하는 경우, 메서드는 DPNERR_BUFFERTOOSMALL 를 돌려준다. pcbEnumData 파라미터에는 필요한 버퍼 사이즈가 저장 된다. 보통, 제일이야 있고 방법은 길이 0 의 버퍼로 한 번 메서드를 호출해, 필요한 사이즈를 판단하는 것이다. 다음에, 버퍼를 적절한 사이즈로 해 한번 더 호출한다.
보통, 이 메서드는, 애플리케이션을 사용할 수 있는 서비스 프로바이더만을 돌려준다. 예를 들어, Internetwork Packet Exchange (IPX) 네트워킹 프로토콜이 인스톨되지 않은 경우, DirectPlay 는 IPX 서비스 프로바이더를 돌려주지 않는다. DirectPlay 가, 사용할 수 없는 프로바이더를 포함해 모든 서비스 프로바이더를 돌려주도록(듯이) 하려면 ,dwFlags 에 DPNENUMSERVICEPROVIDERS_ALL 플래그를 설정한다.