WinInet: INTERNET_OPEN_TYPE_PRECONFIG?
От: Аноним  
Дата: 20.01.11 10:39
Оценка:
Приветствую!

Получаю доступ к http посредством WinInet'а. Делаю вот так:

    HINTERNET hIntSession = NULL, hHTTPSession = NULL, hHTTPRequest = NULL;
    const CHAR *AcceptedType[] = {"*/*", 0};
    hIntSession = InternetOpenA("Microsoft Internet Explorer", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    hHTTPSession = InternetConnectA( hIntSession, host, 80, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
    hHTTPRequest = HttpOpenRequestA( hHTTPSession, "POST", path, NULL, NULL, AcceptedType, 
                                     INTERNET_FLAG_PRAGMA_NOCACHE | INTERNET_FLAG_RELOAD,  0 );
    if (!hIntSession || !hHTTPSession || !hHTTPRequest) {
        *dwResultLen = 0;
        return -1;
    }

    CHAR headerfield[] = "Content-Type: application/x-www-form-urlencoded";
    HttpSendRequestA(hHTTPRequest, headerfield, (DWORD) strlen(headerfield), postdata, (DWORD) strlen(postdata));


Это прекрасно работает, когда интернет прямой. На машине, где интернет через прокси + авторизация ntlm — не работает.
HttpSendRequestA завершается неудачей, а GetLstError возвращает 12029 ERROR_INTERNET_CANNOT_CONNECT.
В IE инет есть. Можно ли использовать WinInet так, чтобы в моём приложении тоже был интернет, причём вся конфигурация бралась автоматически? Я думал, что INTERNET_OPEN_TYPE_PRECONFIG как раз для такого дела.. Или я что-то делаю не так?

Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.