WMPSDKを使用してWindowsMediaPlayerを制御しています。最初にWindowsMediaPlayerプラグインウィザードを使用して新しいプロジェクトを作成し、次に名前付きパイプを使用してアプリケーションと通信するコードを追加しました。たとえば、アプリケーションで音楽をミュートする必要がある場合、WMPプラグインにメッセージを送信してから、プラグインで音楽をミュートします。
CComPtr<IWMPSettings> settings;
if (SUCCEEDED(core_->get_settings(&settings)))
{
settings->put_mute(VARIANT_TRUE);
}
それは機能し、コマンドを送信すると実行されますが、UIは更新されません。したがって、たとえば、ミュートコマンドを送信すると、音楽はミュートされます(音が出ません)が、ミュートボタンは音楽がミュートされていないかのように表示されます。これを証明するために、この時点でスキンを変更するか、別の曲にスキップすると、UIが更新され、ミュート状態が正しく表示されます。クリックするとミュートが解除され、ミュートされていない状態(現在は正しい状態)が再び表示されます。
たとえば、UIを強制的に更新する方法や、その他の回避策はありますか?