DirectX Media Object DMO 의 관련 정보 DMO 의 함수 DMOEnum   [목차열람] [주소복사] [슬롯비우기]
DMOEnum
 
Microsoft DirectX 9.0

DMOEnum

레지스트리에 등록되어 있는 DMO 를 열거한다. 호출원래는, 카테고리, 미디어 타입, 또는 그 양쪽 모두를 지정해 검색할 수 있다.

구문

HRESULT DMOEnum(
    REFGUID guidCategory,
    DWORD dwFlags,
    DWORD cInTypes,
    const DMO_PARTIAL_MEDIATYPE *pInTypes,
    DWORD cOutTypes,
    const DMO_PARTIAL_MEDIATYPE *pOutTypes,
    IEnumDMO **ppEnum
);

파라미터

guidCategory

검색하는 DMO 의 카테고리를 지정하는 GUID. 모든 카테고리를 검색하려면 GUID_NULL 를 사용한다. 카테고리의 GUID 의 일람에 대해서는, 「DMO 의 GUID 」를 참조할것.

dwFlags

DMO_ENUM_FLAGS 열거형의 0 개 이상의 플래그의 비트 단위의 논리합.

cInTypes

검색 조건으로서 사용하는 입력 미디어 타입의 수. 모든 입력 타입을 조건으로 적합시키려면 0 을 사용한다.

pInTypes

입력 미디어 타입을 보관 유지하는 DMO_PARTIAL_MEDIATYPE 구조체의 배열을 가리키는 포인터. cInTypes 파라미터로 배열의 사이즈를 지정한다.

cOutTypes

검색 조건으로서 사용하는 출력 미디어 타입의 수. 모든 출력 타입을 조건으로 적합시키려면 0 을 사용한다.

pOutTypes

출력 미디어 타입을 보관 유지하는 DMO_PARTIAL_MEDIATYPE 구조체의 배열을 가리키는 포인터. cOutTypes 파라미터로 배열의 사이즈를 지정한다.

ppEnum

열거자의 IEnumDMO 인터페이스를 받는 변수의 주소.

반환값

HRESULT 값을 돌려준다. 가능한 값은 다음과 같다.

결과 코드 설명
E_FAIL 실패
E_OUTOFMEMORY 메모리 부족
S_OK 성공

주의

이 메서드는,IEnumDMO 인터페이스를 지원 하는 열거자 개체를 가리키는 포인터를 돌려준다. 애플리케이션은 IEnumDMO 인터페이스를 사용해, 검색 조건에 적합하는 DMO 세트를 열거한다.

요건

Dmoreg.h 로 선언한다. Dmo.h 를 인클루드 한다.

Msdmo.lib 에 링크한다.

샘플 코드

다음 샘플에서는, 사용자의 시스템에 있는 모든 오디오 이펙트 DMO 를 열거하고 있다. 키로 보호된 DMO 도 포함된다.

IEnumDMO* pEnum = NULL; 
HRESULT hr = DMOEnum(
    DMOCATEGORY_AUDIO_EFFECT, // 카테고리
    DMO_ENUMF_INCLUDE_KEYED,  // 포함되어 있는, 키로 보호된 DMO
    0, NULL,                  // 입력 타입 (불요)
    0, NULL,                  // 출력 타입 (불요)
    &pEnum);

if (SUCCEEDED(hr)) 
{
    CLSID clsidDMO;
    WCHAR* wszName;
    do
    {
        hr = pEnum->Next(1, &clsidDMO, &wszName, NULL);
        if (hr == S_OK) 
        {  
            // wszName 는 DMO 의 프렌들리명을 보관 유지해,
            // clsidDMO 는 CLSID 를 보관 유지하고 있다.

            // 잊지 않고 wszName 를 릴리즈 한다.
            CoTaskMemFree(wszName);
        }
    } while (hr == S_OK);
    pEnum->Release();
}

참조

↑TOP