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


Метод IWMDMDevice::GetFormatSupport (mswmdm.h)

Метод GetFormatSupport извлекает все форматы, поддерживаемые устройством, включая кодеки и форматы файлов.

Синтаксис

HRESULT GetFormatSupport(
  [out] _WAVEFORMATEX **ppFormatEx,
  [out] UINT          *pnFormatCount,
  [out] LPWSTR        **pppwszMimeType,
  [out] UINT          *pnMimeTypeCount
);

Параметры

[out] ppFormatEx

Указатель на массив _WAVEFORMATEX структур, указывающих сведения о кодеках и скорости битов, поддерживаемых устройством. Windows Media диспетчер устройств выделяет память для этого параметра. Вызывающий объект должен освободить ее с помощью CoTaskMemFree.

[out] pnFormatCount

Указатель на количество элементов в массиве ppFormatEx .

[out] pppwszMimeType

Указатель на массив, описывающий форматы файлов и схемы управления цифровыми правами, поддерживаемые устройством. Windows Media диспетчер устройств выделяет память для этого параметра. Вызывающий объект должен освободить ее с помощью CoTaskMemFree.

[out] pnMimeTypeCount

Указатель на количество элементов в массиве pppwszMimeType .

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

Метод возвращает HRESULT. Все методы интерфейса в Windows Media диспетчер устройств могут возвращать любой из следующих классов кодов ошибок:

  • Стандартные коды ошибок COM
  • Коды ошибок Windows, преобразованные в значения HRESULT
  • Коды ошибок диспетчер устройств Windows Media
Подробный список возможных кодов ошибок см. в разделе Коды ошибок.

Комментарии

Рекомендуемый способ получения форматов, поддерживаемых устройством, — IWMDMDevice3::GetFormatCapability.

Примеры

Следующая функция C++ извлекает различные возможности устройства.


// Function to print out device caps for a device that supports
// only IWMDMDevice.
void GetCaps(IWMDMDevice* pDevice)
{
    HRESULT hr = S_OK;

    // Get all capabilities for audio and mime support.
    _WAVEFORMATEX* pAudioFormats;
    LPWSTR* pMimeFormats;
    UINT numAudioFormats = 0;
    UINT numMimeFormats = 0;
    hr = pDevice->GetFormatSupport(
        &pAudioFormats,
        &numAudioFormats,
        &pMimeFormats,
        &numMimeFormats);

    HANDLE_HR(hr, "Got audio and mime formats in GetCaps IWMDMDevice", "Couldn't get audio and mime formats in GetCaps IWMDMDevice");

    // Print out audio format data.
    if (numAudioFormats > 0)
    {
        / /TODO: Display a banner to precede the supported formats.
    }
    else
    {
        // TODO: Display a message indicating that no formats are supported.
    }
    for(int i = 0; i < numAudioFormats; i++)
    {
        // TODO: Display a configuration value.
        PrintWaveFormatGuid(pAudioFormats[i].wFormatTag);
        // TODO: Display a max channel value.
        // TODO: Display a max samples/second value.
        // TODO: Display the max bytes/second value.
        // TODO: Display the block alignment value.
        // TODo: Display the max bits/sample value.
    }

    // Print out MIME formats.
    if (numMimeFormats > 0)
        // TODO: Display a banner for the MIME format listing.
    else
        / /TODO: Display a message indicating that no MIME formats are supported.
    for(i = 0; i < numMimeFormats; i++)
    {
        // TODO: Display each individual MIME format.
    }

e_Exit:
    return;

}

Требования

Требование Значение
Целевая платформа Windows
Header mswmdm.h
Библиотека Mssachlp.lib

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

Обнаружение возможностей формата устройства

Интерфейс IWMDMDevice

IWMDMDevice3::GetFormatCapability

_WAVEFORMATEX