Поделиться через


Метод IMFAudioPolicy::SetIconPath (mfidl.h)

Задает ресурс значка для звукового сеанса. Этот значок отображается в элементе управления громкости Windows.

Синтаксис

HRESULT SetIconPath(
  [in] LPCWSTR pszPath
);

Параметры

[in] pszPath

Строка расширенных символов, указывающая значок. См. заметки.

Возвращаемое значение

Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .

Комментарии

Путь к значку имеет формат "path,index" или "path,-id", где path — это полный путь к библиотеке DLL, исполняемому файлу или файлу значка; index — отсчитываемый от нуля индекс значка в файле; и id — это идентификатор ресурса. Обратите внимание, что идентификаторам ресурсов предшествует знак минус (-), чтобы отличить их от индексов. Путь может содержать переменные среды, например "%windir%". Дополнительные сведения см. в разделе IAudioSessionControl::SetIconPath в windows SDK.

Примеры

В следующем примере задается значок, используя идентификатор ресурса для значка в исполняемом файле приложения.

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

Требования

   
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header mfidl.h
Библиотека Mfuuid.lib

См. также раздел

IMFAudioPolicy

Отрисовщик потоковой передачи звука