다음을 통해 공유


CSourceSeeking.CheckCapabilities 메서드

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

메서드는 CheckCapabilities 스트림이 검색 기능을 지정했는지 여부를 쿼리합니다. 이 메서드는 IMediaSeeking::CheckCapabilities 메서드를 구현합니다.

구문

HRESULT CheckCapabilities(
   DWORD *pCapabilities
);

매개 변수

pCapabilities

하나 이상의 AM_SEEKING_SEEKING_CAPABILITIES 특성의 비트 조합에 대한 포인터입니다.

반환 값

다음 표에 나열된 HRESULT 값 중 하나를 반환합니다.

반환 코드 설명
S_FALSE
pCapabilities의 모든 기능이 있는 것은 아닙니다.
S_OK
pCapabilities의 모든 기능이 있습니다.
E_POINTER
NULL 포인터 인수입니다.

설명

구현된 대로 이 메서드는 CSourceSeeking::m_dwSeekingCaps 멤버 변수에 대해 *pCapabilities 값을 확인합니다. 그러나 IMediaSeeking::CheckCapabilities 메서드에 설명된 대로 *pCapabilitiesm_dwSeekingCaps 동일하게 설정되지 않습니다. 또한 지정된 기능을 사용할 수 없는 경우 메서드는 E_FAIL 반환하지 않습니다. 보다 완전한 구현은 다음과 같습니다.

STDMETHODIMP CheckCapabilities(DWORD *pCapabilities)
{
    CheckPointer(pCapabilities, E_POINTER)
;
    DWORD dwCaps;
    HRESULT hr = GetCapabilities(&dwCaps);
    if (SUCCEEDED(hr))
    {
        dwCaps &= *pCapabilities;
        if (dwCaps)
        {
            hr =  (dwCaps == *pCapabilities ? S_OK : S_FALSE );
        }
        else 
        {
            hr = E_FAIL;
        }
        *pCapabilities = dwCaps;
    }
    else 
    {
        *pCapabilities = 0;
    }
    return hr;
}

요구 사항

요구 사항
헤더
Ctlutil.h(Streams.h 포함)
라이브러리
Strmbase.lib(소매 빌드);
Strmbasd.lib(디버그 빌드)

추가 정보

CSourceSeeking 클래스