how to change default timeout in Wininet.dll...

MBMSOFT

Registered User.
Local time
Today, 02:25
Joined
Jan 29, 2010
Messages
90
I need to decrease default timeout (which is about 30 sec) in executing the followed code

Code:
Private Const BUF_SIZE                      As Long = 4096  ' allocation buffer
Private Const INVALID_HANDLE_VALUE          As Long = (-1)
Private Const CREATE_ALWAYS                 As Long = &H2&
Private Const GENERIC_WRITE                 As Long = &H40000000
Private Const INTERNET_OPEN_TYPE_PRECONFIG  As Long = 1
Private Const INTERNET_FLAG_NO_CACHE_WRITE  As Long = &H4000000
Private Const INTERNET_FLAG_RELOAD          As Long = &H80000000
Private Const INTERNET_FLAG_RESYNCHRONIZE   As Long = &H800&
Private Const HTTP_QUERY_CONTENT_LENGTH     As Long = &H5&
Private Const HTTP_QUERY_FLAG_NUMBER        As Long = &H20000000
Private Const WININET_API_FLAG_SYNC         As Long = &H4&

Private Const INTERNET_OPTION_CONNECT_TIMEOUT         As Long = 1 * 1000 '??????

Private Declare Function CreateFileW Lib "Kernel32.dll" (ByVal lpFileName As Long, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function WriteFile Lib "Kernel32.dll" (ByVal hFile As Long, ByVal lpBuffer As Long, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Long) As Long
Private Declare Function CloseHandle Lib "Kernel32.dll" (ByVal hObject As Long) As Long
Private Declare Function InternetOpenW Lib "Wininet.dll" (ByVal lpszAgent As Long, ByVal dwAccessType As Long, ByVal lpszProxyName As Long, ByVal lpszProxyBypass As Long, ByVal dwFlags As Long) As Long
Private Declare Function InternetOpenUrlW Lib "Wininet.dll" (ByVal hInternet As Long, ByVal lpszUrl As Long, ByVal lpszHeaders As Long, ByVal dwHeadersLength As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Long


Private Declare Function InternetReadFile Lib "Wininet.dll" (ByVal hFile As Long, ByVal lpBuffer As Long, ByVal dwNumberOfBytesToRead As Long, lpdwNumberOfBytesRead As Long) As Long
Private Declare Function InternetCloseHandle Lib "Wininet.dll" (ByVal hInternet As Long) As Long
Private Declare Function HttpQueryInfoW Lib "Wininet.dll" (ByVal hRequest As Long, ByVal dwInfoLevel As Long, ByRef lpvBuffer As Long, ByRef lpdwBufferLength As Long, ByRef lpdwIndex As Long) As Long
'egl1044

Private Function GetContentLength(ByVal url As String) As Long
    Dim hInternet       As Long
    Dim hRequest        As Long
    Dim dwFileSize      As Long
    Dim dwLength        As Long
    Dim dwIndex         As Long


    dwLength = 4 ' DWORD 32 bit value buffer length.
    hInternet = InternetOpenW(0, 1, 0, 0, WININET_API_FLAG_SYNC)
        
    hRequest = InternetOpenUrlW(hInternet, StrPtr(url), 0, 0, 0, 0)
    If HttpQueryInfoW(hRequest, HTTP_QUERY_CONTENT_LENGTH Or HTTP_QUERY_FLAG_NUMBER, _
        dwFileSize, dwLength, dwIndex) Then
        GetContentLength = dwFileSize
    Else
        GetContentLength = (-1)
    End If
    InternetCloseHandle hRequest
    InternetCloseHandle hInternet
End Function
If some idea Pls help,
Thanks...
 
Last edited:

Users who are viewing this thread

Back
Top Bottom