Share via


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

CopyFileEx、MoveFileTransacted、または MoveFileWithProgress によって 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

File Management 関数

MoveFileTransacted

MoveFileWithProgress