#include #include void setNowPlaying(wchar_t* format, wchar_t* title,wchar_t* artist, wchar_t* album) { //Function setNowPlaying - Marijn Kentie 2006 //Sets user's MSN Now Playing info. //If format is NULL, the user's Now Playing is cleared. COPYDATASTRUCT msnData; #define MSN_STRING_BEGIN L"\\0Music\\01\\0" #define MSN_STRING_END L"\\0\\0" #define MSN_WINDOW_TITLE L"MsnMsgrUIManager" #define MSN_STRING_CLEAR L"\\0Music\\00\\0\\0" wchar_t* msnString; HWND msnUI; //Build info string if(format) //If format string set, build string { msnString = (wchar_t*) malloc((wcslen(MSN_STRING_BEGIN) + wcslen(MSN_STRING_END) + wcslen(artist) + wcslen(title) +wcslen(format) + wcslen(album) + 7)*sizeof(wchar_t)); wcscpy(msnString,MSN_STRING_BEGIN); wcscat(msnString,format); wcscat(msnString,L"\\0"); wcscat(msnString,title); wcscat(msnString,L"\\0"); wcscat(msnString,artist); wcscat(msnString,L"\\0"); wcscat(msnString,album); wcscat(msnString,MSN_STRING_END); } else //Format string not set, just use the string to clear the user's name msnString = MSN_STRING_CLEAR; //Set info string msnUI = NULL; msnData.dwData = 0x547; msnData.lpData = msnString; msnData.cbData = (unsigned long) (wcslen(msnString)+1)*sizeof(wchar_t); while (msnUI = FindWindowEx(NULL, msnUI, MSN_WINDOW_TITLE, NULL)) SendMessage(msnUI, WM_COPYDATA, (WPARAM)NULL, (LPARAM)&msnData); if(format) free(msnString); } int main() { setNowPlaying(L"{0} by {1} from {2}",L"My Sanctuary",L"PIG",L"Praise the Lard"); //Set Now Playing info return EXIT_SUCCESS; }