DirectPlay DirectPlay C/C++ 레퍼런스 인터페이스 IDirectPlay8Server EnumServiceProviders [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
애플리케이션으로 이용 가능한 등록이 끝난 서비스 프로바이더를 열거한다.
구문
HRESULT EnumServiceProviders(
const GUID *const pguidServiceProvider, const GUID *const pguidApplication, DPN_SERVICE_PROVIDER_INFO *const pSPInfoBuffer, PDWORD const pcbEnumData, PDWORD const pcReturned, const DWORD dwFlags );
파라미터
- pguidServiceProvider
- [in] 서비스 프로바이더를 지정하는 글로벌 일의 식별자 (GUID) 형의 변수의 포인터. 이 옵션 파라미터는, 지정한 서비스 프로바이더의 서브 장치를 열거시킨다. 보통은 이 값에 NULL 를 설정해, 모든 이용 가능한 서비스 프로바이더를 열거한다.
- pguidApplication
- [in] 애플리케이션을 지정하는 GUID 형의 변수의 포인터. 이 파라미터에 포인터가 건네받았을 경우는, 애플리케이션에 접속할 수 있는 서비스 프로바이더만이 열거된다. NULL 를 건네주어, 시스템에 등록을 마친 서비스 프로바이더를 열거할 수도 있다.
- pSPInfoBuffer
- [out] 서비스 프로바이더 정보를 보관 유지하는,DPN_SERVICE_PROVIDER_INFO 구조체의 배열의 포인터.
- pcbEnumData
- [out] 버퍼가 너무 작은 경우,pcbEnumData 버퍼의 사이즈가 저장 되는 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 플래그를 설정한다.