Я использую WMP SDK для управления проигрывателем Windows Media. Сначала я создал новый проект с помощью мастера подключаемых модулей Windows Media Player, а затем добавил код, который взаимодействует с моим приложением с помощью именованного канала. Например, когда моему приложению нужно отключить музыку, оно отправляет сообщение в плагин WMP, а затем плагин отключает музыку:
CComPtr<IWMPSettings> settings;
if (SUCCEEDED(core_->get_settings(&settings)))
{
settings->put_mute(VARIANT_TRUE);
}
Это работает, и когда я отправляю команды, они выполняются, но пользовательский интерфейс не обновляется. Так, например, если я отправляю команду отключения звука, музыка отключается (нет звука), но кнопка отключения звука по-прежнему отображается так, как будто музыка не отключена. Чтобы доказать это, я могу изменить скин на этом этапе или перейти к другой песне, и пользовательский интерфейс обновится и правильно покажет состояние отключения звука. Если я щелкну по нему, он включится, а затем снова отобразит включенное состояние (теперь это правильное состояние).
Итак, есть ли способ, например, принудительно обновить пользовательский интерфейс или какой-либо другой обходной путь?