DirectX Media Object DMO 의 관련 정보 DMO 의 함수 DMOEnum [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
레지스트리에 등록되어 있는 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();
}
참조