Uso dei dispositivi portatili
[La funzionalità associata a questa pagina, Lettore multimediale Windows SDK, è una funzionalità legacy. È stato sostituito da MediaPlayer. MediaPlayer è stato ottimizzato per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi MediaPlayer invece di Lettore multimediale Windows SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.
Questa sezione descrive come usare un controllo ActiveX remoto Lettore multimediale Windows per usare i dispositivi portatili.
Gli esempi di codice in questa sezione usano classi ATL (Active Template Library), ad esempio CComPtr.
Intestazioni incluse
Per usare il codice in questa sezione, includere le intestazioni seguenti:
#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <commctrl.h>
#include "wmp.h"
#include "wmpids.h"
Puntatore IWMPPlayer
Il puntatore IWMPPlayer viene archiviato in una variabile membro.
CComPtr<IWMPPlayer> m_spPlayer;
I dispositivi vengono archiviati in una matrice
Il codice di esempio accede alla variabile membro seguente, da dichiarare nell'intestazione del progetto:
IWMPSyncDevice **m_ppWMPDevices; // Points to the custom device array.
Il numero di dispositivi viene archiviato in una variabile membro.
int m_cDevices; // Count of devices.
Recupero di un puntatore del dispositivo
Un puntatore a un particolare dispositivo viene recuperato tramite il relativo indice di matrice usando codice simile al seguente:
CComPtr<IWMPSyncDevice> spSyncDevice(m_ppWMPDevices[lIndex]);
Si noti che l'indice illustrato negli esempi precedenti non è l'indice di partnership per il dispositivo. È l'indice del dispositivo nella matrice personalizzata di dispositivi.
Pulizia
Negli esempi viene usata la funzione seguente per liberare la memoria nella matrice di dispositivi e rilasciare i puntatori all'interfaccia:
void CMainDlg::FreeDeviceArray()
{
if(m_ppWMPDevices)
{
for(long i = 0; i < m_cDevices; i++)
{
m_ppWMPDevices[i]->Release();
}
delete[] m_ppWMPDevices;
m_ppWMPDevices = NULL;
}
}
I dispositivi vengono visualizzati in una casella di riepilogo
La funzione GetSelectedDeviceIndex restituisce l'indice del dispositivo selezionato dall'utente in una casella di riepilogo usando il codice seguente:
long CMainDlg::GetSelectedDeviceIndex()
{
return (long)SendMessage(GetDlgItem(IDC_DEVICES), LB_GETCURSEL, 0, 0);
}
Lo stato dell'interfaccia utente è gestito da una singola funzione
La funzione SetUIState gestisce l'interfaccia utente.
SetUIState(UIState
NewState, BOOL
bConnected)
I dettagli di questa funzione non sono rilevanti per le discussioni in questa sezione, ma tenere presente che questa funzione esegue attività come l'abilitazione o la disabilitazione dei controlli e la modifica del testo visualizzato nell'interfaccia utente.
L'enumerazione UIState è stata definita come segue:
enum UIState
{
Partnership,
NoPartnership,
Synchronizing
};
Il parametro bConnected specifica se configurare l'interfaccia utente per un dispositivo connesso (TRUE indica che il dispositivo è connesso). I parametri NewState e bConnected forniscono le informazioni necessarie per eseguire il lavoro della funzione.
Le sezioni seguenti forniscono spiegazioni del codice di esempio:
- Enumerazione dei dispositivi
- Recupero degli attributi del dispositivo
- Visualizzazione dello stato di sincronizzazione
- Gestione delle playlist di sincronizzazione
Argomenti correlati
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per