Utilisation d’appareils mobiles

cette section décrit comment utiliser un contrôle de ActiveX Lecteur Windows Media à distance pour travailler avec des appareils mobiles.

Les exemples de code de cette section utilisent des classes Active Template Library (ATL), telles que CComPtr.

En-têtes inclus

Pour utiliser le code de cette section, incluez les en-têtes suivants :

#include <atlbase.h>
#include <atlcom.h>
#include <atlwin.h>
#include <commctrl.h>
#include "wmp.h"
#include "wmpids.h"

Pointeur IWMPPlayer

Le pointeur IWMPPlayer est stocké dans une variable membre.

CComPtr<IWMPPlayer> m_spPlayer;

Les appareils sont stockés dans un tableau

L’exemple de code accède à la variable de membre suivante, qui doit être déclarée dans l’en-tête du projet :

IWMPSyncDevice **m_ppWMPDevices; // Points to the custom device array.

Le nombre de périphériques est stocké dans une variable membre.

int m_cDevices; // Count of devices.

Récupération d’un pointeur d’appareil

Un pointeur vers un appareil particulier est récupéré via son index de tableau à l’aide d’un code similaire à ce qui suit :

CComPtr<IWMPSyncDevice> spSyncDevice(m_ppWMPDevices[lIndex]);

Notez que l’index présenté dans les exemples précédents n’est pas l’index de partenariat pour l’appareil. Il s’agit de l’index de l’appareil dans le tableau personnalisé des appareils.

Nettoyage

Les exemples utilisent la fonction suivante pour libérer la mémoire dans le tableau de périphériques et pour libérer les pointeurs d’interface :

void CMainDlg::FreeDeviceArray()
{
    if(m_ppWMPDevices)
    {
        for(long i = 0; i < m_cDevices; i++)
        {
            m_ppWMPDevices[i]->Release();
        }
 
        delete[] m_ppWMPDevices;
        m_ppWMPDevices = NULL;        
    }
}

Les appareils s’affichent dans une zone de liste

La fonction GetSelectedDeviceIndex retourne l’index de l’appareil que l’utilisateur a sélectionné dans une zone de liste à l’aide du code suivant :

long CMainDlg::GetSelectedDeviceIndex()
{
    return (long)SendMessage(GetDlgItem(IDC_DEVICES), LB_GETCURSEL, 0, 0);
}

L’état de l’interface utilisateur est géré par une seule fonction

La fonction SetUIState gère l’interface utilisateur.

SetUIState(UIState 
NewState, BOOL 
bConnected)

Les détails de cette fonction ne sont pas pertinents pour les discussions de cette section, mais n’oubliez pas que cette fonction effectue des tâches telles que l’activation ou la désactivation de contrôles et la modification du texte affiché dans l’interface utilisateur.

L’énumération UIState a été définie comme suit :

enum UIState
{
    Partnership,
    NoPartnership,
    Synchronizing
};

Le paramètre bconnected spécifie s’il faut configurer l’interface utilisateur pour un appareil connecté (true signifie que l’appareil est connecté). Les paramètres NewState et bconnected fournissent les informations nécessaires à la fonction pour effectuer son travail.

Les sections suivantes fournissent des explications sur l’exemple de code :

Guide de contrôle du lecteur