Функция 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
Необходимый тип доступа. Этот параметр может быть одним из следующих значений.
Ценность | Значение |
---|---|
|
Разрешает все имена узлов локально. |
|
Извлекает прокси-сервер или прямую конфигурацию из реестра. |
|
Извлекает прокси-сервер или прямую конфигурацию из реестра и запрещает использование запускаемого файла Microsoft JScript или Internet Setup (INS). |
|
Передает запросы на прокси-сервер, если не указан список обхода прокси-сервера, а имя, разрешаемое путем передачи прокси-сервера. В этом случае функция использует 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
Параметры. Этот параметр может быть сочетанием следующих значений.
Ценность | Значение |
---|---|
|
Выполняет только асинхронные запросы на дескрипторах, возвращаемых из этой функции. |
|
Не выполняет сетевые запросы. Все сущности возвращаются из кэша. Если запрошенный элемент не находится в кэше, возвращается соответствующая ошибка, например ERROR_FILE_NOT_FOUND. |
|
Идентичен INTERNET_FLAG_FROM_CACHE. Не выполняет сетевые запросы. Все сущности возвращаются из кэша. Если запрошенный элемент не находится в кэше, возвращается соответствующая ошибка, например ERROR_FILE_NOT_FOUND. |
Возвращаемое значение
Возвращает допустимый дескриптор, который приложение передает последующим функциям WinINet. Если InternetOpen завершается ошибкой, возвращается NULL. Чтобы получить определенное сообщение об ошибке, вызовите GetLastError.
Замечания
InternetOpen является первой функцией WinINet, вызываемой приложением. Она сообщает библиотеке DLL Интернета инициализировать внутренние структуры данных и подготовиться к последующим вызовам из приложения. Когда приложение завершит работу с помощью функций Интернета, оно должно вызывать InternetCloseHandle, чтобы освободить дескриптор и все связанные ресурсы.
Приложение может выполнять любое количество вызовов к InternetOpen, хотя один вызов обычно достаточно. Приложению может потребоваться определить отдельные поведения для каждого экземпляра InternetOpen, например разные прокси-серверы, настроенные для каждого экземпляра.
После завершения вызова приложения с помощью дескриптора HINTERNET
Как и все остальные аспекты API WinINet, эта функция не может быть безопасно вызвана из dllMain или конструкторов и деструкторов глобальных объектов.
Заметка
Заголовок wininet.h определяет InternetOpen как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows 2000 Профессиональный [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
целевая платформа | Виндоус |
заголовка | wininet.h |
библиотеки |
Wininet.lib |
DLL | Wininet.dll |
См. также
функций WinINet