<< Click to Display Table of Contents >> Navigation: ThinBASIC Modules > INet > INET_Internet_SetStatusCallback |
Description
Sets up a callback function that WinINet functions can call as progress is made during an operation
Syntax
INET_Internet_SetStatusCallback(hInternet, CallBackFunction)
Returns
None
Parameters
Name |
Type |
Optional |
Meaning |
hInternet |
Numeric |
No |
The handle for which the callback is set. Usually the handle returned by INET_Internet_OpenUrl function |
CallBackFunction |
Function |
No |
Name of a callback function to call when progress is made. |
Remarks
It is sometimes desirable to display status information during a long-term operation.
The structure of the callback function is fixed and MUST BE like the following:
CALLBACK Function MyStatusFunction( _
ByVal hInternet As Long , _
ByVal dwContext As Long , _
ByVal dwInternetStatus As Long , _
ByVal lpvStatusInformation As Long , _
ByVal dwStatusInformationLength As Long _
) As Long
Callback parameters
Name |
Type |
Optional |
Meaning |
hInternet |
Numeric |
No |
The handle for which the callback function is called. |
dwContext |
Numeric |
No |
Specifies the application-defined context value associated with hInternet. |
dwInternetStatus |
Numeric |
No |
A status code that indicates why the callback function is called. This parameter can be one of the following values. See INET Equates. for the list of possible values |
lpvStatusInformation |
Numeric |
Yes |
A pointer to additional status information. |
StatusInformationLength |
Numeric |
Yes |
The size, in bytes, of the data pointed to by lpvStatusInformation. |
Restrictions
See also
http://msdn.microsoft.com/en-us/library/aa385121(VS.85).aspx
Examples
'...
'---Set a callback for hInternet events. Driver will automatically call MyStatusFunction on status change
bResult = INET_Internet_SetStatusCallBack(hFile, MyStatusFunction)
'...
'------------------------------------------------------------------
' CallBack function automatically called by Internet driver when
' status change for a specific Internet handle to which a callback
' function has been installed.
' Parameters are mandatory and are defined my Microsoft
' callback template. More info at: http://msdn.microsoft.com/en-us/library/aa385121(VS.85).aspx
'------------------------------------------------------------------
CALLBACK Function MyStatusFunction( _
ByVal hInternet As Long , _ '---Mandatory in thinBasic and in API
ByVal dwContext As Long , _ '---Mandatory in thinBasic and in API
ByVal dwInternetStatus As Long , _ '---Mandatory in thinBasic and in API
ByVal lpvStatusInformation As Long , _ '---Optional in thinBasic, mandatory in API
ByVal dwStatusInformationLength As Long _ '---Optional in thinBasic, mandatory in API
) As Long
'------------------------------------------------------------------
Dim BytesReceived As DWORD AT 0
Static TotBytes As DWORD
Select Case dwInternetStatus
Case %INTERNET_STATUS_RECEIVING_RESPONSE
Case %INTERNET_STATUS_RESPONSE_RECEIVED
'--- Successfully received a response from the server.
'--- The lpvStatusInformation parameter points to a DWORD value that contains the number, in bytes, received.
SETAT(BytesReceived, lpvStatusInformation)
TotBytes += BytesReceived
'---ATTENTION: TotalBytes received can differ from total bytes of the file to be downloaded
Case Else
'---In case of other status, just decode it at the bottom.
End Select
End Function