Connmgrwrapper - utiliser le gestionnaire de connection de wm

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

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.