共用方式為


LPPROGRESS_ROUTINE回呼函式 (winbase.h)

CopyFileExMoveFileTransactedMoveFileWithProgress 函式搭配使用的應用程式定義回呼函式。 當復本或移動作業的一部分完成時,就會呼叫它。 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 的原因。 此參數可以是下列其中一個值。

意義
CALLBACK_CHUNK_FINISHED
0x00000000
已複製資料檔的另一個部分。
CALLBACK_STREAM_SWITCH
0x00000001
另一個數據流已建立,即將複製。 這是第一次叫用回呼例程時所指定的回呼原因。

[in] hSourceFile

來源檔案的句柄。

[in] hDestinationFile

目的地檔案的句柄

[in, optional] lpData

CopyFileExMoveFileTransactedMoveFileWithProgress 傳遞至 CopyProgressRoutine 的自變數。

傳回值

CopyProgressRoutine 函式應該會傳回下列其中一個值。

傳回碼/值 Description
PROGRESS_CANCEL
1
取消複製作業,並刪除目的地檔案。
PROGRESS_CONTINUE
0
繼續複製作業。
PROGRESS_QUIET
3
繼續複製作業,但停止叫用 CopyProgressRoutine 來報告進度。
PROGRESS_STOP
2
停止複製作業。 稍後可以重新啟動。

備註

應用程式可以使用這項資訊來顯示進度列,其中顯示以檔案大小總計百分比複製的位元組總數。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 winbase.h (包含 Windows.h)

另請參閱

CopyFileEx

檔案管理功能

MoveFileTransacted

MoveFileWithProgress