DirectShow DirectShow 레퍼런스 인터페이스 IFilterMapper2 EnumMatchingFilters [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
EnumMatchingFilters 메서드는, 지정된 요건을 채우는 등록이 끝난 필터를 열거한다.
구문
HRESULT EnumMatchingFilters(
IEnumMoniker **ppEnum,
DWORD dwFlags,
BOOL bExactMatch,
DWORD dwMerit,
BOOL bInputNeeded,
DWORD cInputTypes,
const GUID *pInputTypes,
const REGPINMEDIUM *pMedIn,
const CLSID *pPinCategoryIn,
BOOL bRender,
BOOL bOutputNeeded,
DWORD cOutputTypes,
const GUID *pOutputTypes,
const REGPINMEDIUM *pMedOut,
const CLSID *pPinCategoryOut
);
파라미터
ppEnum
[out] IEnumMoniker 인터페이스의 포인터를 받는 변수의 주소. 이 인터페이스 포인터를 사용해, 열거로부터 필터모니카를 얻어온다. 호출원래는 인터페이스를 반드시 릴리즈 하는 것.
dwFlags
[in] 예약이 끝난 상태. 0 이 아니면 안된다.
bExactMatch
[in] 완전하게 일치하는 것만을 열거할지 어떨지를 나타내는 불형의 값. 더 자세한 정보는, 「주의」를 참조할것.
dwMerit
[in] 최소 메리트값. 열거에서는, 이 값미만의 메리트값의 필터는 제외한다. dwMerit 가 MERIT_DO_NOT_USE 를 넘는 경우, 열거는 category 가 MERIT_DO_NOT_USE 이하의 메리트값의 필터도 제외한다 (필터 카테고리」를 참조할것).
bInputNeeded
[in] 필터에 입력 핀이 필요한가 어떤가를 나타내는 불형의 값. TRUE 의 경우, 필터에는 입력 핀이 적어도 1 개 필요하다.
cInputTypes
[in] pInputTypes 로 지정하는 입력 미디어 타입의 수.
pInputTypes
[in] 메이저 타입 및 서브 타입을 지정하는 GUID 페어의 배열의 포인터. 이것들에 일치하는 입력 핀을 열거한다. 배열의 사이즈는 2 * cInputTypes 가 된다. 배열은 NULL 도 가능. 배열의 각각의 멤버에는, 모든 타입에 일치하는 GUID_NULL 를 지정할 수 있다 ( 「미디어 타입」을 참조할것).
pMedIn
[in] 입력 핀의 미디어를 지정하는 REGPINMEDIUM 구조체의 포인터. 필요가 없는 경우는, NULL 를 설정한다.
pPinCategoryIn
[in] 입력 핀 카테고리를 지정하는 GUID 의 포인터 ( 「핀 프로퍼티 세트」를 참조할것). 필요가 없는 경우는, NULL 를 설정한다.
bRender
[in] 필터가 그 입력을 렌더링 할 필요가 있을지 어떨지를 지정하는 불형의 값. TRUE 의 경우에는, 지정된 필터가 입력을 렌더링 할 필요가 있다.
bOutputNeeded
[in] 필터에 출력 핀이 필요한가 어떤가를 지정하는 불형의 값. TRUE 의 경우, 필터에는 출력 핀이 적어도 1 개 필요하다.
cOutputTypes
[in] pOutputTypes 로 지정하는 입력 미디어 타입의 수.
pOutputTypes
[in] 메이저 타입 및 서브 타입을 지정하는 GUID 페어의 배열의 포인터. 이것들에 일치하는 출력 핀을 열거한다. 배열의 사이즈는 2 * cOutputTypes 가 된다. 배열은 NULL 도 가능. 배열의 각각의 멤버에는, 모든 타입에 일치하는 GUID_NULL 를 지정할 수 있다.
pMedOut
[in] 출력 핀의 미디어를 지정하는 REGPINMEDIUM 구조체의 포인터. 필요가 없는 경우는, NULL 를 설정한다.
pPinCategoryOut
[in] 출력 핀 카테고리를 지정하는 GUID 의 포인터 ( 「핀 프로퍼티 세트」를 참조할것). 필요가 없는 경우는, NULL 를 설정한다.
반환값
HRESULT 값을 돌려준다. 가능한 값은 다음의 일람대로이다.
값 | 설명 |
S_OK | 성공. |
E_FAIL | 실패. |
E_OUTOFMEMORY | 메모리 부족. |
E_POINTER | NULL 포인터 인수. |
주의
입력 핀이 주어진 미디어 타입 세트와 일치하는 필터를 검색하려면 , 메이저 타입 GUID 와 서브 타입 GUID 의 페어를 순서에 늘어놓은 배열을 선언한다. pInputTypes 인수에 배열의 주소를 건네주어,cInputTypes 인수에 페어의 수 (즉 배열 사이즈의 반)를 설정한다.
GUID arrayInTypes[2];
arrayInTypes[0] = MEDIATYPE_Video;
arrayInTypes[1] = GUID_NULL;
DWORD cInTypes = 1;
출력 핀의 경우는,pOutputTypes 인수에 같은 배열을 건네주어,cOutputTypes 인수로 GUID 페어의 수를 지정한다.
bExactMatch 인수의 값이 TRUE 의 경우, 이 메서드는, 미디어 타입, 핀 카테고리, 핀 미디어로 지정된 값과 완전하게 일치하는 필터를 검색한다. 이 값이 FALSE 의 경우, 이러한 항목의 몇개의 값에 NULL 를 등록하고 있는 필터가 일치하는 것이라고 보여진다 (레지스트리내의 값 NULL 는 와일드 카드가 책임을 다한다).
미디어 타입, 핀 카테고리, 또는 핀 미디어에 NULL 를 지정 하면, 모든 필터가 그 인수에 일치하는 것이라고 보여진다.
미디어 타입이 등록되지 않은 핀은, 그 미디어 타입에 일치하지 않는 것이라고 보여진다.
참조