Gestion des playlists de synchronisation

[La fonctionnalité associée à cette page, Lecteur multimédia Windows SDK, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer. MediaPlayer a été optimisé pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer au lieu de Lecteur multimédia Windows SDK, lorsque cela est possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

Lecteur multimédia Windows 10 ou version ultérieure utilise des playlists pour synchroniser des fichiers multimédias numériques avec des appareils portables. Cette section explique comment utiliser des playlists de synchronisation.

L’exemple de code de cette section utilise deux contrôles ListView pour afficher des informations. Le premier contrôle ListView (IDC_PLVIEW) affiche toutes les playlists de la bibliothèque Lecteur multimédia Windows, avec les playlists de synchronisation qui apparaissent en premier. Les playlists de synchronisation pour l’appareil actuellement sélectionné sont marquées d’une marque case activée et sont triées dans l’ordre de priorité de synchronisation. Toutes les autres playlists sont décochées. Le contrôle ListView a été configuré pour une sélection unique. L’ordre des playlists dans le contrôle ListView détermine leur priorité de synchronisation. L’état vérifié d’une sélection individuelle détermine s’il s’agit d’une playlist de synchronisation pour l’appareil actuellement sélectionné.

Le deuxième contrôle ListView (IDC_MEDIAVIEW) affiche les éléments multimédias dans la playlist sélectionnée. Deux colonnes supplémentaires affichent du texte indiquant si le fichier multimédia numérique a été copié sur l’appareil et, en cas de défaillance, si la copie a échoué parce que le fichier multimédia numérique n’était pas adapté.

L’exemple de code suivant montre comment les contrôles ListView sont initialisés :

STDMETHODIMP CSyncSettings::InitListView()
{
    m_hPlView = GetDlgItem(IDC_PLVIEW);
    m_hMediaView = GetDlgItem(IDC_MEDIAVIEW); 

    ATLASSERT(m_hPlView);
    ATLASSERT(m_hMediaView);

    // Sync playlist information.
    // Selection highlights all rows.
    // Show checkboxes.
    ListView_SetExtendedListViewStyleEx(m_hPlView, 0, LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
   
    // Add headers.
    LVCOLUMN lvc;
    ZeroMemory(&lvc, sizeof(LVCOLUMN));
    lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; 
    lvc.iSubItem = 0;
    
    lvc.pszText = _T("Sync");
    lvc.cx = 40;
    ListView_InsertColumn(m_hPlView, lvc.iSubItem, &lvc);

    lvc.iSubItem++;
    lvc.pszText = _T("Playlist Name");
    lvc.cx = 300;
    ListView_InsertColumn(m_hPlView, lvc.iSubItem, &lvc); 

    // Media information.
    // Selection highlights all rows.
    ListView_SetExtendedListViewStyleEx(m_hMediaView, 0, LVS_EX_FULLROWSELECT);

    // Add headers
    ZeroMemory(&lvc, sizeof(LVCOLUMN));
    lvc.mask = LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM; 
    lvc.iSubItem = 0;
    
    lvc.pszText = _T("Media name");
    lvc.cx = 150;
    ListView_InsertColumn(m_hMediaView, lvc.iSubItem, &lvc);

    lvc.iSubItem++;
    lvc.pszText = _T("On Device");
    lvc.cx = 69;
    ListView_InsertColumn(m_hMediaView, lvc.iSubItem, &lvc);  

    lvc.iSubItem++;
    lvc.pszText = _T("Fit?");
    lvc.cx = 40;
    ListView_InsertColumn(m_hMediaView, lvc.iSubItem, &lvc);  
   
    return S_OK;
}

Le tableau de chaînes suivant contient les noms des attributs de synchronisation utilisés dans les exemples :

static const TCHAR *g_szSyncAttributeNames[17] = {
        _T("Not used"), // Do not access this one.
        _T("Sync01"),
        _T("Sync02"),
        _T("Sync03"),
        _T("Sync04"),
        _T("Sync05"),
        _T("Sync06"),
        _T("Sync07"),
        _T("Sync08"),
        _T("Sync09"),
        _T("Sync10"),
        _T("Sync11"),
        _T("Sync12"),
        _T("Sync13"),
        _T("Sync14"),
        _T("Sync15"),
        _T("Sync16")};

La variable membre suivante contient une playlist contenant toutes les playlists de la bibliothèque Lecteur multimédia Windows. Chaque playlist est représentée sous la forme d’un élément multimédia.

CComPtr<IWMPPlaylist> m_spPlaylist;

Les sections suivantes fournissent un exemple de code :

Utilisation d’appareils portables