Инициализирует использование функций WinINet приложением.Декларирование функции в Visual FoxPro осуществляется с помощью команды:
Declare Integer InternetOpen In WinInet ;
String lpcAgent, Integer nAccessType, String lpcProxyName, ;
String lpcProxyBypass, Integer nFlags
Параметры
Функция принимает пять параметров: lpszAgent, dwAccessType, lpszProxyName, lpszProxyBypass и dwFlags, которые описаны ниже
lpszAgent
Указатель на строку с терминатором CHR(0), которая указывает на имя приложения или сущности, вызывающего функции WinINet. Это имя используется как пользовательский агент в протоколе HTTP.
dwAccessType
Тип требующегося доступа. Этот параметр может принимать одно из перечисленных в таблице значений:
Символьная константа |
Hex-значение |
Dec-значение |
Описание |
INTERNET_OPEN_TYPE_DIRECT |
1 |
1 |
Разрешает имена всех хостов локально. |
INTERNET_OPEN_TYPE_PRECONFIG |
0 |
0 |
Запрашивает прокси или прямую конфигурацию из регистра. |
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY |
4 |
4 |
Запрашивает проки или прямую конфигурацию из регистра и предотвращает использование стартовых Microsoft JScript или Internet Setup (INS) файлов. |
INTERNET_OPEN_TYPE_PROXY |
3 |
3 |
Направляет запрос прокси-серверу, в случае если не предоставлен лист обходов прокси-серверов и имени прокси-сервера нет списке прокси, которые можно обойти. В этом случае функция использует INTERNET_OPEN_TYPE_DIRECT. |
lpszProxyName
Указатель на строку с терминатором CHR(0), указывает имя прокси-сервера(серверов) для использования с соединением, когда доступ через прокси-сервер определен установкой параметра dwAccessType в значение INTERNET_OPEN_TYPE_PROXY. Не используйте пустую строку, так как функция InternetOpen в таком случае будет использовать ее как имя прокси-сервера. Фукнции WinINet распознают только зафиксированные CERN типы прокси (только HTTP) и TIS FTP шлюзы (только FTP). Если в системе инсталлирован Microsoft Internet Explorer, эти функции, кроме того, поддерживают SOCKS - прокси. Запросы к FTP и Gopher могут быть выполнены через определенные CERN типы либо путем изменения их в запрос HTTP или путем использования функции InternetOpenUrl. Если параметр dwAccessType не установлен в значение INTERNET_OPEN_TYPE_PROXY, то этот параметр игнорируется и должен быть установлен в NULL. Для получения более подробной информации о списке прокси-серверов, обратитесь к разделу "Listing Proxy Servers" глобального раздела "Enabling Internet Functionality" на сайте MSDN корпорации Микрософт.
lpszProxyBypass
Указатель на строку с терминатором CHR(0), который определяет необязательный списко имен хостов или IP адресов, или тех и других, запросы к которым не должны отправляться через прокси для случая, когда значение параметра dwAccessType установлено в INTERNET_OPEN_TYPE_PROXY. Список может содержать модификаторы в виде звездочки. Не используйте пустую строку в качестве параметра, так как InternetOpen будет использовать ее как список обхода прокси-серверов. Если этот параметр указан как макро "<local>" в виде единственного члена списка, функция будет обходить любые имена хостов, которые не имеют в своем имени точки. Если же значение параметра dwAccessType не установлено в INTERNET_OPEN_TYPE_PROXY, то этот параметр будет игнорирован и и его значение должно быть установлено в NULL.
dwFlags
Опции. Этот параметр может представлять собой комбинацию следующих значений
Символьная константа |
Dec-значение |
Описание |
INTERNET_FLAG_ASYNC |
1 |
Выполняет только асинхронные запросы на дескрипторах по убывающей от дескриптора возвращенного этой функцией. |
INTERNET_FLAG_FROM_CACHE |
2 |
Не выполняет сетевых запросов. Все сущности возвращаются из кэша. Если запрашиваемый элемент не находится в кэше, то возвращается соответствующая подходящая ошибка, такая как ERROR_FILE_NOT_FOUND. |
INTERNET_FLAG_OFFLINE |
2 |
Идентично INTERNET_FLAG_FROM_CACHE. Не выполняет сетевых запросов. Все сущности возвращаются из кэша. Если запрашиваемый элемент не находится в кэше, то возвращается соответствующая подходящая ошибка, такая как ERROR_FILE_NOT_FOUND. (тогда вопрос - зачем вообще нужен?) |
Возвращаемое значение
Возвращает действительный дексриптор, который направляется приложениям ко всем последующим функциям WinINet. Если вызов функции не получился InternetOpen, то возращается NULL. Для получения описания соответствующего сообщения об ошибке используйте функцию WinAPI GetLastError.
Примечания
InternetOpen является первой WinINet, которая должна быть вызвана приложением. Она сообщает Internet DLL об необходимости инициализировать внутренние структуры данных и подготовиться для последующих вызовов из приложения. Когда приложение завершает использование функций Internet, оно должно вызвать функцию WinAPI InternetCloseHandle для освобождения дескриптора и любых связанных ресурсов.
Приложение может выполнять любое количество функции InternetOpen, хотя обычно достаточно единичного вызова. Приложению может потребоваться определить раздельное поведение каждой инстанции InternetOpen, такое, как, например, конфигурирование прокси-серверов для каждой из них.
После того, как приложение завершнит использование вызовов функций, использующих дескриптор HINTERNET, возвращенный вызовом InternetOpen, он должен быть закрыт с помощью функции InternetCloseHandle.
Пример:
Ниже приведен пример программного кода, использующий рассматриваемую функцию в Visual FoxPro:
Declare Integer InternetOpen In WinInet ;
String lpcAgent, Integer nAccessType, String lpcProxyName, ;
String lpcProxyBypass, Integer nFlags
Declare Integer InternetCloseHandle In WinInet ;
Integer nHandle
ln_Inet_Handle = InternetOpen("VisualFoxPro", 1, .NULL., .NULL., 0)
? ln_Inet_Handle
InternetCloseHandle(ln_Inet_Handle)
В качестве результата на моей локальной системе было возвращено 13369348
Требования
смотри требования к клиенту, серверу и обозревателю Internet в таблице требований к системе.
Дополнительные требования |
Unicode |
Встроен как InternetOpenW (Unicode) и InternetOpenA (ANSI). Отметьте, что поддержка Unicode на ОС Windows Me/98/95 требует Microsoft Layer для Unicode. |
|