Share via


Metodo IMFAudioPolicy::SetIconPath (mfidl.h)

Imposta la risorsa icona per la sessione audio. Il controllo volume di Windows visualizza questa icona.

Sintassi

HRESULT SetIconPath(
  [in] LPCWSTR pszPath
);

Parametri

[in] pszPath

Stringa di caratteri wide che specifica l'icona. Vedere la sezione Osservazioni.

Valore restituito

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Il percorso dell'icona ha il formato "path, index" o "path,-id", dove percorso è il percorso completo di un file DLL, eseguibile o icona; indice è l'indice in base zero dell'icona all'interno del file; e id è un identificatore di risorsa. Si noti che gli identificatori di risorsa sono preceduti da un segno meno (-) per distinguerli dagli indici. Il percorso può contenere variabili di ambiente, ad esempio "%windir%". Per altre informazioni, vedere IAudioSessionControl::SetIconPath in Windows SDK.

Esempio

Nell'esempio seguente viene impostata l'icona usando un identificatore di risorsa per un'icona nel file eseguibile dell'applicazione.

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

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione mfidl.h
Libreria Mfuuid.lib

Vedi anche

FMAudioPolicy

Streaming Audio Renderer