LPPROGRESS_ROUTINE回调函数 (winbase.h)
与 CopyFileEx、 MoveFileTransacted 和 MoveFileWithProgress 函数一起使用的应用程序定义的回调函数。 当复制或移动操作的一部分完成时,将调用它。 LPPROGRESS_ROUTINE类型定义指向此回调函数的指针。 CopyProgressRoutine 是应用程序定义的函数名称的占位符。
语法
LPPROGRESS_ROUTINE LpprogressRoutine;
DWORD LpprogressRoutine(
[in] LARGE_INTEGER TotalFileSize,
[in] LARGE_INTEGER TotalBytesTransferred,
[in] LARGE_INTEGER StreamSize,
[in] LARGE_INTEGER StreamBytesTransferred,
[in] DWORD dwStreamNumber,
[in] DWORD dwCallbackReason,
[in] HANDLE hSourceFile,
[in] HANDLE hDestinationFile,
[in, optional] LPVOID lpData
)
{...}
参数
[in] TotalFileSize
文件的总大小(以字节为单位)。
[in] TotalBytesTransferred
自复制操作开始以来,从源文件传输到目标文件的字节总数。
[in] StreamSize
当前文件流的总大小(以字节为单位)。
[in] StreamBytesTransferred
自复制操作开始以来,当前流中已从源文件传输到目标文件的字节总数。
[in] dwStreamNumber
当前流的句柄。 首次调用 CopyProgressRoutine 时,流号为 1。
[in] dwCallbackReason
调用 CopyProgressRoutine 的原因。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
复制了数据文件的另一部分。 |
|
另一个流已创建,即将复制。 这是首次调用回调例程时给定的回调原因。 |
[in] hSourceFile
源文件的句柄。
[in] hDestinationFile
目标文件的句柄
[in, optional] lpData
由 CopyFileEx、MoveFileTransacted 或 MoveFileWithProgress 传递给 CopyProgressRoutine 的参数。
返回值
CopyProgressRoutine 函数应返回以下值之一。
返回代码/值 | 说明 |
---|---|
|
取消复制操作并删除目标文件。 |
|
继续复制操作。 |
|
继续复制操作,但停止调用 CopyProgressRoutine 以报告进度。 |
|
停止复制操作。 以后可以重启它。 |
注解
应用程序可以使用此信息来显示进度栏,该进度栏显示复制的总字节数占文件大小的百分比。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winbase.h (包括 Windows.h) |