IEnumRegFilters::Next 메서드(strmif.h)
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
구문
HRESULT Next(
[in] ULONG cFilters,
[out] REGFILTER **apRegFilter,
[out] ULONG *pcFetched
);
매개 변수
[in] cFilters
필터 수입니다.
[out] apRegFilter
REGFILTER 포인터 배열에 대한 포인터의 주소입니다.
[out] pcFetched
전달된 실제 필터 수에 대한 포인터입니다.
반환 값
다음 HRESULT 값 중 하나를 반환합니다.
반환 코드 | 설명 |
---|---|
|
인수가 잘못되었습니다. |
|
메모리가 부족합니다. |
|
NULL 포인터 인수입니다. |
|
예기치 않은 오류입니다. |
|
요청된 필터보다 적은 수의 필터가 검색되었습니다. |
|
성공. |
|
열거자가 잘못되었습니다. 자세한 내용은 설명 부분을 참조하세요. |
설명
호출 애플리케이션은 Microsoft Win32 CoTaskMemFree 함수를 사용하여 배열에 반환된 각 REGFILTER 포인터를 해제해야 합니다. REGFILTER 구조체의 일부로 이 문자열에 대한 메모리를 할당하므로 REGFILTER 구조체의 Name 멤버를 별도로 IEnumRegFilters::Next
해제하지 마세요.
등록된 필터 수가 변경되면 열거자의 상태가 더 이상 레지스트리의 상태와 일치하지 않습니다. 결과적으로 이 메서드는 VFW_E_ENUM_OUT_OF_SYNC 반환합니다. 열거자에 대한 이전 호출에서 얻은 모든 데이터를 삭제해야 합니다. 이는 유효하지 않을 수 있으므로 Reset 메서드를 호출하여 열거자를 업데이트해야 합니다. 그런 다음 메서드를 안전하게 호출할 Next
수 있습니다.
요구 사항
요구 사항 | 값 |
---|---|
대상 플랫폼 | Windows |
헤더 | strmif.h(Dshow.h 포함) |