Start communicating
MSN
In one word, it is for everybody !!
Recent Village Updates
Login to find out
has added a new journalMSN and Yahoo! Messenger Interoperability
=============================
Yesterday evening both Microsoft and Yahoo announced the beginning of public beta testing for instant messaging interoperability between the 2 IM services forming theworld?s largest consumer IM community ? with 350 million accounts.
To join the beta and start talking to people who use Yahoo! Messenger download: ideas.live.com
Login to find out
has added a new journalLive Messenger officially released
What are add-ins?
An add-in is just a .Net assembly (.dll). Messenger now has support for hosting these plug-ins and we've exposed a new set of APIs to add-ins that allows them extend Messenger functionality.
How are add-ins exposed to end-users?
The local user can specify one of the installed add-ins as their 'Agent'. Once an Agent add-in has been turned on, this add-in's identity overrides the local users' identity. This essentially exposes the add-in to other contacts that have the local user as a buddy, since the add-in's user tile, personal status message, and other similar properties become applied to the local user's properties. The add-in will also be able to send messages to buddies on the local user's behalf.
What can an add-in do?
Currently, an add-in has access to the following APIs:
IncomingTextMessage Event - add-ins can parse the incoming message and send a customized response. They also get to know a bunch of things about the user that sent the message, so they can create customized responses incorporating that information.
OutgoingTextMessage Event - add-ins will have the ability to cancel the outgoing message and send a different message instead.
StatusChanged Event - add-ins will be able to monitor the status of both the local user and buddies.
Send Messages - add-ins can send messages, although this is currently restricted to only allow one sent message per IncomingTextMessage or OutgoingTextMessage event. The following types of messages can be sent:
SendTextMessage
SendNudgeMessage
SendActionMessage - this is a new type of message that is displayed without the 'xxx says:' prepended in the conversation window.
LocalUser property - used to extract information about the local user, such as friendly name, personal message, and status
SavedState property - used to save and load state thru Messenger.
ShowOptionsDialog Event - we want add-ins to be be highly configurable by the end user. Messenger's Options Dialog UI will present a way for end-users to configure each add-in. Add-ins can show their own dialog here and allow end users to customize them.
AddInDetails property - this is used by the add-in to publish it's name, description, user tile, personal status message, etc.
Add-ins run under a sandboxed CAS (code-access-security) environment, which means there's quite a bit add-ins can't do too. We currently run add-ins under the 'Internet' permission set, which means they can't interact with your file system, make registry changes, and are under a bunch of other restrictions as well.
What are some Messenger scenarios that can be accomplished by creating an add-in?
? Personal Assistant
Personal Status Message User Tile is updated to show the current meeting of the local user.
Can interpret incoming messages and send responses to buddies detailing the next time you're free, etc.
Can negotiate between schedules and find a non-conflicting solution.
Answering machine type functionality.
Different responses based on the group of the user sending the incoming message.
? Personal Expression
Slide-show user tile
Interprets outgoing messages and automatically changes personal status message, user tile, etc. based on keywords in the outgoing message.
Sends an 'Action' message to each buddy after first incoming IM from that buddy as a secondary status message.
Monitors conversation and remembers good quotes to use as custom away messages.
Tells jokes or stories, which are chosen or configured by the end-user.
? Entertainment
Bots that provide amusement when there isn't a real person to talk to (or even when there is).
Choose-your-own-adventure stories.
Personal Pet - raise and interact with a pet, play games with it, let it talk to your buddies, etc.
? Utility
Adds functionality to Messenger - blogging, sounds, displays UI notifications, sends email, search, etc.
Monitors incoming messages from a particular user for shortcuts that invoke the functionality
Ring tones
Spying on buddy status (tagging)
Question / Answer Search:
Newsgroup-like interaction thru Messenger
Add-in can ask buddies for the answer if it didn't know and report results back.
Could publish particular 'expertise' of local user or of add-in itself.
Performs more tailored search queries for local user and 'learns' overtime.
Knowledge based AI bots - Dear Abby, Encarta, etc.:
Advantages over server-side-bots include:
Easier to save/load state and maintain history for a given user's past experience
Can display options dialog and allow for end-user customization
Language Translation
Spell checker
I'm pumped and want to start writing an add-in right away.. How do I get started?
To get a build of Messenger that supports add-ins, go here: www.ideas.live.com
Then you'll need to either install the SDK (coming soon), or set the following registry key:
HKEY_CURRENT_USERSoftwareMicrosoftMSNMessengerAddInFeatureEnabled DWORD 1
And finally, you can follow these steps to create your own add-in in C# using Vistual Studio:
Launch VS 2005 and choose File->New Project
Choose a Visual C# Class Library
Name your solution whatever you'd like. I've chosen 'SmartTalker'.
Go to Project->Add Reference
In the dialog that pops up, choose the 'Browse' tab.
Navigate to C:Program FilesMSN Messenger and choose 'MessengerClient.dll'
Add 'using Microsoft.Messenger' statement to your Class1.cs file.
Create a class that inherits from IMessengerAddIn. I've chosen to name the class 'AddIn'.
Navigate to Project->SmartTalker Properties
Modify the assembly name to be the fully qualified name of the class that implements IMessengerAddIn. In my case, I'd change this to 'SmartTalker.AddIn'.
Once you've created your add-in .dll, you can load it into Messenger by going to Tools->Options and selecting the 'Add-in' page.
Finally, you can turn on/off your selected 'Agent' add-in manually via the status menu on Messenger's main window.
Sample code:
using System;
using Microsoft.Messenger;
namespace SmartTalker
{
///
/// NOTE: The acutal .dll name must be 'SmartTalker.AddIn.dll'
/// so Messenger knows how to find my main add-in class (or
/// the class that implements IMessengerAddIn).
///
public class AddIn : IMessengerAddIn
{
MessengerClient m_client;
///
/// Implementation of the one required function from
/// IMessengerAddIn. This will be called when the add-in
/// is loaded by Messenger.
///
void IMessengerAddIn.Initialize(MessengerClient client)
{
m_client = client;
// Set a couple properties for this add-in
m_client.AddInProperties.FriendlyName = "SmartTalker";
m_client.AddInProperties.PersonalStatusMessage =
"Talk to me!";
// Subscribe to the incoming text message event.
m_client.IncomingTextMessage +=
new EventHandler
(this.OnIncomingMessage);
}
///
/// Fires when this add-in is running and turned on, and a
/// buddy sends a message. The add-in will send a simple
/// text response.
///
public void OnIncomingMessage(object sender,
IncomingTextMessageEventArgs args)
{
m_client.SendTextMessage("Hello " +
args.UserFrom.FriendlyName +
". Check back later and maybe I'll say something more interesting.",
args.UserFrom);
}
}
}
source: MSDN Blogs blogs.msdn.com
Disclaimer(s):
This posting is provided "AS IS" with no warranties, and confers no rights.
Login to find out
has added a new journalNext Generation of MSN Messenger. Sharing Folders is probably the most useful feautre allowing people to create shared folders in which they can send and store things to be shared with other contacts.
Details on the release: news.com.com
Download: get.live.com
Login to find out
has added a new journalWell, with the grace of Almighty Allah most of the people on this website are well off as far as wealth is concerned. We should share this wealth with our brothers and sisters in the time of need. The wealth does not have to be monetary, It can be your clothing that your not using, or anything that you feel will help them in this dire sitauation. I encourage, and call out all of our brothers, and sisters from all faiths to get together and help these people.

