* !!! Don't remove next two rows !!! *!* *!* #DEFINE __FTP_INCLUDE #IFNDEF __CORE_INCLUDE #INCLUDE "core.h" #ENDIF * Internet API Returns * #define ERROR_SUCCESS 0 #define ERROR_FILE_NOT_FOUND 2 #define ERROR_PATH_NOT_FOUND 3 #define ERROR_ACCESS_DENIED 5 #define ERROR_INVALID_HANDLE 6 #define ERROR_NO_MORE_FILES 18 #define ERROR_FILE_EXISTS 80 #define ERROR_INVALID_PARAMETER 87 *** begin of olrrai fix * Timeout options #define INTERNET_OPTION_CALLBACK 1 #define INTERNET_OPTION_CONNECT_TIMEOUT 2 #define INTERNET_OPTION_CONNECT_RETRIES 3 #define INTERNET_OPTION_CONNECT_BACKOFF 4 #define INTERNET_OPTION_SEND_TIMEOUT 5 #define INTERNET_OPTION_CONTROL_SEND_TIMEOUT INTERNET_OPTION_SEND_TIMEOUT #define INTERNET_OPTION_RECEIVE_TIMEOUT 6 #define INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT INTERNET_OPTION_RECEIVE_TIMEOUT #define INTERNET_OPTION_DATA_SEND_TIMEOUT 7 #define INTERNET_OPTION_DATA_RECEIVE_TIMEOUT 8 #define INTERNET_OPTION_HANDLE_TYPE 9 #define INTERNET_OPTION_CONTEXT_VALUE 10 #define INTERNET_OPTION_LISTEN_TIMEOUT 11 #define INTERNET_OPTION_READ_BUFFER_SIZE 12 #define INTERNET_OPTION_WRITE_BUFFER_SIZE 13 #define INTERNET_OPTION_ASYNC_ID 15 #define INTERNET_OPTION_ASYNC_PRIORITY 16 #define INTERNET_OPTION_PARENT_HANDLE 21 #define INTERNET_OPTION_KEEP_CONNECTION 22 #define INTERNET_OPTION_REQUEST_FLAGS 23 #define INTERNET_OPTION_EXTENDED_ERROR 24 && LONG #define INTERNET_OPTION_OFFLINE_MODE 26 #define INTERNET_OPTION_CACHE_STREAM_HANDLE 27 #define INTERNET_OPTION_USERNAME 28 && STRING #define INTERNET_OPTION_PASSWORD 29 && STRING #define INTERNET_OPTION_ASYNC 30 #define INTERNET_OPTION_SECURITY_FLAGS 31 #define INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT 32 && STRING/STRUC #define INTERNET_OPTION_DATAFILE_NAME 33 && String #define INTERNET_OPTION_URL 34 && STRING #define INTERNET_OPTION_SECURITY_CERTIFICATE 35 #define INTERNET_OPTION_SECURITY_KEY_BITNESS 36 #define INTERNET_OPTION_REFRESH 37 #define INTERNET_OPTION_PROXY 38 && STRING/STRUC #define INTERNET_OPTION_SETTINGS_CHANGED 39 #define INTERNET_OPTION_VERSION 40 && STRING #define INTERNET_OPTION_USER_AGENT 41 && STRING/STRUC ************** end of olrrai fix #define INTERNET_OPTION_CONNECTED_STATE 50 #define INTERNET_OPTION_MAXFLAG 50 #define ERROR_INTERNET_BASE 12000 #define ERROR_INTERNET_OUT_OF_HANDLES (ERROR_INTERNET_BASE + 1) #define ERROR_INTERNET_TIMEOUT (ERROR_INTERNET_BASE + 2) #define ERROR_INTERNET_EXTENDED_ERROR (ERROR_INTERNET_BASE + 3) #define ERROR_INTERNET_INTERNAL_ERROR (ERROR_INTERNET_BASE + 4) #define ERROR_INTERNET_INVALID_URL (ERROR_INTERNET_BASE + 5) #define ERROR_INTERNET_UNRECOGNIZED_SCHEME (ERROR_INTERNET_BASE + 6) #define ERROR_INTERNET_NAME_NOT_RESOLVED (ERROR_INTERNET_BASE + 7) #define ERROR_INTERNET_PROTOCOL_NOT_FOUND (ERROR_INTERNET_BASE + 8) #define ERROR_INTERNET_INVALID_OPTION (ERROR_INTERNET_BASE + 9) #define ERROR_INTERNET_BAD_OPTION_LENGTH (ERROR_INTERNET_BASE + 10) #define ERROR_INTERNET_OPTION_NOT_SETTABLE (ERROR_INTERNET_BASE + 11) #define ERROR_INTERNET_SHUTDOWN (ERROR_INTERNET_BASE + 12) #define ERROR_INTERNET_INCORRECT_USER_NAME (ERROR_INTERNET_BASE + 13) #define ERROR_INTERNET_INCORRECT_PASSWORD (ERROR_INTERNET_BASE + 14) #define ERROR_INTERNET_LOGIN_FAILURE (ERROR_INTERNET_BASE + 15) #define ERROR_INTERNET_INVALID_OPERATION (ERROR_INTERNET_BASE + 16) #define ERROR_INTERNET_OPERATION_CANCELLED (ERROR_INTERNET_BASE + 17) #define ERROR_INTERNET_INCORRECT_HANDLE_TYPE (ERROR_INTERNET_BASE + 18) #define ERROR_INTERNET_INCORRECT_HANDLE_STATE (ERROR_INTERNET_BASE + 19) #define ERROR_INTERNET_NOT_PROXY_REQUEST (ERROR_INTERNET_BASE + 20) #define ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND (ERROR_INTERNET_BASE + 21) #define ERROR_INTERNET_BAD_REGISTRY_PARAMETER (ERROR_INTERNET_BASE + 22) #define ERROR_INTERNET_NO_DIRECT_ACCESS (ERROR_INTERNET_BASE + 23) #define ERROR_INTERNET_NO_CONTEXT (ERROR_INTERNET_BASE + 24) #define ERROR_INTERNET_NO_CALLBACK (ERROR_INTERNET_BASE + 25) #define ERROR_INTERNET_REQUEST_PENDING (ERROR_INTERNET_BASE + 26) #define ERROR_INTERNET_INCORRECT_FORMAT (ERROR_INTERNET_BASE + 27) #define ERROR_INTERNET_ITEM_NOT_FOUND (ERROR_INTERNET_BASE + 28) #define ERROR_INTERNET_CANNOT_CONNECT (ERROR_INTERNET_BASE + 29) #define ERROR_INTERNET_CONNECTION_ABORTED (ERROR_INTERNET_BASE + 30) #define ERROR_INTERNET_CONNECTION_RESET (ERROR_INTERNET_BASE + 31) #define ERROR_INTERNET_FORCE_RETRY (ERROR_INTERNET_BASE + 32) #define ERROR_INTERNET_INVALID_PROXY_REQUEST (ERROR_INTERNET_BASE + 33) #define ERROR_INTERNET_NEED_UI (ERROR_INTERNET_BASE + 34) #define ERROR_INTERNET_HANDLE_EXISTS (ERROR_INTERNET_BASE + 36) #define ERROR_INTERNET_SEC_CERT_DATE_INVALID (ERROR_INTERNET_BASE + 37) #define ERROR_INTERNET_SEC_CERT_CN_INVALID (ERROR_INTERNET_BASE + 38) #define ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR (ERROR_INTERNET_BASE + 39) #define ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR (ERROR_INTERNET_BASE + 40) #define ERROR_INTERNET_MIXED_SECURITY (ERROR_INTERNET_BASE + 41) #define ERROR_INTERNET_CHG_POST_IS_NON_SECURE (ERROR_INTERNET_BASE + 42) #define ERROR_INTERNET_POST_IS_NON_SECURE (ERROR_INTERNET_BASE + 43) #define ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED (ERROR_INTERNET_BASE + 44) #define ERROR_INTERNET_INVALID_CA (ERROR_INTERNET_BASE + 45) #define ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP (ERROR_INTERNET_BASE + 46) #define ERROR_INTERNET_ASYNC_THREAD_FAILED (ERROR_INTERNET_BASE + 47) #define ERROR_INTERNET_REDIRECT_SCHEME_CHANGE (ERROR_INTERNET_BASE + 48) #define ERROR_INTERNET_DIALOG_PENDING (ERROR_INTERNET_BASE + 49) #define ERROR_INTERNET_RETRY_DIALOG (ERROR_INTERNET_BASE + 50) #define ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR (ERROR_INTERNET_BASE + 52) #define ERROR_INTERNET_INSERT_CDROM (ERROR_INTERNET_BASE + 53) #define INTERNET_STATE_CONNECTED 1 #define INTERNET_STATE_DISCONNECTED 2 #define INTERNET_STATE_DISCONNECTED_BY_USER 0x10 && no network requests being made (by Wininet) #define INTERNET_STATE_IDLE 0x100 && network requests being made (by Wininet) #define INTERNET_STATE_BUSY 0x200 * * FTP API errors * #define FTP_TRANSFER_IN_PROGRESS (ERROR_INTERNET_BASE + 110) #define FTP_DROPPED (ERROR_INTERNET_BASE + 111) #define FTP_NO_PASSIVE_MODE (ERROR_INTERNET_BASE + 112) * * additional Internet API error codes * #define ERROR_INTERNET_SECURITY_CHANNEL_ERROR (ERROR_INTERNET_BASE + 157) #define ERROR_INTERNET_UNABLE_TO_CACHE_FILE (ERROR_INTERNET_BASE + 158) #define ERROR_INTERNET_TCPIP_NOT_INSTALLED (ERROR_INTERNET_BASE + 159) #define ERROR_INTERNET_DISCONNECTED (ERROR_INTERNET_BASE + 163) #define ERROR_INTERNET_SERVER_UNREACHABLE (ERROR_INTERNET_BASE + 164) #define ERROR_INTERNET_PROXY_SERVER_UNREACHABLE (ERROR_INTERNET_BASE + 165) #define ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT (ERROR_INTERNET_BASE + 166) #define ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT (ERROR_INTERNET_BASE + 167) #define ERROR_INTERNET_SEC_INVALID_CERT (ERROR_INTERNET_BASE + 169) #define ERROR_INTERNET_SEC_CERT_REVOKED (ERROR_INTERNET_BASE + 170) * * handle types * #define ERROR_INTERNET_HANDLE_TYPE_INTERNET 1 #define ERROR_INTERNET_HANDLE_TYPE_CONNECT_FTP 2 #define ERROR_INTERNET_HANDLE_TYPE_CONNECT_GOPHER 3 #define ERROR_INTERNET_HANDLE_TYPE_CONNECT_HTTP 4 #define ERROR_INTERNET_HANDLE_TYPE_FTP_FIND 5 #define ERROR_INTERNET_HANDLE_TYPE_FTP_FIND_HTML 6 #define ERROR_INTERNET_HANDLE_TYPE_FTP_FILE 7 #define ERROR_INTERNET_HANDLE_TYPE_FTP_FILE_HTML 8 #define ERROR_INTERNET_HANDLE_TYPE_GOPHER_FIND 9 #define ERROR_INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML 10 #define ERROR_INTERNET_HANDLE_TYPE_GOPHER_FILE 11 #define ERROR_INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML 12 #define ERROR_INTERNET_HANDLE_TYPE_HTTP_REQUEST 13 #define BYTE_1 1 #define BYTE_2 256 #define BYTE_3 65536 #define BYTE_4 16777216 #define MAXDWORD 4294967295 * * File Caching Flags * #define INTERNET_FLAG_DONT_CACHE 67108864 #define INTERNET_FLAG_HYPERLINK 1024 #define INTERNET_FLAG_MAKE_PERSISTENT 33554432 #define INTERNET_FLAG_MUST_CACHE_REQUEST 16 #define INTERNET_FLAG_RELOAD 2147483648 #define INTERNET_FLAG_NO_CACHE_WRITE 67108864 #define INTERNET_FLAG_RESYNCHRONIZE 2048 #define INTERNET_FLAG_NEED_FILE 0x00000010 #define INTERNET_FLAG_OFFLINE 0x00000010 #define INTERNET_FLAG_DONT_CARE INTERNET_FLAG_NO_CACHE_WRITE * * File Attributes * #define FILE_ATTRIBUTE_READONLY 1 #define FILE_ATTRIBUTE_HIDDEN 2 #define FILE_ATTRIBUTE_SYSTEM 4 #define FILE_ATTRIBUTE_DIRECTORY 16 #define FILE_ATTRIBUTE_ARCHIVE 32 #define FILE_ATTRIBUTE_ENCRYPTED 64 #define FILE_ATTRIBUTE_NORMAL 128 #define FILE_ATTRIBUTE_TEMPORARY 256 #define FILE_ATTRIBUTE_SPARSE_FILE 512 #define FILE_ATTRIBUTE_REPARSE_POINT 1024 #define FILE_ATTRIBUTE_COMPRESSED 2048 #define FILE_ATTRIBUTE_OFFLINE 4096 #define BIT_ATTRIBUTE_READONLY 0 #define BIT_ATTRIBUTE_HIDDEN 1 #define BIT_ATTRIBUTE_SYSTEM 2 #define BIT_ATTRIBUTE_DIRECTORY 4 #define BIT_ATTRIBUTE_ARCHIVE 5 #define BIT_ATTRIBUTE_ENCRYPTED 6 #define BIT_ATTRIBUTE_NORMAL 7 #define BIT_ATTRIBUTE_TEMPORARY 8 #define BIT_ATTRIBUTE_SPARSE_FILE 9 #define BIT_ATTRIBUTE_REPARSE_POINT 10 #define BIT_ATTRIBUTE_COMPRESSED 11 #define BIT_ATTRIBUTE_OFFLINE 12 * Flags for InternetAutodial #define INTERNET_AUTODIAL_FORCE_ONLINE 1 #define INTERNET_AUTODIAL_FORCE_UNATTENDED 2 #define INTERNET_AUTODIAL_FAILIFSECURITYCHECK 4 * * FTP *TYPE #define FTP_TRANSFER_TYPE_UNKNOWN 0 #define FTP_TRANSFER_TYPE_ASCII 1 #define FTP_TRANSFER_TYPE_BINARY 2 #define INTERNET_FLAG_TRANSFER_ASCII FTP_TRANSFER_TYPE_ASCII #define INTERNET_FLAG_TRANSFER_BINARY FTP_TRANSFER_TYPE_BINARY * Flags for InternetGetConnectedState #define INTERNET_CONNECTION_MODEM 1 #define INTERNET_CONNECTION_LAN 2 #define INTERNET_CONNECTION_PROXY 4 #define INTERNET_CONNECTION_MODEM_BUSY 8 #define INTERNET_RAS_INSTALLED 0x10 #define INTERNET_CONNECTION_OFFLINE 0x20 #define INTERNET_CONNECTION_CONFIGURED 0x40 #define FTP_TRANSFER_TYPE_MASK 3 && (FTP_TRANSFER_TYPE_ASCII | FTP_TRANSFER_TYPE_BINARY) * * Internet Variables #define INTERNET_INVALID_PORT_NUMBER 0 && use the protocol-specific default #define INTERNET_DEFAULT_FTP_PORT 21 && default for FTP servers #define INTERNET_DEFAULT_GOPHER_PORT 70 && " " gopher " #define INTERNET_DEFAULT_HTTP_PORT 80 && " " HTTP " #define INTERNET_DEFAULT_HTTPS_PORT 443 && " " HTTPS " #define INTERNET_DEFAULT_SOCKS_PORT 1080 && default for SOCKS firewall servers. #define MAX_CACHE_ENTRY_INFO_SIZE 4096 #define INTERNET_SERVICE_FTP 1 #define INTERNET_SERVICE_GOPHER 2 #define INTERNET_SERVICE_HTTP 3 #define INTERNET_FLAG_PASSIVE 0x08000000 && used for FTP connections #define INTERNET_FLAG_ASYNC 0x10000000 && this request is asynchronous (where supported) #define INTERNET_FLAG_FROM_CACHE 0x01000000 && #define INTERNET_OPEN_TYPE_PRECONFIG 0 && use registry configuration #define INTERNET_OPEN_TYPE_DIRECT 1 && direct to net #define INTERNET_OPEN_TYPE_PROXY 3 && via named proxy #define INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY 4 #define PRE_CONFIG_INTERNET_ACCESS INTERNET_OPEN_TYPE_PRECONFIG #define LOCAL_INTERNET_ACCESS INTERNET_OPEN_TYPE_DIRECT #define GATEWAY_INTERNET_ACCESS 2 && Internet via gateway #define CERN_PROXY_INTERNET_ACCESS INTERNET_OPEN_TYPE_PROXY #define cNULL CHR(0) #define MAX_PATH 260 #define GENERIC_READ 0x80000000 #define GENERIC_WRITE 0x40000000 #DEFINE _FTPS_RWF_Resume 0 #DEFINE _FTPS_RWF_File 0 #DEFINE _FTPS_RWF_String 1 #DEFINE _FTPS_RWF_Rewrite 2 #DEFINE _FTPS_RWF_Array 4 #DEFINE _FTPS_MaxFileSize 15000000 #DEFINE _FTPS_Option_CurrentDir 1 #DEFINE _FTPS_Option_DLL_Loaded 2 #DEFINE _FTPS_Option_Inet_Handle 3 #DEFINE _FTPS_Option_Connect_Handle 4 #DEFINE _FTPS_Option_IPAddress 5 #DEFINE _FTPS_Option_UserName 6 #DEFINE _FTPS_Option_Password 7 #DEFINE _FTPS_Option_Port 8 #DEFINE _FTPS_Option_UseProxy 9 #DEFINE _FTPS_FA_Maxsize 20 #DEFINE _FTPS_FA_Default 1 #DEFINE _FTPS_FA_AccessType 2 #DEFINE _FTPS_FA_ModeFile 3 #DEFINE _FTPS_FA_MF_Error 2 #DEFINE _FTPS_FA_MF_Append 1 #DEFINE _FTPS_FA_MF_New 0 #DEFINE _FTPS_UE_FNDEF -50001 && file not define #DEFINE _FTPS_UE_FNEXISTS -50002 && file not exists #DEFINE _FTPS_UE_CNF -50003 && Cannot read file #DEFINE _FTPS_UE_CCF -50004 && Cannot create file #DEFINE _FTPS_UE_COF -50005 && Cannot open file #DEFINE _FTPS_UE_CWF -50006 && Cannot write data to file #DEFINE _FTPS_UE_PLF -50007 && Parse list failed #IFNDEF CRLF #DEFINE CRLF CHR(13)+CHR(10) #DEFINE _FTPC_PL_EPLF 0 && EPLF #DEFINE _FTPC_PL_UNIX 1 && UNIX #DEFINE _FTPC_PL_MSWIN 2 && MSWIN #DEFINE _FTPC_PL_DOS 3 && DOS #DEFINE _FTPC_PL_NWL 4 && Novell #DEFINE _FTPC_PL_MAC 5 && Mac