Introduction
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:
private EnvDTE.WindowEvents winEvents;
winEvents = (EnvDTE.WindowEvents)events.get_WindowEvents(null);
winEvents.WindowActivated +=
new _dispWindowEvents_WindowActivatedEventHandler(this.WindowActivated);
winEvents.WindowActivated -=
new _dispWindowEvents_WindowActivatedEventHandler(this.WindowActivated);
[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);
private const short WM_COPYDATA = 74;
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));
}
public void WindowActivated(EnvDTE.Window gotFocus,EnvDTE.Window lostFocus)
{
SendMSNMessage(true, "Music","Coding in Visual Studio: " +
gotFocus.Caption);
}
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
History
- Version 1.0 - Use for your own interests.