Juri Shutenko Personal Homepage. Visual FoxPro.

VFP и Интернет. Часть 1. Без Windows API не обойтись

Если вы здесь, то, следовательно, желание использовать Интернет для своих приложений имеется. Осталось выяснить, как это желание реализовать.

Поскольку VFP не имеет в своем арсенале функций для прямой работы с Интернет, то, стало быть, потребуются какие-то прочие поставщики информации и управления. И в первую очередь это Windows API функции из набора Wininet. Windows Internet (WinINet) API позволяет приложениям взаимодействовать с протоколами Gopher, FTP и HTTP для доступа к ресурсам Internet. Какие конкретно функции вы должны использовать, зависит от поставленной задачи, но порядок их вызова также важен. Об этом чуть позже.

Кроме функций WinINet для работы понадобятся функция некоторые функции ядра Kernel32, декларации которых также приведены в первой таблице, а их описание в соответствующей статье, куда вы сможете перейти по ссылке, щелкнув по имени функции.

В последущих таблицах перечислены основные функции WinInet, которые потребуются для создания приложений, работающих с ресурсами Internet. Щелчок по имени функции перебросит вас к странице с ее описанием.

Функции Kernel32
GetLastError
Declare Integer GetLastError In Kernel32
FileTimeToSystemTime
Declare Integer FileTimeToSystemTime In Kernel32 ;
   String @lpcBuffer, String @lpcBuffer

 

Функции WinInet - необходимые для соединения
InternetAttemptConnect
Declare Integer InternetAttemptConnect In WinInet ;
   Integer dwReserved
InternetCheckConnection
Declare Integer InternetCheckConnection In wininet ;
   STRING  lpszUrl,;
   INTEGER nFlags,;
   INTEGER dwReserved
InternetOpen
Declare Integer InternetOpen In WinInet ;
   String @lpcAgent, ;
   Integer nAccessType, ;
   String @lpcProxyName, ;
   String @lpcProxyBypass, ;
   Integer nFlags
InternetConnect
Declare Integer InternetConnect In WinInet ;
   Integer nInet_Handle, ;
   String @lpcServer, ;
   Short nPort, ;
   String @lpcUserName, ;
   String @lpcPassword, ;
   Integer nService, ;
   Integer nFlags, ;
   Integer nContext
InternetGetConnectedState
Declare Integer InternetGetConnectedState In WinInet ;
   Integer @nContext, 
   Integer nFlags
InternetCloseHandle
Declare Integer InternetCloseHandle In WinInet ;
   Integer nConnect_Handle
InternetGetLastResponseInfo
Declare Integer InternetGetLastResponseInfo In WinInet ;
   Integer @nError, ;
   String @lpcBuffer, ;
   Integer @nMax_Path

 

Функции WinInet
InternetDial
Declare Integer InternetDial In WinInet ;
   Integer nHandle, ;
   String @lpcDialUp, ;
   Integer nAccessType, ;
   Integer @nConnect_Handle, ;
   Integer nFlags
InternetHangUp
Declare Integer InternetHangUp In WinInet ;
   Integer nConnect_Handle, ;
   Integer nFlags
InternetAutodial
Declare Integer InternetAutodial In WinInet ;
   Integer nAccessType, ;
   Integer nHandle
InternetAutodialHangup
Declare Integer InternetAutodialHangup In WinInet ;
   Integer nFlags
InternetGoOnline
Declare Integer InternetGoOnline In WinInet ;
   String @lpcURL, ;
   Integer nHandle, ;
   Integer nFlags

 

Функции WinInet,связанные c URL
InternetCanonicalizeUrl
Declare Integer InternetCanonicalizeUrl IN wininet; 
    String lpszUrl,; 
    String @lpszBuffer,; 
    Integer @lpdwBufferLength,; 
    Integer nFlags 
InternetOpenUrl
DECLARE INTEGER InternetOpenUrl IN wininet; 
    INTEGER hInternet,; 
    STRING  lpszUrl,; 
    STRING  lpszHeaders,; 
    INTEGER dwHeadersLength,; 
    INTEGER nFlags,; 
    INTEGER nContext 
InternetCrackUrl
Declare Integer InternetCrackUrl IN wininet ; 
   String lpszUrl,;
   Integer dwUrlLength,; 
   Integer dwFlags, ;
   String @lpUrlComponents 
InternetCreateUrl
Declare Integer InternetCreateUrl  In wininet;
  String lpUrlComponents,;
  Integer dwFlags,;
  String @lpszUrl,;
  Integer @lpdwUrlLength
InternetCombineUrl
Declare Integer InternetCombineUrl IN wininet; 
    String lpszBaseUrl,;
    String lpszRelativeUrl
    String @lpszBuffer,; 
    Integer @lpdwBufferLength,; 
    Integer dwFlags 
* FTP Functions
 
Declare Integer FtpCreateDirectory In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcDirectory
 
Declare Integer FtpDeleteFile In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcFileName
 
Declare Integer FtpFindFirstFile In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcSearchStr, ;
   String @lpcWIN32_FIND_DATA, ;
   Integer nFlags, ;
   Integer nContext
 
Declare Integer InternetFindNextFile In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcWIN32_FIND_DATA
 
Declare Integer FtpGetCurrentDirectory In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcDirectory, ;
   Integer @nMax_Path
 
Declare Integer FtpGetFile In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcRemoteFile, ;
   String @lpcNewFile, ;
   Integer nFailIfExists, ;
   Integer nAttributes, ;
   Integer nFlags, ;
   Integer nContext
 
Declare Integer FtpOpenFile In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcRemoteFile, ;
   Integer nAccessType, ;
   Integer nFlags, ;
   Integer nContext
 
Declare Integer FtpPutFile In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcLocalFile, ;
   String @lpcNewRemoteFile, ;
   Integer nFlags, ;
   Integer nContext
 
Declare Integer FtpRemoveDirectory In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcDirectory
 
Declare Integer FtpRenameFile In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcRemoteFile, ;
   String @lpcNewFile
 
Declare Integer FtpSetCurrentDirectory In WinInet ;
   Integer nConnect_Handle, ;
   String @lpcDirectory
 
Declare Integer InternetGetLastResponseInfo In WinInet ;
   Integer @nError, ;
   String @lpcBuffer, ;
   Integer @nMax_Path
Cелектор для быстрого перехода на сайты, связанные с Visual FoxPro.