Compartilhar via


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

Define o recurso de ícone para a sessão de áudio. O controle de volume do Windows exibe este ícone.

Sintaxe

HRESULT SetIconPath(
  [in] LPCWSTR pszPath
);

Parâmetros

[in] pszPath

Uma cadeia de caracteres largos que especifica o ícone. Consulte Observações.

Valor retornado

Se o método for bem-sucedido, ele retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.

Comentários

O caminho do ícone tem o formato "path, index" ou "path,-id", em que path é o caminho totalmente qualificado para uma DLL, arquivo executável ou arquivo de ícone; index é o índice baseado em zero do ícone dentro do arquivo; e id é um identificador de recurso. Observe que os identificadores de recurso são precedidos por um sinal de subtração (-) para distingui-los dos índices. O caminho pode conter variáveis de ambiente, como "%windir%". Para obter mais informações, consulte IAudioSessionControl::SetIconPath no SDK do Windows.

Exemplos

O exemplo a seguir define o ícone usando um identificador de recurso para um ícone no arquivo executável do aplicativo.

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 com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho mfidl.h
Biblioteca Mfuuid.lib

Confira também

IMFAudioPolicy

Renderizador de áudio de streaming