Partager via


Méthode IMFAudioPolicy::SetIconPath (mfidl.h)

Définit la ressource d’icône pour la session audio. Le contrôle de volume Windows affiche cette icône.

Syntaxe

HRESULT SetIconPath(
  [in] LPCWSTR pszPath
);

Paramètres

[in] pszPath

Chaîne à caractères larges qui spécifie l’icône. Consultez la section Notes.

Valeur retournée

Si cette méthode réussit, elle retourne S_OK. Sinon, elle retourne un code d’erreur HRESULT.

Notes

Le chemin d’accès à l’icône a le format « path, index » ou « path,-id », où chemin d’accès est le chemin d’accès complet à une DLL, un fichier exécutable ou un fichier d’icône ; index est l’index de base zéro de l’icône dans le fichier ; et id est un identificateur de ressource. Notez que les identificateurs de ressource sont précédés d’un signe moins (-) pour les distinguer des index. Le chemin d’accès peut contenir des variables d’environnement, telles que « %windir% ». Pour plus d’informations, consultez IAudioSessionControl::SetIconPath dans le Kit de développement logiciel (SDK) Windows.

Exemples

L’exemple suivant définit l’icône à l’aide d’un identificateur de ressource pour une icône dans le fichier exécutable de l’application.

HRESULT SetIcon(IMFMediaSession *pSession, int nID)
{
    IMFAudioPolicy *pPolicy = NULL;

    const DWORD CCH_ICON_PATH = MAX_PATH + 16;
    WCHAR szFileName[MAX_PATH];
    WCHAR szIconPath[CCH_ICON_PATH];

    HRESULT hr = S_OK;

    DWORD result = GetModuleFileNameW(NULL, szFileName, MAX_PATH);

    // Note: GetModuleFileName can return a truncated string without a 
    // NULL terminator. If so, the function succeeds but sets the last 
    // error to ERROR_INSUFFICIENT_BUFFER.
    if ((result == 0) || (GetLastError() ==  ERROR_INSUFFICIENT_BUFFER))
    {
        hr = E_FAIL;
        goto done;
    }

    hr = StringCchPrintfW(szIconPath, CCH_ICON_PATH, 
                 L"%s,-%d", szFileName, nID);

    if (FAILED(hr))
    {
        goto done;
    }

    hr = MFGetService(
        pSession, 
        MR_AUDIO_POLICY_SERVICE, 
        IID_PPV_ARGS(&pPolicy)
        );

    if (FAILED(hr))
    {
        goto done;
    }

    hr = pPolicy->SetIconPath(szIconPath);
    if (FAILED(hr))
    {
        goto done;
    }

done:
    SafeRelease(&pPolicy);
    return hr;
}

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
Plateforme cible Windows
En-tête mfidl.h
Bibliothèque Mfuuid.lib

Voir aussi

IMFAudioPolicy

Convertisseur audio de streaming