Compartilhar via


Método IWMDMDevice::GetFormatSupport (mswmdm.h)

O método GetFormatSupport recupera todos os formatos compatíveis com o dispositivo, incluindo codecs e formatos de arquivo.

Sintaxe

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

Parâmetros

[out] ppFormatEx

Ponteiro para uma matriz de estruturas _WAVEFORMATEX especificando informações sobre codecs e taxas de bits compatíveis com o dispositivo. O Windows Media Gerenciador de Dispositivos aloca a memória para esse parâmetro; o chamador deve liberá-lo usando CoTaskMemFree.

[out] pnFormatCount

Ponteiro para o número de elementos na matriz ppFormatEx .

[out] pppwszMimeType

Ponteiro para uma matriz que descreve formatos de arquivo e esquemas de gerenciamento de direitos digitais compatíveis com o dispositivo. O Windows Media Gerenciador de Dispositivos aloca a memória para esse parâmetro; o chamador deve liberá-lo usando CoTaskMemFree.

[out] pnMimeTypeCount

Ponteiro para o número de elementos na matriz pppwszMimeType .

Retornar valor

O método retorna um HRESULT. Todos os métodos de interface no Windows Media Gerenciador de Dispositivos podem retornar qualquer uma das seguintes classes de códigos de erro:

  • Códigos de erro COM padrão
  • Códigos de erro do Windows convertidos em valores HRESULT
  • Códigos de erro do Windows Media Gerenciador de Dispositivos
Para obter uma lista abrangente de possíveis códigos de erro, consulte Códigos de erro.

Comentários

A maneira recomendada de recuperar formatos compatíveis com o dispositivo é IWMDMDevice3::GetFormatCapability.

Exemplos

A função C++ a seguir recupera várias funcionalidades do dispositivo.


// 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;

}

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho mswmdm.h
Biblioteca Mssachlp.lib

Confira também

Descobrindo funcionalidades de formato de dispositivo

IWMDMDevice Interface

IWMDMDevice3::GetFormatCapability

_WAVEFORMATEX