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


Метод 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

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

Перечисление устройств

Интерфейс IWMDMDevice3

IWMDMDevice3::SetProperty

IWMDMStorage3::GetMetadata

IWMDMStorage4::GetSpecifiedMetadata

Настройка метаданных для файла