Метод 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 |
См. также раздел
Обнаружение возможностей формата устройства