The fTWUCallback typedef defines the callback function prototype used as a general event/progress callback. The actual callback function may have any valid C/C++ name, but it must follow the prototype defined by the fTWUCallback typedef.
typedef URESULT (*fTWUCallback)(
TWUHANDLE hSession,
int nEventCode,
const TCHAR *pszEventMsg,
UINT64 ulProgress,
UINT64 ulTotal,
LPARAM lCookie
);
Delphi version:
type fTWUCallback = function(
hSession: TWUHANDLE;
nEventCode: Integer;
pszEventMessage: PTCHAR;
ulProgress: UINT64;
ulTotal: UINT64;
lCookie: LPARAM
): URESULT;
[Input] Pointer to a 0-terminated string that describes the event in a user-friendly way. Your callback function may use this string for display in its user interface.
From release 3.3.2435 onwards, this parameter may contain additional strings that provide raw information about the event, for example a URL or file path. Use the TWUGetEventArg function to access the additional information, as in TWUGetEventArg(pszEventMsg, 0). See Callback events below for a per-event list of additional information.
If the function succeeds, it must return ERROR_SUCCESS (0) to continue the operation. If it fails or if you want to terminate the operation for some reason, the function must return a nonzero Win32 error code. In that case, the operation will be terminated as soon as possible.
Note: Some events ignore the return code; see the table below.
The following table defines the callback events passed to the callback function. Events marked * ignore the callback's return code. Unless otherwise noted, the event has no additional arguments.
| Name | Value | Description and arguments |
|---|---|---|
| TWU_CBEVENT_SESSION_OPENING | 0 | A new TWU session is about to open. |
| TWU_CBEVENT_SESSION_OPENERROR* | 1 | An error occurred while opening the TWU session. |
| TWU_CBEVENT_SESSION_OPENED | 2 | The TWU session has opened. |
| TWU_CBEVENT_SESSION_CLOSING* | 3 | The TWU session is about to close. |
| TWU_CBEVENT_SESSION_CLOSED* | 4 | The TWU session has closed. |
| TWU_CBEVENT_CONNECTING | 5 | TWU is attempting to connect to the Internet. |
| TWU_CBEVENT_CONNECTERROR* | 6 | An error occurred while connecting to the Internet. |
| TWU_CBEVENT_CONNECTED | 7 | TWU has connected to the Internet. |
| TWU_CBEVENT_URL_OPENING | 8 |
A download connection is about to be opened. Argument 0=Download URL |
| TWU_CBEVENT_URL_OPENERROR* | 9 |
An error occurred while opening the download connection. Argument 0=Download URL |
| TWU_CBEVENT_URL_OPENED | 10 |
The download connection has been opened. Argument 0=Download URL |
| TWU_CBEVENT_URL_CLOSED* | 11 |
The download connection has been closed. Argument 0=Download URL |
| TWU_CBEVENT_FILE_OPENING | 12 |
A local file to receive the download is about to be opened. Argument 0=Download URL |
| TWU_CBEVENT_FILE_OPENERROR* | 13 |
An error occurred while opening a local file. Argument 0=Download URL |
| TWU_CBEVENT_FILE_OPENED | 14 |
The local file has been opened. Argument 0=Download URL |
| TWU_CBEVENT_FILE_CLOSED* | 15 |
The local file has been closed. Argument 0=Download URL |
| TWU_CBEVENT_FILE_DELETING | 16 |
A local file is about to be deleted. Argument 0=File path to be deleted |
| TWU_CBEVENT_FILE_DELETED | 17 |
A local file has been deleted. Argument 0=File path that was deleted |
| TWU_CBEVENT_FILE_DELETEERROR | 18 |
An error occurred while deleting a local file. Argument 0=File path that could not be deleted |
| TWU_CBEVENT_DOWNLOAD_START | 19 |
The download process is about to start. Argument 0=Download URL |
| TWU_CBEVENT_DOWNLOAD_END | 20 |
The download process has been successfully completed. Argument 0=Download URL |
| TWU_CBEVENT_DOWNLOAD_READERROR* | 21 |
An error occurred while downloading data from the Internet. Argument 0=Download URL |
| TWU_CBEVENT_DOWNLOAD_WRITEERROR* | 22 |
An error occurred while writing data to a local file. Argument 0=Download URL |
| TWU_CBEVENT_DOWNLOAD_PROGRESS | 23 |
The next buffer full of data has been downloaded and saved. Argument 0=Download URL |
| TWU_CBEVENT_PACKAGE_ENUM | 24 |
A package is about to be processed. Argument 0=Package name |
| TWU_CBEVENT_PROCESS_STARTING | 25 |
An installation program is about to be started. Argument 0=Path to executable program |
| TWU_CBEVENT_PROCESS_STARTED | 26 |
An installation program has been started. Argument 0=Path to executable program |
| TWU_CBEVENT_PROCESS_ERROR* | 27 |
An error occurred while starting an installation program. Argument 0=Path to executable program |
| TWU_CBEVENT_PROCESS_TERMINATED* | 28 |
An synchronous installation program terminated. Argument 0=Path to executable program |
| TWU_CBEVENT_PIF_STARTPARSE | 29 |
Parsing of the downloaded PIF is about to start. Argument 0=Path to the local PIF copy |
| TWU_CBEVENT_PIF_ENDPARSE | 30 |
Parsing of the downloaded PIF is complete. Argument 0=Path to the local PIF copy |
| TWU_CBEVENT_PIF_STARTPACKAGE | 31 |
Parsing of a package section in the downloaded PIF is about to start. Argument 0=Path to the local PIF copy |
| TWU_CBEVENT_PIF_ENDPACKAGE | 32 |
Parsing of a package section in the downloaded PIF is completed. Argument 0=Path to the local PIF copy |