Я пытаюсь использовать Windows Audio Session API, чтобы найти аудио сеанс по умолчанию в перечислении текущих аудио сеансов. В настоящее время у меня есть ссылка на IAudioSessionControl
сеанса по умолчанию конечной точки рендеринга аудио в роли eConsole
, а также IAudioSessionEnumerator
объект, который перечисляет аудиосеансы этой конечной точки по умолчанию, но мне нужно иметь возможность сравнить имеющийся у меня объект IAudioSessionControl
на равенство с объектами IAudioSessionControl
, возвращаемыми IAudioSessionEnumerator::GetSession
.
Я надеялся, что смогу проверить на равенство, сравнив указатели IAudioSessionControl
на равенство. Это работает, когда я получаю IAudioSessionControl
для сеанса по умолчанию несколько раз, используя IAudioClient::GetService
. К сожалению, этот указатель, возвращаемый IAudioClient::GetService
, не отображается при перечислении аудио сеансов IAudioSessionEnumerator
. Кроме того, получение аудиосеанса по умолчанию несколько раз по маршруту IAudioSessionManager::GetAudioSessionControl
не приводит к идентичным указателям IAudioSessionControl
даже при использовании одного GUID аудиосеанса (GUID_NULL
) и значения CrossProcessSession
.
Как проверить на равенство аудио сессий, используя два IAudioSessionControl
указателя? Можно ли получить GUID аудиосеанса и идентификатор процесса для данного IAudioSessionControl
объекта?