다음을 통해 공유


IResourceManager::RequestResource 메서드(strmif.h)

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

메서드는 RequestResource 지정된 등록된 리소스의 사용을 요청합니다.

구문

HRESULT RequestResource(
  [in] LONG              idResource,
  [in] IUnknown          *pFocusObject,
  [in] IResourceConsumer *pConsumer
);

매개 변수

[in] idResource

리소스가 등록되었을 때 검색된 리소스 토큰입니다.

[in] pFocusObject

요청과 연결된 포커스 개체의 IUnknown 인터페이스에 대한 포인터입니다(일반적으로 필터의 IUnknown 인터페이스).

[in] pConsumer

리소스를 요청하는 개체의 IResourceConsumer 인터페이스에 대한 포인터입니다.

반환 값

HRESULT 값을 반환합니다. 요청된 리소스가 반환되면 S_OK 반환하거나, 리소스를 사용할 수 없는 경우 S_FALSE 반환합니다. 이 경우 리소스 관리자가 리소스를 사용할 수 있게 되면 요청 개체를 다시 호출합니다. 다른 반환은 오류입니다.

설명

리소스에 대한 요청이 두 개 이상 있는 경우 리소스 관리자는 각 요청과 함께 전달된 포커스 개체를 사용하여 가장 최근의 IResourceManager::SetFocus 메서드에서 전달된 포커스 개체와 비교하여 우선 순위를 결정합니다.

요청은 다음 우선 순위 순서로 채워집니다.

  1. 마지막 SetFocus 메서드와 정확히 동일한 포커스 개체로 이루어진 요청입니다.
  2. 포커스 개체가 공통 필터 그래프를 공유하는 포커스 개체의 공통 원본 필터를 공유하는 요청입니다.
  3. 포커스와 동일한 프로세스의 요청입니다.
이 우선 순위를 확인하는 동안 리소스 관리자는 포커스 개체에서 QueryInterface 를 사용하여 IID_IFilter. 이 경우 리소스 관리자는 IBaseFilter 메서드를 사용하여 필터 그래프를 검사 현재 포커스 개체가 있는 공통 원본 필터를 찾습니다.

필터는 pFocusObject 매개 변수에서 필터의 IUnknown 인터페이스를 전달해야 합니다. 필터 그래프 관리자는 필터 그래프와 필터를 일치시키고 포커스 개체를 확인할 때 필터를 일반적인 원본 필터로 추적하려고 시도합니다.

포커스 개체는 요청의 전체 수명 동안 유효해야 합니다. IResourceManager::CancelRequest 메서드가 호출되거나 bStillWant 매개 변수를 FALSE로 설정하여 IResourceManager::NotifyRelease 메서드가 호출될 때까지 유효해야 합니다.

요구 사항

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

추가 정보

오류 및 성공 코드

IResourceManager 인터페이스