IMFASFSplitter::GetSelectedStreams 메서드(wmcontainer.h)
현재 선택된 스트림의 목록을 가져옵니다.
구문
HRESULT GetSelectedStreams(
[out] WORD *pwStreamNumbers,
[in, out] WORD *pwNumStreams
);
매개 변수
[out] pwStreamNumbers
WORD 배열의 주소입니다. 이 배열은 선택한 스트림의 스트림 번호를 받습니다. 이 매개 변수는 NULL일 수 있습니다.
[in, out] pwNumStreams
입력 시 pwStreamNumbers 배열의 요소 수를 포함하는 변수를 가리킵니다. pwStreamNumbers가 NULL인 경우 변수를 0으로 설정합니다.
출력에서 는 pwStreamNumbers에 복사된 요소의 수를 받습니다. 각 요소는 선택한 스트림의 식별자입니다.
반환 값
이 메서드는 HRESULT를 반환합니다. 가능한 값에는 다음 표에 있는 값이 포함되지만, 이에 국한되는 것은 아닙니다.
반환 코드 | Description |
---|---|
|
메서드가 성공했습니다. |
|
인수가 잘못되었습니다. |
|
pwStreamNumbers 배열은 선택한 스트림 수보다 작습니다. 설명 부분을 참조하세요. |
설명
선택한 스트림 수를 얻으려면 pwStreamNumbers 를 NULL로 설정합니다. 메서드는 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
합니다. pwStreamNumbers가 NULL이면 0으로 설정합니다*pwNumStreams
.
기본적으로 분할자는 스트림을 선택하지 않습니다. IMFASFSplitter::SelectStreams 메서드를 호출하여 스트림을 선택합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | wmcontainer.h |
라이브러리 | Mfuuid.lib |