다음을 통해 공유


IEnumRegFilters::Next 메서드(strmif.h)

[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngineMedia Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드에서 DirectShow 대신 MediaPlayer, IMFMediaEngine오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]

참고IEnumRegFilters 인터페이스는 더 이상 사용되지 않습니다.
 
열거자를 만들 때 지정된 요구 사항을 충족하는 다음 필터 집합( cFilters 매개 변수로 지정됨)에 대한 설명으로 배열을 채웁니다.

구문

HRESULT Next(
  [in]  ULONG     cFilters,
  [out] REGFILTER **apRegFilter,
  [out] ULONG     *pcFetched
);

매개 변수

[in] cFilters

필터 수입니다.

[out] apRegFilter

REGFILTER 포인터 배열에 대한 포인터의 주소입니다.

[out] pcFetched

전달된 실제 필터 수에 대한 포인터입니다.

반환 값

다음 HRESULT 값 중 하나를 반환합니다.

반환 코드 설명
E_INVALIDARG
인수가 잘못되었습니다.
E_OUTOFMEMORY
메모리가 부족합니다.
E_POINTER
NULL 포인터 인수입니다.
E_UNEXPECTED
예기치 않은 오류입니다.
S_FALSE
요청된 필터보다 적은 수의 필터가 검색되었습니다.
S_OK
성공.
VFW_E_ENUM_OUT_OF_SYNC
열거자가 잘못되었습니다. 자세한 내용은 설명 부분을 참조하세요.

설명

호출 애플리케이션은 Microsoft Win32 CoTaskMemFree 함수를 사용하여 배열에 반환된 각 REGFILTER 포인터를 해제해야 합니다. REGFILTER 구조체의 일부로 이 문자열에 대한 메모리를 할당하므로 REGFILTER 구조체의 Name 멤버를 별도로 IEnumRegFilters::Next 해제하지 마세요.

등록된 필터 수가 변경되면 열거자의 상태가 더 이상 레지스트리의 상태와 일치하지 않습니다. 결과적으로 이 메서드는 VFW_E_ENUM_OUT_OF_SYNC 반환합니다. 열거자에 대한 이전 호출에서 얻은 모든 데이터를 삭제해야 합니다. 이는 유효하지 않을 수 있으므로 Reset 메서드를 호출하여 열거자를 업데이트해야 합니다. 그런 다음 메서드를 안전하게 호출할 Next 수 있습니다.

요구 사항

요구 사항
대상 플랫폼 Windows
헤더 strmif.h(Dshow.h 포함)

추가 정보

오류 및 성공 코드

IEnumRegFilters 인터페이스