Windows メディア プレーヤー コントロールでのスキンの使用

[このページWindows メディア プレーヤー SDK に関連付けられている機能は、レガシ機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能な場合は SDK ではなく MediaPlayerWindows メディア プレーヤー使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]

Windows メディア プレーヤー コントロールを C++ プログラムに埋め込む場合は、スキン定義ファイルを適用して Player ユーザー インターフェイス (UI) をカスタマイズできます。 スキン定義ファイルは、標準およびカスタマイズ可能な UI コンポーネントとそれに付随するグラフィックスのレイアウトを指定する XML ベースのドキュメントです。 Microsoft JScript を使用すると、これらのコンポーネントの動作を指定し、C++ および COM 構文のオーバーヘッドなしでWindows メディア プレーヤー コントロールを操作できます。

スキンを使用すると、ユーザー インターフェイス コードとメイン プログラム コードを分離して、個別に維持および開発できるようにする簡単な方法が提供されます。 また、もともとスキン モードのスタンドアロン プレーヤーで使用するために設計されたスキンを再利用することもできます。 C++ プログラム専用に設計したスキン コードは、プログラムが提供できるスクリプト可能なオブジェクトを介してプログラムと対話できます。

Windows メディア プレーヤー コントロールのスキン モードを有効にするには、プログラムで IWMPRemoteMediaServices インターフェイスを実装する必要があります。 コントロールとリモート コントロールでスキンを同時に使用できますが、このインターフェイスを使用すると、もう一方を有効にせずにいずれかの機能を有効にすることができます。 リモート処理を無効にするには、 GetServiceType メソッドの out パラメーターとして "Local" の値を渡し、 GetApplicationName メソッドからE_NOTIMPLの HRESULT を返します。

Windows メディア プレーヤー コントロールをスキン モードに切り替えるには、IWMPPlayer::p ut_uiMode メソッドを呼び出し、値 "custom" を渡します。 IWMPRemoteMediaServices::GetCustomUIMode メソッドから取得して、使用するスキン定義ファイルのパスとファイル名を指定します。

スキンとプログラム間の通信用にスクリプト可能なオブジェクトを指定する場合は、IWMPRemoteMediaServices::GetScriptableObject メソッドの 2 つの out パラメーターとして、名前とポインターを IDispatch ポインターに渡します。 その後、スキンは、 プレーヤー のグローバル属性に似たグローバル属性であるかのように指定された名前を使用して、スクリプト可能なオブジェクトを呼び出すことができます。

リモート Windows メディア プレーヤー コントロールに適用されたスキンは、playerApplication という別のグローバル属性を使用して PlayerApplication オブジェクトにアクセスできます。 Player.playerApplication プロパティにはスキンからアクセスできないため、スキン コードでドッキングとドッキング解除を管理するには、このグローバル属性を使用する必要があります。

サンプル

Windows メディア プレーヤー SDK セットアップ パッケージは、Windows メディア プレーヤー コントロールにスキンを適用する方法を示すサンプルをインストールします。 詳細については、RemoteSkin サンプルを参照してください。

サンプル

C++ プログラムでのWindows メディア プレーヤー コントロールの使用