AfxParseURLEx

BOOL AFXAPI AfxParseURLEx(
     LPCTSTR pstrURL,
     DWORD& dwServiceType,
     CString& strServer,
     CString& strObject,
     INTERNET_PORT& nPort,
     CString& strUsername,
     CString& strPassword,
     DWORD dwFlags = 0
    );

返回值:
如果成功地解析了URL,则返回非零值。如果URL为空或它不包含已知的Internet服务类型,则为0。

参数:
pstrURL指向包含了要解析的URL的字符串的指针。
dwServiceType指明了Internet服务的类型。可能的取值如下:
·AFX_INET_SERVICE_FTP
·AFX_INET_SERVICE_HTTP
·AFX_INET_SERVICE_HTTPS
·AFX_INET_SERVICE_GOPHER
·AFX_INET_SERVICE_FILE
·AFX_INET_SERVICE_MAILTO
·AFX_INET_SERVICE_NEWS
·AFX_INET_SERVICE_NNTP
·AFX_INET_SERVICE_TELNET
·AFX_INET_SERVICE_WAIS
·AFX_INET_SERVICE_MID
·AFX_INET_SERVICE_CID
·AFX_INET_SERVICE_PROSPERO
·AFX_INET_SERVICE_AFS
·AFX_INET_SERVICE_UNK
strServerURL中服务类型后的第一个部分。
strObjectURL涉及的对象(可能为空)。
nPort如果存在,则从URL的服务器或对象部分搜索出来。
strUserName对包含用户名字的CString对象的引用。
strPassword对包含了用户密码的CString对象的引用。
dwFlags控制URL的解析方式的标志。可能是下列值的组合:
取值含义
ICU_DECODE把%XX转义序列转换为字符
ICU_NO_ENCODE不把不安全的字符转换为转义序列
ICU_NO_META不把URL中的meta序列(如“\.”和“\..”)移去
ICU_ENCODE_SPACES_ONLY仅解码空间ICU_BROWSER_MODE不对‘#’和‘?’后面的字符进行编码或解码,并且也不把'?'后面的空白字符移去。如果没有指定这个值,将会对整个URL进行编码,后面的空白字符也会被移去
如果你使用MFC的缺省条件,则没有设置标志,这个函数将把所有不安全的字符和meta序列(如\.,\..和\...)转换为转义序列。

说明:
这个全局函数是AfxParseURL的扩展版本,被用于CInternetSession::OpenURL。它解析一个URL字符串,返回服务的类型以及其它的内容,同时提供用户的名字和密码。标志指明了如何处理不安全的字符。
注意:为了调用这个函数,你必须在项目中包含AFXINET.H。

请参阅:AfxGetInternetHandleType