public static void Create(Uri navigationUri, Microsoft.Phone.Shell.ShellTileData initialData) { if (navigationUri == null) { throw new ArgumentNullException("navigationUri"); } if (initialData == null) { throw new ArgumentNullException("initialData"); } if (DEFAULT.Equals(navigationUri)) { throw new ArgumentOutOfRangeException("navigationUri"); } if (navigationUri.IsAbsoluteUri) { throw new ArgumentException("navigationUri cannot be absolute"); } if ((navigationUri.ToString().IndexOf('/') != 0) && (navigationUri.ToString().IndexOf('?') != 0)) { throw new UriFormatException(); } int hr = 0; var data = (Microsoft.Phone.Shell.StandardTileData)initialData; if ((data != null) && IsTileContainsAnyRemoteURL(data)) { var xml = ConstructTokenXmlString(data, navigationUri.ToString()); byte[] tokenXml = HardConvertUnicodeToASCIIByte(xml); var schedule = new PM_LIVETOKEN_SCHEDULE(); schedule.recurrenceType = PM_LIVETOKEN_RECURRENCE_TYPE.PM_LIVETOKEN_RECURRENCE_TYPE_INSTANT; schedule.fUserNoneIdle = true; hr = TokenManager.CreateTokenWithLiveTokenSubscription(AppId, navigationUri.ToString(), ((data.BackgroundImage != null) && IsRemoteUri(data.BackgroundImage)) ? data.BackgroundImage.OriginalString.ToString() : null, ((data.BackBackgroundImage != null) && IsRemoteUri(data.BackBackgroundImage)) ? data.BackBackgroundImage.OriginalString.ToString() : null, ref schedule, tokenXml, (uint)tokenXml.Length); } else { IToken token = null; string taskParameters = navigationUri.ToString(); TokenManager.MakeToken(AppId, navigationUri.ToString(), 5 /* 5 = default*/ /*initialData.TemplateType*/, out token); /*initialData.*/ //SerializeToToken(data, token); if (navigationUri.ToString().IndexOf('/') == 0) { taskParameters = "#" + navigationUri.ToString(); } // Dllimport => 8dc5214e-88fa-4c2d-a379-2cd74fe24b72 token.set_InvocationInfo("_default{7C288D6D-AC47-4ac8-A849-9147FF693061}", taskParameters); uint num2 = (uint)(5 /*initialData.TemplateType*/ << 0x10); uint propertyId = num2 | 0x25; token.set_Property(propertyId, ""); hr = TokenManager.AddToken(token); } ThrowExceptionFromHResult(hr, new InvalidOperationException()); }