Windows Media Playerを制御するのにWMP SDKを使用しています。最初にWindows Media Playerプラグインウィザードを使用して新しいプロジェクトを作成し、名前付きパイプを使用してアプリケーションと通信するコードを追加しました。私のアプリケーションをミュートするために音楽を必要とする場合、例えば、それはWMPプラグインにメッセージを送信した後、プラグインは、音楽をミュート:WMP SDKでコマンドを送信するときにWindows Media Player UIが更新されない
CComPtr<IWMPSettings> settings;
if (SUCCEEDED(core_->get_settings(&settings)))
{
settings->put_mute(VARIANT_TRUE);
}
それが動作する、と私はコマンドを送信するとき、彼らは実行されますが、 UIが更新されません。たとえば、ミュートコマンドを送信した場合、音楽はミュート(音が出ない)になりますが、音楽がミュートされていないかのようにミュートボタンが表示されます。これを証明するために、この時点でスキンを変更したり、別の曲にスキップしたりすることができます。UIが更新され、ミュート状態が正しく表示されます。私がそれをクリックすると、ミュート解除され、ミュートされていないステートが表示されます(これは正しいステートになります)。
したがって、強制的にUIを強制的に更新する方法はありますか、またはその他の回避策ですか?
ここではC#とC++のコードをマージしたようです。また、 'new WindowInteropHelper(this).Handle'という式がWMPウィンドウのハンドルに解決される方法もわかりません。 – kolufild