简单的办法例如分析OpenURL的sURL字符串,暂不考虑。因为CInternetSession有一个ServiceTypeFromHandle的成员函数,用来返回类型名,但是它有一个HINTERNET类型的参数,我不知道如何使用,请问大家,如何获得该HINTERNET参数的值?同样欢迎其它的办法和建议。非常感谢。

解决方案 »

  1.   

    // Return the protocol associated with the specified URL
    INTERNET_SCHEME CApp::GetScheme(LPCTSTR szURL)
    {
    URL_COMPONENTS urlComponents;
    DWORD dwFlags = 0;
    INTERNET_SCHEME nScheme = INTERNET_SCHEME_UNKNOWN;
        // CODE REVIEW: Dangerous API. Ensure zeroed buffer size in bytes. It is.
    ZeroMemory((PVOID)&urlComponents, sizeof(URL_COMPONENTS));
    urlComponents.dwStructSize = sizeof(URL_COMPONENTS);
    if (szURL)
    {
    if (InternetCrackUrl(szURL, 0, dwFlags, &urlComponents))
    {
    nScheme = urlComponents.nScheme;
    }
    }
    return nScheme;
    }