Compartir a través de


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

Establece el recurso de icono para la sesión de audio. El control de volumen de Windows muestra este icono.

Sintaxis

HRESULT SetIconPath(
  [in] LPCWSTR pszPath
);

Parámetros

[in] pszPath

Cadena de caracteres anchos que especifica el icono. Vea la sección Comentarios.

Valor devuelto

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

La ruta de acceso del icono tiene el formato "path, index" o "path,-id", donde path es la ruta de acceso completa a un archivo DLL, archivo ejecutable o archivo de icono; index es el índice de base cero del icono dentro del archivo; y id es un identificador de recurso. Tenga en cuenta que los identificadores de recursos van precedidos de un signo menos (-) para distinguirlos de los índices. La ruta de acceso puede contener variables de entorno, como "%windir%". Para obtener más información, vea IAudioSessionControl::SetIconPath en Windows SDK.

Ejemplos

En el ejemplo siguiente se establece el icono con un identificador de recurso para un icono en el archivo ejecutable de la aplicación.

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

Requisitos

   
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado mfidl.h
Library Mfuuid.lib

Consulte también

IMFAudioPolicy

Representador de audio de streaming