Example #1
0
        /// <summary>
        /// ParseUrl
        /// </summary>
        /// <param name="pwzUrl"></param>
        /// <param name="ParseAction"></param>
        /// <param name="dwParseFlags"></param>
        /// <param name="pwzResult"></param>
        /// <param name="cchResult"></param>
        /// <param name="pcchResult"></param>
        /// <param name="dwReserved"></param>
        /// <returns></returns>
        /// <remarks>
        /// Implement security rule to avoid alert with non HTTPS content.
        /// </remarks>
        public uint ParseUrl(string pwzUrl, PARSEACTION ParseAction, uint dwParseFlags, IntPtr pwzResult, uint cchResult, out uint pcchResult, uint dwReserved)
        {
            string temp = null;

            switch (ParseAction)
            {
            case PARSEACTION.PARSE_CANONICALIZE:
            case PARSEACTION.PARSE_FRIENDLY:
            case PARSEACTION.PARSE_DOCUMENT:
            case PARSEACTION.PARSE_ENCODE:
            case PARSEACTION.PARSE_DECODE:
            case PARSEACTION.PARSE_PATH_FROM_URL:
            case PARSEACTION.PARSE_URL_FROM_PATH:
            case PARSEACTION.PARSE_ESCAPE:
            case PARSEACTION.PARSE_UNESCAPE:
            case PARSEACTION.PARSE_SECURITY_URL:
                temp = pwzUrl;
                break;

            case PARSEACTION.PARSE_ROOTDOCUMENT:
                temp = Name + "://";
                break;

            case PARSEACTION.PARSE_MIME:
                temp = "text/html";
                switch (pwzUrl.Substring(pwzUrl.Length - 3))
                {
                case "png":
                    temp = "image/png";
                    break;

                case "gif":
                    temp = "image/gif";
                    break;

                case "css":
                    temp = "text/css";
                    break;

                case "eot":
                    temp = "application/font-woff";
                    break;
                }

                break;

            case PARSEACTION.PARSE_SCHEMA:
                temp = Name;
                break;
            }

            Marshal.Copy(temp.ToCharArray(), 0, pwzResult, temp.Length);

            pcchResult = (uint)temp.Length + 1;

            return(HRESULT.S_OK);
        }
 public int ParseUrl([MarshalAs(UnmanagedType.LPWStr)] string pwzUrl, PARSEACTION ParseAction, uint dwParseFlags, ref ushort pwzResult, uint cchResult, ref uint pcchResult, uint dwReserved)
 {
     if (m_ParseUrlFunc == null)
     {
         var fp = GetFunctionPointer(3);
         m_ParseUrlFunc = (ParseUrlFunc)Marshal.GetDelegateForFunctionPointer(fp, typeof(ParseUrlFunc));
     }
     return(m_ParseUrlFunc(m_ptr, pwzUrl, ParseAction, dwParseFlags, ref pwzResult, cchResult, ref pcchResult, dwReserved));
 }
        public uint ParseUrl(string pwzUrl, PARSEACTION ParseAction, uint dwParseFlags, IntPtr pwzResult, uint cchResult, out uint pcchResult, uint dwReserved)
        {
            Debug.WriteLine("ParseUrl:" + pwzUrl);
            pcchResult = 0;
            return(HRESULT.INET_E_DEFAULT_ACTION);

//			byte[] bytes = Encoding.Unicode.GetBytes(pwzUrl);
//			Marshal.Copy(bytes, 0, pwzResult, bytes.Length);
//			pcchResult = (uint)pwzUrl.Length;
//			return HRESULT.S_OK;
        }
        private string DoParseUrl(string pwzUrl, PARSEACTION ParseAction)
        {
            switch (ParseAction)
            {
            case PARSEACTION.PARSE_CANONICALIZE:
                return(pwzUrl);

            case PARSEACTION.PARSE_SECURITY_URL:
                return("http://localhost/");

            case PARSEACTION.PARSE_SECURITY_DOMAIN:
                return("http://localhost/");

            default:
                return(null);
            }
        }
        private string DoParseUrl(string pwzUrl, PARSEACTION ParseAction)
        {
            switch (ParseAction)
            {
            case PARSEACTION.PARSE_CANONICALIZE:
                return(pwzUrl);

            case PARSEACTION.PARSE_SECURITY_URL:
                return("gallio:localhost+" + (int)URLZONE.URLZONE_INTERNET);

            case PARSEACTION.PARSE_SECURITY_DOMAIN:
                return("gallio:localhost");

            default:
                return(null);
            }
        }
        public int ParseUrl(string pwzUrl, PARSEACTION ParseAction, uint dwParseFlags, IntPtr pwzResult, uint cchResult, out uint pcchResult, uint dwReserved)
        {
            string result = DoParseUrl(pwzUrl, ParseAction);

            if (result != null)
            {
                pcchResult = (uint)result.Length;

                if (result.Length > cchResult)
                {
                    return(NativeConstants.S_FALSE); // buffer too small
                }
                WriteLPWStr(result, pwzResult);
                return(NativeConstants.S_OK);
            }

            pcchResult = 0;
            return(NativeConstants.INET_E_DEFAULT_ACTION);
        }
