IMFAudioPolicy::SetIconPath 方法 (mfidl.h)

设置音频会话的图标资源。 Windows 音量控件显示此图标。

语法

HRESULT SetIconPath(
  [in] LPCWSTR pszPath
);

parameters

[in] pszPath

指定图标的宽字符字符串。 请参阅“备注”。

返回值

如果该方法成功,则返回 S_OK。 否则,将返回 HRESULT 错误代码。

注解

图标路径的格式为“path,index”或“path,-id”,其中 path 是 DLL、可执行文件或图标文件的完全限定路径; index 是文件中图标的从零开始的索引;和 id 是资源标识符。 请注意,资源标识符前面有一个减号 ( ) ,用于区分它们与索引。 路径可以包含环境变量,例如“%windir%”。 有关详细信息,请参阅 Windows SDK 中的 IAudioSessionControl::SetIconPath

示例

以下示例使用应用程序可执行文件中的图标的资源标识符设置图标。

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
标头 mfidl.h
Library Mfuuid.lib

另请参阅

IMFAudioPolicy

流式处理音频呈现器