Метод IWMDMDevice3::GetProperty (mswmdm.h)
Метод GetProperty извлекает определенное свойство метаданных устройства.
Синтаксис
HRESULT GetProperty(
[in] LPCWSTR pwszPropName,
[out] PROPVARIANT *pValue
);
Параметры
[in] pwszPropName
Широкое символьное строковое имя извлекаемого свойства, заканчивающегося null. Список стандартных констант имен свойств приведен в разделе Константы метаданных.
[out] pValue
Возвращенное значение для свойства . Приложение должно освободить эту память с помощью PropVariantClear.
Возвращаемое значение
Метод возвращает HRESULT. Все методы интерфейса в Windows Media диспетчер устройств могут возвращать любой из следующих классов кодов ошибок:
- Стандартные коды ошибок COM
- Коды ошибок Windows, преобразованные в значения HRESULT
- Коды ошибок диспетчер устройств Windows Media
Комментарии
Чтобы получить список поддерживаемых свойств устройства, клиент вызывает эту функцию и указывает g_wszWMDMSupportedDeviceProperties. Список стандартных имен свойств устройств см. в разделе Константы метаданных.
Клиент должен передать указатель на пустой PROPVARIANT в параметре pValue . При возврате значение pValue будет содержать значение свойства .
Этот метод аналогичен методам GetMetadata и GetSpecifiedMetadata для хранилищ, но он может получить только одно свойство за раз.
Примеры
Следующий код C++ запрашивает свойство g_wszWMDMFormatsSupported, которое возвращает список SAFEARRAY форматов, поддерживаемых устройством.
// Query a device for supported configurations for each media or format type.
HRESULT GetCaps(IWMDMDevice3* pDevice)
{
HRESULT hr = S_OK;
// Request the "formats supported" property to get a list of supported formats.
PROPVARIANT pvFormatsSupported;
PropVariantInit(&pvFormatsSupported);
hr = pDevice->GetProperty(g_wszWMDMFormatsSupported, &pvFormatsSupported);
HANDLE_HR(hr, "Got a property list in GetCaps", "Couldn't get a property list in GetCaps.");
// Loop through the retrieved format list.
// For each format, get a list of format configurations.
SAFEARRAY* formatList = pvFormatsSupported.parray;
WMDM_FORMATCODE formatCode = WMDM_FORMATCODE_NOTUSED;
for(LONG iCap = 0; iCap < formatList->rgsabound[0].cElements; iCap++)
{
// Get a format from the SAFEARRAY of retrieved formats.
SafeArrayGetElement(formatList, &iCap, &formatCode);
// Call a custom function to see the specifics of device support for
// each format.
if (formatCode != WMDM_FORMATCODE_NOTUSED)
myGetFormatCaps(formatCode, pDevice);
}
e_Exit:
// Clear out the memory we used.
PropVariantClear(&pvFormatsSupported);
return hr;
}
Требования
Требование | Значение |
---|---|
Целевая платформа | Windows |
Header | mswmdm.h |
Библиотека | Mssachlp.lib |