IKsPin::KsQueryMediums 메서드
[이 페이지와 연결된 기능인 DirectShow는 레거시 기능입니다. MediaPlayer, IMFMediaEngine 및 Media Foundation의 오디오/비디오 캡처로 대체되었습니다. 이러한 기능은 Windows 10 및 Windows 11 최적화되었습니다. 가능한 경우 새 코드가 DirectShow 대신 Media Foundation에서 MediaPlayer, IMFMediaEngine 및 오디오/비디오 캡처를 사용하는 것이 좋습니다. 가능한 경우 레거시 API를 사용하는 기존 코드를 다시 작성하여 새 API를 사용하도록 제안합니다.]
메서드는 KsQueryMediums
핀에서 지원하는 매체를 검색합니다.
구문
HRESULT KsQueryMediums(
[out] KSMULTIPLE_ITEM **ppmi
);
매개 변수
-
ppmi [out]
-
KSMULTIPLE_ITEM 구조체에 대한 포인터의 주소입니다.
반환 값
메서드가 성공하면 S_OK가 반환되고, 실패하면 HRESULT 오류 코드가 반환됩니다.
설명
이 메서드는 태스크 할당 KSMULTIPLE_ITEM 구조체를 반환하며, 그 뒤에는 0개 이상의 REGPINMEDIUM 구조가 뒤따릅니다. KSMULTIPLE_ITEM 구조체의 Count 멤버는 REGPINMEDIUM 구조체의 수를 지정합니다. 각 REGPINMEDIUM 구조체는 핀에서 지원하는 매체를 정의합니다.
호출자는 CoTaskMemFree 함수를 사용하여 반환된 구조를 해제해야 합니다.
Ksproxy.h 앞에 Ks.h를 포함해야 합니다.
예제
다음 도우미 함수는 지정된 매체에 핀을 일치시키려고 시도합니다.
HRESULT FindMatchingMedium(
IPin *pPin,
REGPINMEDIUM *pMedium,
bool *pfMatch)
{
IKsPin* pKsPin = NULL;
KSMULTIPLE_ITEM *pmi;
*pfMatch = false;
HRESULT hr = pPin->QueryInterface(IID_IKsPin, (void **)&pKsPin);
if (FAILED(hr))
return hr; // Pin does not support IKsPin.
hr = pKsPin->KsQueryMediums(&pmi);
pKsPin->Release();
if (FAILED(hr))
return hr; // Pin does not support mediums.
if (pmi->Count)
{
// Use pointer arithmetic to reference the first medium structure.
REGPINMEDIUM *pTemp = (REGPINMEDIUM*)(pmi + 1);
for (ULONG i = 0; i < pmi->Count; i++, pTemp++)
{
if (pMedium->clsMedium == pTemp->clsMedium)
{
*pfMatch = true;
break;
}
}
}
CoTaskMemFree(pmi);
return S_OK;
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 |
Windows 2000 Server[데스크톱 앱만] |
헤더 |
|
라이브러리 |
|
추가 정보