Share via


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
라이브러리 Mfuuid.lib

참고 항목

IMFAudioPolicy

스트리밍 오디오 렌더러