Click here to Skip to main content
13,260,383 members (44,312 online)
Click here to Skip to main content
Add your own
alternative version


15 bookmarked
Posted 5 Feb 2008

The most useless plug-in for Visual Studio 2005 and Live Messenger

, 5 Feb 2008
Rate this:
Please Sign up or sign in to vote.
The most useless plug-in for Visual Studio 2005 and Live Messenger.


Have you ever wanted to display your next secret project on your Live messenger so your friends can ask about it? Nothing is better than this useless add-in for Visual Studio 2005 that allows you to show "Now editing...." in your Live Messenger.

Using the code

Here are the important parts of this piece of code:

//Define the following in the class
private EnvDTE.WindowEvents winEvents;
//In the OnConnection function, do the following
// Retrieve the event objects from the automation model.
winEvents = (EnvDTE.WindowEvents)events.get_WindowEvents(null);
winEvents.WindowActivated += 
  new _dispWindowEvents_WindowActivatedEventHandler(this.WindowActivated); 
//In the OnDisconnection, make sure you clean up the event handler
winEvents.WindowActivated -= 
  new _dispWindowEvents_WindowActivatedEventHandler(this.WindowActivated);
//To use FindWindowExA and SendMessageA, 
//you have to import those functions from user32.dll
//Do the following in the class

[DllImport("user32", EntryPoint = "SendMessageA")] 
private static extern int SendMessage(int Hwnd, 
               int wMsg, int wParam, int lParam);

[DllImport("user32", EntryPoint = "FindWindowExA")] 
private static extern int FindWindowEx(int hWnd1, 
               int hWnd2, string lpsz1, string lpsz2);

//And Since we use a constant for WM_COPYDATA, we define
private const short WM_COPYDATA = 74;

//This is the actual function that sends message to MSN.
//The exact format for the string can be found in MSN API section of MSDN
private void SendMSNMessage(bool enable, string category, string message)
    string buffer = "\\0" + category + "\\0" + 
                   (enable ? "1" : "0") + 
                   "\\0{0}\\0" + message + "\\0\\0\\0\\0\0"; 
    int handle = 0; 
        data.dwData = 0x0547;
        data.lpData = VarPtr(buffer);
        data.cbData = buffer.Length * 2;
        handle = FindWindowEx(0, handle, "MsnMsgrUIManager", null);
        if (handle > 0)
          SendMessage(handle, WM_COPYDATA, 0, VarPtr(data));

//Finally the event handling function.
public void WindowActivated(EnvDTE.Window gotFocus,EnvDTE.Window lostFocus)
    SendMSNMessage(true, "Music","Coding in Visual Studio: " + 

While this article is short, so is the code, which is excellent for those interested in developing and extending VS2005. I did the code in 3 hours, including learning VS2005's add-in architecture; I'm sure you can do better.

For more details, checkout the Visual Studio 2005 SDK, which can be downloaded freely from Microsoft's website. Good luck and Enjoy!

Points of interest

There are a few things in this add-in you might be interested in:

  • How to send a window message in C#
  • How to communicate with MSN Messenger's API
  • How to write an add-in for Visual Studio 2005
  • How to handle events in Visual Studio 2005


  • Version 1.0 - Use for your own interests.


This article, along with any associated source code and files, is licensed under The GNU Lesser General Public License (LGPLv3)


About the Author

Web Developer
Canada Canada
I am a computer engineering student in University of Toronto, Canada

You may also be interested in...

Comments and Discussions

QuestionHow does this work?? Pin
Member 259500831-Aug-09 2:49
memberMember 259500831-Aug-09 2:49 
GeneralNice example, but project is tagged incorrectly Pin
C. Bates6-Jul-09 6:09
memberC. Bates6-Jul-09 6:09 
GeneralAwesome Pin
Boinst6-Feb-08 16:31
memberBoinst6-Feb-08 16:31 
GeneralRe: Awesome Pin
LegoMindstorms12-Feb-08 1:35
memberLegoMindstorms12-Feb-08 1:35 
It looks really cool, but I can't get it working. By messenger version is 8.5, and I use Visual Studio Express Edition 2005.

What's wrong?Confused | :confused:
GeneralRe: Awesome Pin
pankkk2-Mar-08 23:08
memberpankkk2-Mar-08 23:08 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.171114.1 | Last Updated 6 Feb 2008
Article Copyright 2008 by tsxy
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid