DWORD NPSNotifyRegister( enum NOTIFYTYPE NotifyType, NOTIFYCALLBACK NotifyCallBack );
NotifyType
The type of notification. This takes the values:
NotifyAddConnection | For adding connections. |
NotifyCancelConnection | For canceling connections. |
NotifyGetConnectionPerformance | For get connection performance estimates. |
NotifyCallBack
The notification function to be called back in the context of the application making the WNet request. A different callback address should be given for each type of notification registered.
WN_BAD_VALUE | NotifyType is not a valid operation type, or NotifyCallBack is NULL. |
WN_OUT_OF_MEMORY | MPR is out of memory, so the notification function was not registered. |
The notification function takes the same form for notification of all operations:
DWORD (FAR PASCAL *NOTIFYCALLBACK) pfNotifyCallback( LPNOTIFYINFO lpNotifyInfo, LPVOID lpOperationInfo );
lpNotifyInfo | Generic notification information common to all types of operation. |
lpOperationInfo | Pointer to a structure containing information specific to the operation being attempted. The structure is given below for each type of notification function. |
Returns WN_SUCCESS - the notification was processed without error. If dwNotifyStatus has the NOTIFY_PRE flag set, the operation will be attempted and *pfNotifyCallback called again with the NOTIFY_POST flag set in dwNotifyStatus. The return status in dwOperationStatus is returned to the user.
WN_RETRY | The operation failed and the notification function wants a retry. The operation will be retried by MPR and the pre-notification is not done a second time to this NP. This value should not be returned when being pre-notified or post-notified of a successful operation (if it is, it will be treated as WN_SUCCESS). |
WN_CANCEL | The user canceled the operation in some user interface produced within *pfNotifyCallback. WN_CANCEL is returned to the caller and a subsequent post-notification is not done to this NP, so any memory allocated for the context should be freed by the NP. This value should not be returned when being post-notified of a successful operation (if it is, it will be treated as WN_SUCCESS). |
Any other value is returned to the caller as the result of the operation attempt (unless in post-notification of a successful operation, in which case it is ignored), so should only be returned if there was some internal error in the notify function (such as WN_OUT_OF_MEMORY) or to alter the error return status code to the caller. If an error is returned in pre-notification, post-notification is not done to this NP. When in post-notification and an error is returned, NPSSetCustomText or NPSSetExtendedError may be called to specify the error text, but SetLastError does not need to be explicitly called.