IMFASFSplitter::GetSelectedStreams 메서드(wmcontainer.h)

현재 선택된 스트림의 목록을 가져옵니다.

구문

HRESULT GetSelectedStreams(
  [out]     WORD *pwStreamNumbers,
  [in, out] WORD *pwNumStreams
);

매개 변수

[out] pwStreamNumbers

WORD 배열의 주소입니다. 이 배열은 선택한 스트림의 스트림 번호를 받습니다. 이 매개 변수는 NULL일 수 있습니다.

[in, out] pwNumStreams

입력 시 pwStreamNumbers 배열의 요소 수를 포함하는 변수를 가리킵니다. pwStreamNumbersNULL인 경우 변수를 0으로 설정합니다.

출력에서 는 pwStreamNumbers에 복사된 요소의 수를 받습니다. 각 요소는 선택한 스트림의 식별자입니다.

반환 값

이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.

반환 코드 Description
S_OK
메서드가 성공했습니다.
E_INVALIDARG
인수가 잘못되었습니다.
MF_E_BUFFERTOOSMALL
pwStreamNumbers 배열은 선택한 스트림 수보다 작습니다. 설명 부분을 참조하세요.

설명

선택한 스트림 수를 얻으려면 pwStreamNumbersNULL로 설정합니다. 메서드는 MF_E_BUFFERTOSMALL 반환하지만 값도 선택한 스트림 수와 동일하게 설정 *pwNumStreams 됩니다. 그런 다음, 해당 크기의 배열을 할당하고 메서드를 다시 호출하여 pwStreamNumbers 매개 변수에 배열을 전달합니다.

다음은 이러한 단계를 보여 주는 코드입니다.

HRESULT DisplaySelectedStreams(IMFASFSplitter *pSplitter)
{
    WORD count = 0;
    HRESULT hr = pSplitter->GetSelectedStreams(NULL, &count);
    if (hr == MF_E_BUFFERTOOSMALL)
    {
        WORD *pStreamIds = new (std::nothrow) WORD[count];
        if (pStreamIds)
        {
            hr = pSplitter->GetSelectedStreams(pStreamIds, &count);
            if (SUCCEEDED(hr))
            {
                for (WORD i = 0; i < count; i++)
                {
                    printf("Selected stream ID: %d\n", pStreamIds[i]);
                }
            }
            delete [] pStreamIds;
        }
        else
        {
            hr = E_OUTOFMEMORY;
        }
    }
    return hr;
}

또는 총 스트림 수와 동일한 배열을 할당하고 pwStreamNumbers에 전달할 수 있습니다.

이 메서드를 호출하기 전에 pwStreamNumbers의 요소 수를 초기화 *pwNumStreams 합니다. pwStreamNumbersNULL이면 0으로 설정합니다*pwNumStreams.

기본적으로 분할자는 스트림을 선택하지 않습니다. IMFASFSplitter::SelectStreams 메서드를 호출하여 스트림을 선택합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 wmcontainer.h
라이브러리 Mfuuid.lib

추가 정보

ASF 분할기

IMFASFSplitter