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[데스크톱 앱만] |
헤더 |
|
라이브러리 |
|