다음을 통해 공유


IFilterGraph::AddFilter 메서드(strmif.h)

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

메서드는 AddFilter 그래프에 필터를 추가합니다.

구문

HRESULT AddFilter(
  [in] IBaseFilter *pFilter,
  [in] LPCWSTR     pName
);

매개 변수

[in] pFilter

추가할 필터의 IBaseFilter 인터페이스에 대한 포인터입니다.

[in] pName

필터 이름을 포함하는 와이드 문자열에 대한 포인터입니다.

반환 값

HRESULT 값을 반환합니다. 가능한 값은 다음과 같습니다.

반환 코드 설명
S_OK
성공.
VFW_S_DUPLICATE_NAME
중복된 이름의 필터를 추가했습니다.
E_FAIL
실패.
E_OUTOFMEMORY
메모리가 부족합니다.
E_POINTER
NULL 포인터 인수입니다.
VFW_E_CERTIFICATION_FAILURE
이 필터의 사용은 소프트웨어 키에 의해 제한됩니다.
VFW_E_DUPLICATE_NAME
이름이 중복된 필터를 추가하지 못했습니다.

설명

필터의 이름은 NULL일 수 있으며, 이 경우 Filter Graph Manager에서 이름을 생성합니다. 이름이 NULL 이 아니고 고유하지 않은 경우 이 메서드는 새 고유 이름을 생성하기 위해 이름을 수정합니다. 성공하면 이 메서드는 VFW_S_DUPLICATE_NAME 반환합니다. 고유한 이름을 생성할 수 없는 경우 VFW_E_DUPLICATE_NAME 반환합니다.

AddFilter 는 필터의 IBaseFilter::JoinFilterGraph 메서드를 호출하여 필터가 추가되었음을 알릴 수 있습니다. AddFilter는 IGraphBuilder::Connect, IFilterGraph::ConnectDirect 또는 IGraphBuilder::Render 메서드를 사용하여 추가된 필터에 속하는 핀을 연결하거나 렌더링하기 전에 호출되어야 합니다.

필터 그래프 관리자는 필터가 그래프에서 제거되거나 필터 그래프 관리자가 해제될 때까지 필터에 대한 참조 수를 보유합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 strmif.h(Dshow.h 포함)
라이브러리 Strmiids.lib

추가 정보

오류 및 성공 코드

IFilterGraph 인터페이스