[win32/stl] client msn messenger (sans mfc, qt, ...) [unicode/ansi]

Description

Bonjour à tous.

(MAJ 29/10/08) :
- Interface skinnée pour la fenetre principale ainsi que celle de discution (cf. Screenshot)
- Ajout d'une animation dans un thread séparé lors de la connexion au serveur
- Ajout d'une richeditbox pour les discussions avec affichage des emoticons (insert bitmap) + gestion des polices d'écritures (font couleur grand et italique)
- 16 emoticons incluses
- Possibilité de choisir sa police d'écriture (font, gras, italique et couleur).
- ...

(MAJ 20/10/08) :
- Ajout du projet pour Dev Cpp (Compile en ANSI mais pas en UNICODE, minigw ne connais pas wstringstream)
- Click droit sur un contact donne les numéros de téléphone + des statuts à propos des listes (forward, blocked, reverse list)
- Ajout d'une progressbar lors de la connexion

Il y a environ 3 ans j'avais déposé ici même un client msn super mal codé et avec les MFC (pas bien !).

Bref j'ai recréer un client msn messenger en Win32/stl sans autre librairies.
Le projet à été compilé avec VS 2005 sous XP. Il peux être compilé en UNICODE ou ANSI (les 2 exe sont inclus).
Il ne nécessite pas de dll supplémentaires pour fonctionner sur un système sans outils de développement (c'était le but recherché de pouvoir fonctionner sans installer le VC runtime)

Ce qu'on peux apprendre :
- Encapsulation de fenêtres dans des classes (CreateDialog)
- Requête SSL et récupération des headers de retour avec Wininet
- Stockage d'adresse d'objets dans une listbox pour y accéder directement après (comme en C#)
- Classe héritée (CMyMsnHandler et CMyMsnMessaging héritent de CMySocketHandler)
- Utilisation de Macros pour lancer des fonctions avec nombre d'args inconnu (... et VA_ARGS)
- compilation en UNICODE ou ANSI (conversion de certaines fonctions)
- Synchronisation de Thread (pour la reception de data via sockets)

après ce n'est que de l'implémentation de protocole ... -> http://www.hypothetic.org/docs/msn/

Ce projet est une bonne base pour faire évoluer le protocole pour un échange de donnée personnalisé. Par exemple : chat sécurisé, ... (il est possible de définir des protocoles de communications -> voir http://www.hypothetic.org/docs/msn/client/messages.php en bas de page)

Améliorations possibles :
- Ajout de smileys dans les discutions
- Conversion de tous les caractères accentuées pour les pseudos et chats (voir Utils::replaceEmphasis)
- Ajouter un thread lors de la connexion pour indiquer l'avancement à l'utilisateur.
- Faire des fenêtres sans bordures et personnalisées
- ...

Je suis ouvert à toutes les suggestions/améliorations possible.

Je pense que ce projet doit être compilable sous devcpp ou C::B car win32 natif et stl inclus avec ces outils de developpement (je pense ?)

Il semblerait que sur Vista le programme ne se lance pas :( j'ai pas Vista pour tester.

Je n'arrive pas a activer les styles XP (peut-être car les DLL sont compilées en statiques (MULTITHREAD au lieu de MULTITHREAD DLL pour s'affranchir de VCREDIST) ?

PS 1 :
Dans la classe CMySocket il y a des fonctions qui permettent de recevoir des données avec un timeout mais pas utilisé dans ce projet et c'est pas très *beau* car c'est création de thread + kill de thread -> j'ai changé de méthodes mais laissé les sources si des personnes en ont besoin ...

Source / Exemple :


tout est dans le zip

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.