Partager via


IWMDMDevice ::GetFormatSupport, méthode (mswmdm.h)

La méthode GetFormatSupport récupère tous les formats pris en charge par l’appareil, y compris les codecs et les formats de fichiers.

Syntaxe

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

Paramètres

[out] ppFormatEx

Pointeur vers un tableau de structures _WAVEFORMATEX spécifiant des informations sur les codecs et les débits binaires pris en charge par l’appareil. Windows Media Gestionnaire de périphériques alloue la mémoire pour ce paramètre ; l’appelant doit la libérer à l’aide de CoTaskMemFree.

[out] pnFormatCount

Pointeur vers le nombre d’éléments dans le tableau ppFormatEx .

[out] pppwszMimeType

Pointeur vers un tableau décrivant les formats de fichiers et les schémas de gestion des droits numériques pris en charge par l’appareil. Windows Media Gestionnaire de périphériques alloue la mémoire pour ce paramètre ; l’appelant doit la libérer à l’aide de CoTaskMemFree.

[out] pnMimeTypeCount

Pointeur vers le nombre d’éléments dans le tableau pppwszMimeType .

Valeur retournée

Cette méthode retourne un code HRESULT. Toutes les méthodes d’interface dans Windows Media Gestionnaire de périphériques peuvent retourner l’une des classes de codes d’erreur suivantes :

  • Codes d’erreur COM standard
  • Codes d’erreur Windows convertis en valeurs HRESULT
  • Codes d’erreur Gestionnaire de périphériques Windows Media
Pour obtenir une liste complète des codes d’erreur possibles, consultez Codes d’erreur.

Remarques

La méthode recommandée pour récupérer les formats pris en charge par l’appareil est IWMDMDevice3 ::GetFormatCapability.

Exemples

La fonction C++ suivante récupère différentes fonctionnalités d’appareil.


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

}

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête mswmdm.h
Bibliothèque Mssachlp.lib

Voir aussi

Découverte des fonctionnalités de format d’appareil

IWMDMDevice Interface

IWMDMDevice3 ::GetFormatCapability

_WAVEFORMATEX