procedure SetMusicInfo(show: Boolean; msn_format_string: string; artist: string; title: string; album: string;); var udtData: COPYDATASTRUCT; msn_string: string; hMSGRUI: LongInt; buffer: array[0..512] of WCHAR; begin msn_string := StrFmt('\0Music\0%d\0%s\0%s\0%s\0%s\0WMContentID', [Integer(show), msn_format_string, artist, title, album]); udtData.dwData:= $547; udtData.lpData:= Integer(PChar(@sBuffer)); udtData.cbData:= Length(sBuffer); MultiByteToWideChar(CP_ACP, 0, msn_string, -1, buffer, 512); msndata.dwData = $547; msndata.cbData = (lstrlenW(buffer)*2)+2; msndata.lpData = buffer; do begin SendMessage(msnui, WM_COPYDATA, WPARAM(0), LPARAM(@msndata)); end until msnui = FindWindowEx(NULL, msnui, "MsnMsgrUIManager", NULL); end;