다음을 통해 공유


ICaptureGraphBuilder2::FindInterface 메서드(strmif.h)

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

메서드는 FindInterface 지정된 필터에서 시작하여 그래프에서 지정된 인터페이스를 검색합니다. 필터의 그래프 업스트림 또는 다운스트림의 섹션으로 검색을 제한하거나 특정 핀 범주 또는 미디어 유형으로 제한할 수 있습니다.

구문

HRESULT FindInterface(
  [in]  const GUID  *pCategory,
  [in]  const GUID  *pType,
  [in]  IBaseFilter *pf,
  [in]  REFIID      riid,
  [out] void        **ppint
);

매개 변수

[in] pCategory

검색 조건을 지정하는 GUID에 대한 포인터입니다. 자세한 내용은 설명 부분을 참조하십시오. 가능한 값은 다음과 같습니다.

  • &LOOK_UPSTREAM_ONLY.
  • &LOOK_DOWNSTREAM_ONLY.
  • Pin 속성 집합에 나열된 핀 범주 중 하나입니다.
  • NULL
자세한 내용은 설명 부분을 참조하십시오.

[in] pType

출력 핀 또는 NULL의 주요 미디어 형식을 지정하는 GUID에 대한 포인터입니다.

[in] pf

필터의 IBaseFilter 인터페이스에 대한 포인터입니다. 메서드는 이 필터에서 검색을 시작합니다.

[in] riid

찾을 인터페이스의 IID(인터페이스 식별자)입니다.

[out] ppint

인터페이스 포인터를 수신하는 변수의 주소입니다. 인터페이스를 완료하면 검색된 인터페이스 포인터를 해제해야 합니다.

반환 값

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

반환 코드 Description
S_OK
성공.
E_FAIL
실패.
E_NOINTERFACE
해당 인터페이스는 지원되지 않습니다.
E_POINTER
NULL 포인터 인수입니다.

설명

캡처 그래프에서 다양한 필터와 핀은 압축 매개 변수(IAMVideoCompression) 또는 스트림 형식(IAMStreamConfig)과 같은 속성을 설정하기 위한 인터페이스를 노출할 수 있습니다. 캡처 디바이스에 따라 다른 유용한 인터페이스에는 아날로그 신호를 라우팅하는 IAMCrossbar 또는 TV 튜너 디바이스를 제어하는 IAMTVTuner가 포함될 수 있습니다. 그래프를 트래버스하는 특수 코드를 작성하지 않고 이 메서드를 사용하여 인터페이스를 찾을 수 있습니다.

중요IVideoWindow 인터페이스 포인터를 가져오려면 이 메서드를 호출하지 마세요. 항상 이 인터페이스에 대한 필터 그래프 관리자를 쿼리합니다. 그렇지 않으면 필터 그래프 관리자가 화면 해상도 및 기타 이벤트의 변경 내용에 올바르게 응답하지 않습니다.
 
pCategory 매개 변수가 NULL이면 이 메서드는 전체 그래프에서 요청된 인터페이스를 검색합니다. pf 매개 변수로 지정된 필터부터 그래프에서 다음 개체를 쿼리합니다.
  • 필터
  • 필터의 핀
  • 핀을 포함한 모든 다운스트림 필터
  • 핀을 포함한 모든 업스트림 필터
다음과 같이 pCategorypType 매개 변수를 설정하여 검색을 제한할 수 있습니다.
  • pCategory가 &LOOK_UPSTREAM_ONLY 같으면 필터의 입력 핀에서 검색이 시작되고 업스트림 계속됩니다. 필터 또는 필터의 다운스트림은 포함되지 않습니다. pType 매개 변수는 무시됩니다.
  • pCategory가 &LOOK_DOWNSTREAM_ONLY 같으면 필터의 출력 핀에서 검색이 시작되고 다운스트림으로 계속됩니다. 필터 또는 필터에서 업스트림 아무것도 포함하지 않습니다. pType 매개 변수는 무시됩니다.
  • pCategory가 핀 범주를 지정하는 경우 검색의 다운스트림 부분은 pType 매개 변수에 지정된 핀 범주 및 미디어 유형과 일치하는 필터의 출력 핀으로 제한됩니다. 이 경우 메서드는 필터와 필터에서 업스트림 모든 항목도 검색합니다.
또한 pCategoryNULL이 아닌 경우 메서드는 pf에 지정된 필터에서 업스트림 특정 WDM(Windows 드라이버 모델) 필터를 추가할 수 있습니다. 자세한 내용은 이 섹션의 "필터 지원" 아래의 설명을 참조하세요.

고정 범주는 캡처 필터에서 핀 인터페이스를 찾는 데 유용합니다. 예를 들어 캡처 필터에는 캡처 및 미리 보기를 위한 별도의 핀이 있을 수 있습니다. 핀 범주를 지정하는 경우 미디어 유형도 지정하여 메서드가 올바른 필터 및 핀을 선택하도록 해야 합니다.

일부 비디오 캡처 필터에는 미리 보기 핀 대신 비디오 포트 핀(PIN_CATEGORY_VIDEOPORT)이 있습니다. PIN_CATEGORY_PREVIEW 지정하고 MEDIATYPE_Video 경우 메서드는 비디오 포트 핀을 미리 보기 핀으로 처리합니다. 애플리케이션에서 이러한 가능성을 테스트할 필요가 없습니다.

필터 지원. 캡처 디바이스가 WDM(Windows 드라이버 모델) 드라이버를 사용하는 경우 그래프에는 TV 튜너 필터 또는 아날로그 비디오 크로스바 필터와 같은 WDM 비디오 캡처 필터에서 업스트림 특정 필터가 필요할 수 있습니다. pCategory 매개 변수가 NULL과 같지 않으면 이 메서드는 필요한 WDM 필터를 그래프에 자동으로 삽입합니다. 이렇게 하려면 캡처 필터의 입력 핀을 쿼리하여 지원하는 매체를 확인하고 일치하는 필터에 연결합니다. pCategory 매개 변수가 NULL이면 메서드는 업스트림 필터를 추가하지 않습니다.

요구 사항

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

추가 정보

오류 및 성공 코드

ICaptureGraphBuilder2 인터페이스