Connmgrwrapper - utiliser le gestionnaire de connection de wm

Soyez le premier à donner votre avis sur cette source.

Vue 9 501 fois - Téléchargée 550 fois

Description

Bon cette source casse pas trois pattes à un canard mais comme je démarre timidement dans l'univers Windows Mobile et n'ayant rien trouvé du côté du Compact Framework 3.5 pour ouvrir une connexion je propose ce petit wrapper du gestionnaire de connection de Windows Mobile.

Cette source a été faite avec le SDK de la version 6.5 de WM.

Source / Exemple :


public class ConnMgrWrapper
{
    const int S_OK = 0;

    Guid _networkGuid = Guid.Empty;
    IntPtr _connection = IntPtr.Zero;
    CONNMGR_STATUS _status = 0;
    CONNMGR_PRIORITY _priority = 0;

    public int Timeout { get; set; }

    public CONNMGR_STATUS Status
    {
        get
        {
            if (_connection != IntPtr.Zero)
                NativeMethods.ConnMgrConnectionStatus(_connection, ref _status);
            else
                _status = CONNMGR_STATUS.UNKNOWN;

            return _status;
        }
    }

    public CONNMGR_PRIORITY Priority
    {
        get { return _priority; }
        set
        {
            if (_connection != IntPtr.Zero)
                NativeMethods.ConnMgrSetConnectionPriority(_connection, _priority);
        }
    }

    public CONNMGR_DESTINATION_INFO[] GetAvailableNetworks()
    {
        List<CONNMGR_DESTINATION_INFO> infos = new List<CONNMGR_DESTINATION_INFO>();
        CONNMGR_DESTINATION_INFO info = new CONNMGR_DESTINATION_INFO();
        int i = 0;

        while (NativeMethods.ConnMgrEnumDestinations(i, ref info) == S_OK)
        {
            infos.Add(info);
            i++;
        }

        return infos.ToArray();
    }

    public void EtablishConnection(string url)
    {
        this.EtablishConnection(url, CONNMGR_PRIORITY.HIPRIBKGND);
    }

    public void EtablishConnection(string url, CONNMGR_PRIORITY priority)
    {
        _priority = priority;

        NativeMethods.ConnMgrMapURL(url, ref _networkGuid, 0);

        CONNMGR_CONNECTIONINFO info = new CONNMGR_CONNECTIONINFO(_networkGuid, _priority);
        NativeMethods.ConnMgrEstablishConnectionSync(info, ref _connection, Timeout, ref _status);
    }

    public void ReleaseConnection()
    {
        if (_status == CONNMGR_STATUS.CONNECTED)
            NativeMethods.ConnMgrReleaseConnection(_connection, 1);
    }
}

Conclusion :


Critiques, notes....je suis à l'écoute !!
Bon dev.

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Exemple:

ConnMgrWrapper comMgr = new ConnMgrWrapper();

//Ouvre une connection vers cette url.
conMgr.EtablishConnection("http://www.pdafr.com");
//Si connecté...faire ce que vous voulez...
if(conMgr.Status == CONMGR_STATUS.CONNECTED)
{
//Exemple de lecture du flux rss du site.
XmlDocument xmlDoc = new XmlDocument();
xmdDoc.Load("http://www.pdafr.com/rss.aspx");
//.........
}
//Libérer la connection
conMgr.ReleaseConnection();
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Oups désolé messieurs j'ai effectivement oublié quelque chose !
Je rajoute cela très rapidement.
Messages postés
13
Date d'inscription
mercredi 13 septembre 2006
Statut
Membre
Dernière intervention
17 juin 2008

je suis un débutant sur wm je veux savoir comment compiler et utiliser ton code
merci
Messages postés
45
Date d'inscription
dimanche 29 mai 2005
Statut
Membre
Dernière intervention
3 mai 2010

ton code ma l'ère intéressant mais comment faire pour l'essayer ?
tu fournit juste la classe il n'y a rien dans la form meme pas un bouton connecter deconnecter
comment on l'utilise?
merci

ps sinon la qualité du code ma l'ère très bonne

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.