다음을 통해 공유


IAMStreamConfig::GetFormat 메서드(strmif.h)

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

메서드는 GetFormat 현재 또는 기본 설정 출력 형식을 검색합니다.

구문

HRESULT GetFormat(
  [out] AM_MEDIA_TYPE **ppmt
);

매개 변수

[out] ppmt

AM_MEDIA_TYPE 구조체에 대한 포인터의 주소입니다.

반환 값

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

반환 코드 Description
S_OK
성공.
E_OUTOFMEMORY
메모리가 부족합니다.
E_POINTER
NULL 포인터 값입니다.
VFW_E_NOT_CONNECTED
입력 핀이 연결되어 있지 않습니다.

설명

핀이 연결된 경우 이 메서드는 핀이 현재 사용 중인 형식을 반환합니다. 그렇지 않으면 메서드는 다음 핀 연결에 대해 핀의 기본 설정 형식을 반환합니다. 형식 GetFormat 을 설정하기 위해 IAMStreamConfig::SetFormat 메서드를 이미 호출한 경우 동일한 형식을 반환합니다. 그렇지 않은 경우 IPin::EnumMediaTypes 메서드에 의해 결정된 대로 핀의 기본 설정 형식 목록에서 첫 번째 형식을 반환합니다.

메서드는 AM_MEDIA_TYPE 구조체에 대한 메모리를 할당하고 구조를 채운 다음 pmt 매개 변수에 반환합니다. 호출자는 형식 블록을 포함하여 메모리를 해제해야 합니다. 기본 클래스 라이브러리에서 DeleteMediaType 도우미 함수를 사용할 수 있습니다.

일부 압축 필터에서는 필터의 입력 핀이 연결되지 않은 경우 메서드가 실패합니다.

예제

C++
IAMStreamConfig *pConfig = NULL;
// Query the output pin for IAMStreamConfig (not shown).
AM_MEDIA_TYPE *pmt = NULL;
hr = pConfig->GetFormat(&pmt);
if (SUCCEEDED(hr))
{
    /* Examine the media type for any information you need. */
    DeleteMediaType(pmt);
}
pConfig->Release();

요구 사항

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

추가 정보

오류 및 성공 코드

IAMStreamConfig 인터페이스