private static LaunchResult CanNavigateToUrlWithZoneCheck(Uri originatingUri, Uri destinationUri)
        {
            AppSecurityManager.EnsureSecurityManager();
            bool flag = UnsafeNativeMethods.CoInternetIsFeatureEnabled(1, 2) != 1;
            int  num  = AppSecurityManager.MapUrlToZone(destinationUri);
            Uri  uri  = null;

            if (Application.Current.MimeType != MimeType.Document)
            {
                uri = BrowserInteropHelper.Source;
            }
            else if (destinationUri.IsFile && Path.GetExtension(destinationUri.LocalPath).Equals(DocumentStream.XpsFileExtension, StringComparison.OrdinalIgnoreCase))
            {
                num = 3;
            }
            int num2;

            if (uri != null)
            {
                num2 = AppSecurityManager.MapUrlToZone(uri);
            }
            else
            {
                bool flag2 = SecurityHelper.CheckUnmanagedCodePermission();
                if (flag2)
                {
                    return(LaunchResult.Launched);
                }
                num2 = 3;
                uri  = originatingUri;
            }
            if ((!flag && ((num2 != 3 && num2 != 4) || num != 0)) || (flag && (num2 == num || (num2 <= 4 && num <= 4 && (num2 < num || ((num2 == 2 || num2 == 1) && (num == 2 || num == 1)))))))
            {
                return(LaunchResult.Launched);
            }
            return(AppSecurityManager.CheckBlockNavigation(uri, destinationUri, flag));
        }