DirectPlay DirectPlay C/C++ 레퍼런스 인터페이스 IDirectPlay8Peer EnumServiceProviders   [목차열람] [주소복사] [슬롯비우기]
IDirectPlay8Peer::EnumServiceProviders 메서드
 
Microsoft DirectX 9.0

IDirectPlay8Peer::EnumServiceProviders 메서드


애플리케이션으로 이용할 수 있는 등록이 끝난 서비스 프로바이더를 모두 열거한다.

구문

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 플래그를 설정한다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP