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


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

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

Синтаксис

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

Параметры

[in] lpszAgent

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

[in] dwAccessType

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

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

[in] lpszProxy

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

[in] lpszProxyBypass

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

По умолчанию WinINet будет обходить прокси-сервер для запросов, использующих имена узлов "localhost", "loopback", "127.0.0.1" или "[::1]". Это поведение существует, так как удаленный прокси-сервер обычно не будет правильно разрешать эти адреса.Internet Explorer 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 Services (WinHTTP).
 

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка wininet.h
библиотеки Wininet.lib
DLL Wininet.dll

См. также

включение функций Интернета

функций WinINet