DirectShow DirectShow 레퍼런스 인터페이스 ICreateDevEnum CreateClassEnumerator   [목차열람] [주소복사] [슬롯비우기]
ICreateDevEnum::CreateClassEnumerator
 
Microsoft DirectX 9.0

ICreateDevEnum::CreateClassEnumerator

CreateClassEnumerator 메서드는, 지정된 장치 카테고리의 열거자를 생성 한다.

구문

HRESULT CreateClassEnumerator(
  REFCLSID clsidDeviceClass,
  IEnumMoniker **ppEnumMoniker,
  DWORD dwFlags
);

파라미터

clsidDeviceClass

[in] 장치 카테고리의 클래스 식별자 (CLSID)를 지정한다. 「필터 카테고리」를 참조할것.

ppEnumMoniker

[out] IEnumMoniker 인터페이스 포인터를 받는 변수의 주소.

dwFlags

[in] 제로 혹은 복수의 플래그의 비트의 편성. 제로의 경우는, 메서드는 카테고리의 모든 필터를 열거한다. 임의의 플래그가 설정되어 있는 경우, 열거에는 지정된 플래그와 일치하는 필터만이 포함된다. 다음의 플래그가 정의되고 있다.

플래그 설명
CDEF_DEVMON_CMGR_DEVICE 오디오 압축 매니저 (ACM) 또는 비디오 압축 매니저 (VCM)를 사용해, 오디오 CODEC 또는 비디오 CODEC 를 열거한다.
CDEF_DEVMON_DMO DirectX Media Object (DMO)를 열거한다.
CDEF_DEVMON_FILTER 이용 가능한 DirectShow 필터를 열거한다.
CDEF_DEVMON_PNP_DEVICE 플러그 앤 플레이 하드웨어 장치를 열거한다.

반환값

다음의 몇개의 HRESULT 값을 돌려준다.

반환 코드 설명
S_OK 성공.
E_OUTOFMEMORY 클래스 열거자를 생성 하는데 충분한 메모리를 이용할 수 없다.
S_FALSE clsidDeviceClass 에 의해 지정된 카테고리가 존재하지 않는지, 하늘이다.
E_POINTER NULL 포인터 인수.

주의

카테고리가 존재하지 않는지, 하늘의 경우, 반환값은 S_FALSE 로,ppEnumMoniker 인수는 값 NULL 를 받는다. 따라서,SUCCEEDED 매크로를 사용하는 대신에, 반환값 S_OK 에 대해 테스트한다.

IEnumMoniker *pEnum = NULL;
hr = pSysDevEnum->CreateClassEnumerator(
    CLSID_VideoCompressorCategory, &pEnum, 0);
if (hr == S_OK) 
{
    // 안전하게 pEnum 를 참조 해제한다.
    pEnum->Release();
}

돌려받는 IEnumMoniker 인터페이스에 미처리의 참조 카운트가 남는다. 호출원래는, 그 인터페이스를 반드시 릴리즈 해야 한다.

참조

↑TOP