共用方式為


IMFAudioPolicy::SetIconPath 方法 (mfidl.h)

設定音訊會話的圖示資源。 Windows 音量控制項會顯示此圖示。

語法

HRESULT SetIconPath(
  [in] LPCWSTR pszPath
);

參數

[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
程式庫 Mfuuid.lib

另請參閱

IMFAudioPolicy

串流音訊轉譯器