IMFAudioPolicy::SetIconPath メソッド (mfidl.h)
オーディオ セッションのアイコン リソースを設定します。 Windows ボリューム コントロールにこのアイコンが表示されます。
構文
HRESULT SetIconPath(
[in] LPCWSTR pszPath
);
パラメーター
[in] pszPath
アイコンを指定するワイド文字列。 「解説」を参照してください。
戻り値
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
解説
アイコン パスの形式は "path,index" または "path,-id" です。 path は DLL、実行可能ファイル、またはアイコン ファイルへの完全修飾パスです。 index は、ファイル内のアイコンの 0 から始まるインデックスです。と 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 |