Dopo una serie di domande e risposte con Giorgio mi sono messo a scriptare con VS.NET 2005 e Microsoft.Messenger. A dirla tutto ero curioso di capire cosa realmente fosse possibile.. chissà quali operazioni potevo effettuare..insomma.. ero curioso come un bambino che sta per scartare il suo regalo di natale.

Parto quindi a creare un nuovo progetto Library. Trovo ed aggiungo la reference dell'oggetto MessengerClient e mi guardo l Object Browser.

Sorpresa. cinque (5) eventi e 3 Metodi. Basta..
Gli eventi a cui è possibile rispondere sono :

  • IncomingTextMessage
  • OutgoingTextMessage
  • ShowOptionsDialog
  • ShutDown
  • StatusChanged

Quello su cui si può andare a lavorare è indubbiamente IncomingTextMessage. Da questo evento si possono andare a recuperare lo stato dell'utente (busy,away etc etc), il suo nome, il suo indirizzo email ed il suo MSN Unique ID. A parte questo niente altro. L'unica cosa che si può fare con questo wrapperone è la creazione di un bot di servizio. Si certo.. posso collegarmi ai database, ricercare su webservices .. insomma tutte le classiche cose che posso fare con una applicazione .NET.. ma la domanda è.. per andare a lavorare con Messenger devo per forza avere .NET 2.0 installato? Per forza di cose devo avere un framework di 100 e rotti mb? (non consideriamo la redstr). Grazie a Dio NO.

Con C++ e qualunque altro linguaggio unmanaged posso direttamente collegarmi all'assembly di MSN e andare ad utilizzare MOLTE più funzioni di quante non siano disponibili con il wrapperone limitato Microsoft.Messenger, e sopratutto rilasciare il tutto senza decine, se non centinaia di MB di framework.


Non ho nemmeno sprecato tempo a fare il reverse engineering.. non voglio andare a vedere il casino che hanno fatto.

Morale della storia.. se la potevano evitare.

Per ora con .NET non ci resta che mandare i nugdges.

 // Invia il messaggio all'utente che ti ha chiamato
this.messenger.SendTextMessage(string.Format(AlessioResponder.message, this.messenger.LocalUser.FriendlyName), args.UserFrom);

// e tanto per fare qualcosa mandagli un trillo
messenger.SendNudgeMessage(args.UserFrom);

Utilissimo!!