DirectShow DirectShow 레퍼런스 인터페이스 IAMStreamConfig GetFormat   [목차열람] [주소복사] [슬롯비우기]
IAMStreamConfig::GetFormat
 
Microsoft DirectX 9.0

IAMStreamConfig::GetFormat

GetFormat 메서드는, 현재의 출력 포맷 또는 우선 출력 포맷을 얻어온다.

구문

HRESULT GetFormat(
  AM_MEDIA_TYPE **pmt
);

파라미터

pmt

[out] AM_MEDIA_TYPE 구조체의 포인터 주소.

반환값

HRESULT 값을 돌려준다. 가능한 값은 다음과 같다.

반환 코드 설명
S_OK 성공.
E_OUTOFMEMORY 메모리 부족.
E_POINTER NULL 포인터값.
VFW_E_NOT_CONNECTED 입력 핀이 접속되지 않다.

주의

핀이 접속되고 있는 경우, 이 메서드는, 핀이 현재 사용하고 있는 포맷을 돌려준다. 그렇지 않은 경우, 이 메서드는, 다음의 핀 접속에 사용하는 핀의 우선 포맷을 돌려준다. 포맷을 설정하기 위해서 이미 IAMStreamConfig::SetFormat 메서드를 호출했을 경우,GetFormat 는 같은 포맷을 돌려준다. 그렇지 않은 경우는,IPin::EnumMediaTypes 메서드에 의해 지정된, 핀의 우선 포맷 리스트의 최초의 포맷을 돌려준다.

이 메서드는,AM_MEDIA_TYPE 구조체에 메모리를 할당해 구조체에 묻어,pmt 인수내에 돌려준다. 호출원래는, 포맷 블록을 포함해 메모리를 릴리즈 할 필요가 있다. base class 라이브러리의 헬퍼-함수 DeleteMediaType 를 사용할 수 있다.

몇개의 압축 필터에서는, 필터의 입력 핀이 접속되지 않은 경우, 이 메서드는 실패한다.

샘플 코드

IAMStreamConfig *pConfig = NULL;
// IAMStreamConfig 에 대해서 출력 핀을 문의한다 (여기에서는 나타나지 않았다).
AM_MEDIA_TYPE *pmt = NULL;
hr = pConfig->GetFormat(&pmt);
if (SUCCEEDED(hr))
{
    /* 필요한 정보를 위해서(때문에) 미디어 타입을 조사한다.  */
    DeleteMediaType(pmt);
}
pConfig->Release();

참조

↑TOP