Поделиться через


Метод IKsPropertySet::Get

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Метод Get извлекает свойство, определяемое идентификатором GUID набора свойств и идентификатором свойства.

Синтаксис

HRESULT Get(
  [in]  REFGUID guidPropSet,
  [in]  DWORD   dwPropID,
  [in]  LPVOID  pInstanceData,
  [in]  DWORD   cbInstanceData,
  [out] LPVOID  pPropData,
  [in]  DWORD   cbPropData,
  [out] DWORD   *pcbReturned
);

Параметры

guidPropSet [in]

Guid набора свойств .

dwPropID [in]

Идентификатор свойства в наборе свойств.

pInstanceData [in]

Указатель на массив байтов, содержащий данные экземпляра для свойства .

cbInstanceData [in]

Размер массива, заданного в pInstanceData, в байтах.

pPropData [out]

Указатель на массив байтов, получающий данные свойства.

cbPropData [in]

Размер массива, заданного в pPropData, в байтах.

pcbReturned [out]

Получает количество байтов, копируемых методом в массив pPropData .

Возвращаемое значение

Возвращает значение HRESULT . Ниже приведены возможные значения.

Код возврата Описание
S_OK
Успешно.
E_PROP_SET_UNSUPPORTED
Набор свойств не поддерживается.
E_PROP_ID_UNSUPPORTED
Идентификатор свойства не поддерживается для указанного набора свойств.

 

Комментарии

Примечание

Другой интерфейс с этим именем существует в файле заголовка dsound.h. Эти два интерфейса несовместимы. Интерфейс IKsControl , задокументированный в DirectShow DDK, теперь является рекомендуемым интерфейсом для передачи наборов свойств между драйверами WDM и компонентами пользовательского режима.

 

Чтобы получить свойство, выделите буфер, который затем заполняется этим методом. Чтобы определить необходимый размер буфера, укажите значение NULL для pPropData и ноль (0) для cbPropData. Этот метод возвращает необходимый размер буфера в pcbReturned.

Необходимо включить Ks.h перед Ksproxy.h.

Примеры

В следующем примере выполняется запрос к закреплению для его категории контактов путем получения свойства AMPROPERTY_PIN_CATEGORY . (См . раздел Закрепление набора свойств.)

HRESULT GetPinCategory(IPin *pPin, GUID *pPinCategory)
{
    IKsPropertySet *pKs = NULL;

    HRESULT hr = pPin->QueryInterface(IID_PPV_ARGS(&pKs));
    if (FAILED(hr))
    {
        return hr;
    }

    // Try to retrieve the pin category.
    DWORD cbReturned = 0;
    hr = pKs->Get(AMPROPSETID_Pin, AMPROPERTY_PIN_CATEGORY, NULL, 0, 
        pPinCategory, sizeof(GUID), &cbReturned);
    
    // If this succeeded, pPinCategory now contains the category GUID.

    SafeRelease(&pKs);
    return hr;
}

Требования

Требование Значение
Минимальная версия клиента
Windows 2000 Professional [только классические приложения]
Минимальная версия сервера
Windows 2000 Server [только классические приложения]
Заголовок
Ksproxy.h
Библиотека
Strmiids.lib

См. также раздел

Коды ошибок и успешного выполнения

Интерфейс IKsPropertySet

Наборы свойств