ポータブル デバイスの操作
[このページWindows メディア プレーヤー SDK に関連付けられている機能は、レガシ機能です。 MediaPlayer に置き換わりました。 MediaPlayer は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能な場合は SDK ではなく MediaPlayerWindows メディア プレーヤー使用することを強くお勧めします。 Microsoft は、従来の API を使用する既存のコードを、可能であれば新しい API を使用するように書き直すよう提案しています。]
このセクションでは、リモート Windows メディア プレーヤー ActiveX コントロールを使用してポータブル デバイスを操作する方法について説明します。
このセクションのコード例では、 CComPtr などの Active Template Library (ATL) クラスを使用します。
含まれるヘッダー
このセクションのコードを使用するには、次のヘッダーを含めます。
#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <commctrl.h>
#include "wmp.h"
#include "wmpids.h"
IWMPPlayer ポインター
IWMPPlayer ポインターはメンバー変数に格納されます。
CComPtr<IWMPPlayer> m_spPlayer;
デバイスが配列に格納される
このコード例では、次のメンバー変数にアクセスして、プロジェクト ヘッダーで宣言します。
IWMPSyncDevice **m_ppWMPDevices; // Points to the custom device array.
デバイス数はメンバー変数に格納されます。
int m_cDevices; // Count of devices.
デバイス ポインターの取得
特定のデバイスへのポインターは、次のようなコードを使用して、配列インデックスを介して取得されます。
CComPtr<IWMPSyncDevice> spSyncDevice(m_ppWMPDevices[lIndex]);
前の例で示したインデックスは、デバイスのパートナーシップ インデックスではないことに注意してください。 これは、デバイスのカスタム配列内のデバイスのインデックスです。
クリーンアップ
この例では、次の関数を使用して、デバイス配列内のメモリを解放し、インターフェイス ポインターを解放します。
void CMainDlg::FreeDeviceArray()
{
if(m_ppWMPDevices)
{
for(long i = 0; i < m_cDevices; i++)
{
m_ppWMPDevices[i]->Release();
}
delete[] m_ppWMPDevices;
m_ppWMPDevices = NULL;
}
}
デバイスがリスト ボックスに表示される
GetSelectedDeviceIndex 関数は、次のコードを使用して、ユーザーがリスト ボックスで選択したデバイスのインデックスを返します。
long CMainDlg::GetSelectedDeviceIndex()
{
return (long)SendMessage(GetDlgItem(IDC_DEVICES), LB_GETCURSEL, 0, 0);
}
ユーザー インターフェイスの状態は 1 つの関数によって管理されます
SetUIState 関数は、ユーザー インターフェイスを管理します。
SetUIState(UIState
NewState, BOOL
bConnected)
この関数の詳細は、このセクションの説明には関係ありませんが、この関数は、コントロールの有効化や無効化、ユーザー インターフェイスでの表示テキストの変更などのタスクを実行することに注意してください。
UIState 列挙体は次のように定義されました。
enum UIState
{
Partnership,
NoPartnership,
Synchronizing
};
bConnected パラメーターは、接続されているデバイスのユーザー インターフェイスを構成するかどうかを指定します (TRUE は、デバイスが接続されていることを意味します)。 NewState パラメーターと bConnected パラメーターは、関数の処理に必要な情報を伝えます。
次のセクションでは、コード例の説明を示します。
関連トピック
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示