private void Handle(XmlNodeList nodeList) { if (nodeList == null || nodeList.Count == 0) { return; } foreach (XmlNode node in nodeList) { if (!String.IsNullOrEmpty(node.InnerText)) { // REMARK: All the MSNObject must use MSNObject.GetDecodeString(string) to get the decoded conext. switch (node.Name) { case "UserTileLocation": UserTileLocation = MSNObject.GetDecodeString(node.InnerText); break; case "FriendlyName": FriendlyName = node.InnerText; break; case "RUM": RUM = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8); break; case "PSM": Message = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8); break; case "DDP": DDP = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8); break; case "ColorScheme": ColorScheme = ColorTranslator.FromOle(int.Parse(node.InnerText)); break; case "Scene": Scene = MSNObject.GetDecodeString(node.InnerText); break; case "SignatureSound": SignatureSound = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8); break; case "CurrentMedia": string mediaString = System.Web.HttpUtility.UrlDecode(node.InnerText, System.Text.Encoding.UTF8); if (mediaString.Length > 0) { string[] vals = mediaString.Split(new string[] { @"\0" }, StringSplitOptions.None); if (!String.IsNullOrEmpty(vals[0])) { appName = vals[0]; } switch (vals[1]) { case "Music": MediaType = MediaType.Music; break; case "Games": MediaType = MediaType.Games; break; case "Office": MediaType = MediaType.Office; break; } /* * 0 * 1 Music * 2 1 * 3 {0} - {1} * 4 Evanescence * 5 Call Me When You're Sober * 6 Album * 7 WMContentID * 8 */ //vals[2] = Enabled/Disabled Format = vals[3]; int size = vals.Length - 4; CurrentMediaContent = new String[size]; for (int i = 0; i < size; i++) { CurrentMediaContent[i] = vals[i + 4]; } } break; } } } }