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 函式應該會傳回下列其中一個值。
傳回碼/值 | Description |
---|---|
|
取消複製作業,並刪除目的地檔案。 |
|
繼續複製作業。 |
|
繼續複製作業,但停止叫用 CopyProgressRoutine 來報告進度。 |
|
停止複製作業。 稍後可以重新啟動。 |
備註
應用程式可以使用這項資訊來顯示進度列,其中顯示以檔案大小總計百分比複製的位元組總數。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winbase.h (包含 Windows.h) |