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

El método GetFormatSupport recupera todos los formatos admitidos por el dispositivo, incluidos los códecs y los formatos de archivo.

Sintaxis

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

Parámetros

[out] ppFormatEx

Puntero a una matriz de _WAVEFORMATEX estructuras que especifican información sobre códecs y velocidades de bits compatibles con el dispositivo. Windows Media Administrador de dispositivos asigna la memoria para este parámetro; el autor de la llamada debe liberarla mediante CoTaskMemFree.

[out] pnFormatCount

Puntero al número de elementos de la matriz ppFormatEx .

[out] pppwszMimeType

Puntero a una matriz que describe los formatos de archivo y los esquemas de administración de derechos digitales admitidos por el dispositivo. Windows Media Administrador de dispositivos asigna la memoria para este parámetro; el autor de la llamada debe liberarla mediante CoTaskMemFree.

[out] pnMimeTypeCount

Puntero al número de elementos de la matriz pppwszMimeType .

Valor devuelto

El método devuelve un valor HRESULT. Todos los métodos de interfaz de Windows Media Administrador de dispositivos pueden devolver cualquiera de las siguientes clases de códigos de error:

  • Códigos de error COM estándar
  • Códigos de error de Windows convertidos en valores HRESULT
  • Códigos de error de windows Media Administrador de dispositivos
Para obtener una lista extensa de posibles códigos de error, consulte Códigos de error.

Comentarios

La manera recomendada de recuperar formatos compatibles con dispositivos es IWMDMDevice3::GetFormatCapability.

Ejemplos

La siguiente función de C++ recupera varias funcionalidades del 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 Value
Plataforma de destino Windows
Encabezado mswmdm.h
Library Mssachlp.lib

Consulte también

Detección de funcionalidades de formato de dispositivo

IWMDMDevice (Interfaz)

IWMDMDevice3::GetFormatCapability

_WAVEFORMATEX