Метод IKsPin::KsQueryMediums
[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]
Метод KsQueryMediums
извлекает среды, поддерживаемые закреплением.
Синтаксис
HRESULT KsQueryMediums(
[out] KSMULTIPLE_ITEM **ppmi
);
Параметры
-
ppmi [out]
-
Адрес указателя на структуру KSMULTIPLE_ITEM .
Возвращаемое значение
Если метод завершается успешно, возвращает значение S_OK. В случае сбоя возвращается код ошибки HRESULT .
Комментарии
Этот метод возвращает структуру, выделенную задачей KSMULTIPLE_ITEM , за которой следует ноль или более структур REGPINMEDIUM . Элемент Count структуры KSMULTIPLE_ITEM указывает количество структур REGPINMEDIUM . Каждая структура REGPINMEDIUM определяет среду, поддерживаемую закреплением.
Вызывающий объект должен освободить возвращаемые структуры с помощью функции CoTaskMemFree .
Необходимо включить Ks.h перед Ksproxy.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 [только классические приложения] |
Заголовок |
|
Библиотека |
|
См. также раздел