Example #7
0
 private string DoParseUrl(string pwzUrl, PARSEACTION ParseAction)
 {
     switch (ParseAction)
     {
         case PARSEACTION.PARSE_CANONICALIZE:
             return pwzUrl;
         case PARSEACTION.PARSE_SECURITY_URL:
             return "http://localhost/";
         case PARSEACTION.PARSE_SECURITY_DOMAIN:
             return "http://localhost/";
         default:
             return null;
     }
 }
Example #8
0
        public int ParseUrl(string pwzUrl, PARSEACTION ParseAction, uint dwParseFlags, IntPtr pwzResult, uint cchResult, out uint pcchResult, uint dwReserved)
        {
            string result = DoParseUrl(pwzUrl, ParseAction);
            if (result != null)
            {
                pcchResult = (uint)result.Length;

                if (result.Length > cchResult)
                    return NativeConstants.S_FALSE; // buffer too small

                WriteLPWStr(result, pwzResult);
                return NativeConstants.S_OK;
            }

            pcchResult = 0;
            return NativeConstants.INET_E_DEFAULT_ACTION;
        }
 private string DoParseUrl(string pwzUrl, PARSEACTION ParseAction)
 {
     switch (ParseAction)
     {
         case PARSEACTION.PARSE_CANONICALIZE:
             return pwzUrl;
         case PARSEACTION.PARSE_SECURITY_URL:
             return "gallio:localhost+" + (int) URLZONE.URLZONE_INTERNET;
         case PARSEACTION.PARSE_SECURITY_DOMAIN:
             return "gallio:localhost";
         default:
             return null;
     }
 }
        public uint ParseUrl(
        string pwzUrl, PARSEACTION ParseAction, uint dwParseFlags, IntPtr pwzResult, uint cchResult, out uint pcchResult, uint dwReserved)
        {
            var temp = new StringBuilder (pwzUrl);

              temp.Insert (0, "http://localhost:1234/");

              Marshal.Copy(temp.ToString().ToCharArray(), 0, pwzResult, temp.Length);
              Marshal.WriteInt32(pwzResult, temp.Length * 2, 0);
              pcchResult = (UInt32)temp.Length+1;
              return HResult.S_OK;
        }
Example #11
0
 public int ParseUrl([NativeTypeName("LPCWSTR")] ushort *pwzUrl, PARSEACTION ParseAction, [NativeTypeName("DWORD")] uint dwParseFlags, [NativeTypeName("LPWSTR")] ushort *pwzResult, [NativeTypeName("DWORD")] uint cchResult, [NativeTypeName("DWORD *")] uint *pcchResult, [NativeTypeName("DWORD")] uint dwReserved)
 {
     return(((delegate * unmanaged <IInternetProtocolInfo *, ushort *, PARSEACTION, uint, ushort *, uint, uint *, uint, int>)(lpVtbl[3]))((IInternetProtocolInfo *)Unsafe.AsPointer(ref this), pwzUrl, ParseAction, dwParseFlags, pwzResult, cchResult, pcchResult, dwReserved));
 }
 public static extern HRESULT CoInternetParseIUri(IUri *pIUri, PARSEACTION ParseAction, [NativeTypeName("DWORD")] uint dwFlags, [NativeTypeName("LPWSTR")] ushort *pwzResult, [NativeTypeName("DWORD")] uint cchResult, [NativeTypeName("DWORD *")] uint *pcchResult, [NativeTypeName("DWORD_PTR")] nuint dwReserved);
 public static extern HRESULT CoInternetParseUrl([NativeTypeName("LPCWSTR")] ushort *pwzUrl, PARSEACTION ParseAction, [NativeTypeName("DWORD")] uint dwFlags, [NativeTypeName("LPWSTR")] ushort *pszResult, [NativeTypeName("DWORD")] uint cchResult, [NativeTypeName("DWORD *")] uint *pcchResult, [NativeTypeName("DWORD")] uint dwReserved);
Example #14
0
 public uint ParseUrl(string pwzUrl, PARSEACTION ParseAction, uint dwParseFlags, IntPtr pwzResult, uint cchResult, out uint pcchResult, uint dwReserved)
 {
     pcchResult = 0;
     return(HRESULT.INET_E_DEFAULT_ACTION);
 }
		public uint ParseUrl(string pwzUrl, PARSEACTION ParseAction, uint dwParseFlags, IntPtr pwzResult, uint cchResult, out uint pcchResult, uint dwReserved)
		{
			Debug.WriteLine("ParseUrl:" + pwzUrl);
			pcchResult = 0;
			return HRESULT.INET_E_DEFAULT_ACTION;

//			byte[] bytes = Encoding.Unicode.GetBytes(pwzUrl);
//			Marshal.Copy(bytes, 0, pwzResult, bytes.Length);
//			pcchResult = (uint)pwzUrl.Length;
//			return HRESULT.S_OK;
		}