Поделиться через


Функция InternetOpenA (wininet.h)

Инициализирует использование приложением функций WinINet.

Синтаксис

HINTERNET InternetOpenA(
  [in] LPCSTR lpszAgent,
  [in] DWORD  dwAccessType,
  [in] LPCSTR lpszProxy,
  [in] LPCSTR lpszProxyBypass,
  [in] DWORD  dwFlags
);

Параметры

[in] lpszAgent

Указатель на строку, завершающуюся значением NULL, которая указывает имя приложения или сущности, вызывающей функции WinINet. Это имя используется в качестве агента пользователя в протоколе HTTP.

[in] dwAccessType

Тип требуемого доступа. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
INTERNET_OPEN_TYPE_DIRECT
Разрешает все имена узлов локально.
INTERNET_OPEN_TYPE_PRECONFIG
Извлекает прокси-сервер или прямую конфигурацию из реестра.
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY
Извлекает прокси-сервер или прямую конфигурацию из реестра и предотвращает использование запускаемого файла Microsoft JScript или программы установки Интернета (INS).
INTERNET_OPEN_TYPE_PROXY
Передает запросы к прокси-серверу, если не указан список обхода прокси-сервера и имя для разрешения обходит прокси-сервер. В этом случае функция использует INTERNET_OPEN_TYPE_DIRECT.

[in] lpszProxy

Указатель на строку, завершающуюся нулевым значением, которая указывает имя прокси-серверов, используемых, если доступ через прокси-сервер задается параметром dwAccessTypeINTERNET_OPEN_TYPE_PROXY. Не используйте пустую строку, так как InternetOpen будет использовать ее в качестве прокси-имени. Функции WinINet распознают только прокси-серверы типа CERN (только HTTP) и FTP-шлюз TIS (только FTP). Если установлено интернет-Обозреватель Майкрософт, эти функции также поддерживают прокси-серверы SOCKS. FTP-запросы можно выполнять через прокси-сервер типа CERN, изменив их на HTTP-запрос или с помощью InternetOpenUrl. Если параметру dwAccessType не присвоено значение INTERNET_OPEN_TYPE_PROXY, этот параметр игнорируется и должен иметь значение NULL. Дополнительные сведения о перечислении прокси-серверов см. в разделе Листинг прокси-серверовстатьи Включение функций Интернета.

[in] lpszProxyBypass

Указатель на строку, завершающуюся пустым значением, которая указывает необязательный список имен узлов или IP-адресов, которые не следует маршрутизировать через прокси-сервер, если параметру dwAccessType присвоено значение INTERNET_OPEN_TYPE_PROXY. Список может содержать подстановочные знаки. Не используйте пустую строку, так как InternetOpen будет использовать ее в качестве списка обходов прокси-сервера. Если этот параметр задает "локальный<>" макрос, функция обходит прокси-сервер для любого имени узла, не содержащего точку.

По умолчанию WinINet будет обходить прокси-сервер для запросов, использующих имена узлов "localhost", "loopback", "127.0.0.1" или "[::1]". Такое поведение связано с тем, что удаленный прокси-сервер обычно не разрешает эти адреса должным образом. Internet Обозреватель 9. Локальный компьютер можно удалить из списка обхода прокси-сервера с помощью макроса -<loopback>.

Если параметру dwAccessType не присвоено значение INTERNET_OPEN_TYPE_PROXY, этот параметр игнорируется и должен иметь значение NULL.

[in] dwFlags

Параметры. Этот параметр может быть сочетанием следующих значений.

Значение Значение
INTERNET_FLAG_ASYNC
Выполняет только асинхронные запросы к дескрипторам, производным от дескриптора, возвращенного этой функцией.
INTERNET_FLAG_FROM_CACHE
Не выполняет сетевые запросы. Все сущности возвращаются из кэша. Если запрошенного элемента нет в кэше, возвращается подходящая ошибка, например ERROR_FILE_NOT_FOUND.
INTERNET_FLAG_OFFLINE
Идентично INTERNET_FLAG_FROM_CACHE. Не выполняет сетевые запросы. Все сущности возвращаются из кэша. Если запрошенного элемента нет в кэше, возвращается подходящая ошибка, например ERROR_FILE_NOT_FOUND.

Возвращаемое значение

Возвращает допустимый дескриптор, который приложение передает в последующие функции WinINet. Если InternetOpen завершается ошибкой , возвращается значение NULL. Чтобы получить определенное сообщение об ошибке, вызовите Метод GetLastError.

Комментарии

InternetOpen — это первая функция WinINet, вызываемая приложением. Он сообщает библиотеке DLL Интернета о необходимости инициализации внутренних структур данных и подготовке к последующим вызовам из приложения. Когда приложение завершит работу с функциями Интернета, оно должно вызвать InternetCloseHandle , чтобы освободить дескриптор и все связанные с ним ресурсы.

Приложение может выполнять любое количество вызовов к InternetOpen, хотя обычно достаточно одного вызова. Приложению может потребоваться определить отдельные варианты поведения для каждого экземпляра InternetOpen , например разные прокси-серверы, настроенные для каждого из них.

После завершения работы вызывающего приложения с дескриптором HINTERNET , возвращенным InternetOpen, его необходимо закрыть с помощью функции InternetCloseHandle .

Как и все другие аспекты API WinINet, эту функцию нельзя безопасно вызывать из библиотеки DllMain или из конструкторов и деструкторов глобальных объектов.

Примечание WinINet не поддерживает реализации сервера. Кроме того, его не следует использовать из службы. Для серверных реализаций или служб используйте службы Microsoft Windows HTTP (WinHTTP).
 

Примечание

Заголовок wininet.h определяет InternetOpen как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wininet.h
Библиотека Wininet.lib
DLL Wininet.dll

См. также раздел

Включение функциональных возможностей Интернета

Функции WinINet