Win32 API 日本語リファレンス
ホーム › Storage.FileSystem › LPPROGRESS_ROUTINE

LPPROGRESS_ROUTINE

コールバック

シグネチャ

COPYPROGRESSROUTINE_PROGRESS LPPROGRESS_ROUTINE(
    LONGLONG TotalFileSize,
    LONGLONG TotalBytesTransferred,
    LONGLONG StreamSize,
    LONGLONG StreamBytesTransferred,
    DWORD dwStreamNumber,
    LPPROGRESS_ROUTINE_CALLBACK_REASON dwCallbackReason,
    HANDLE hSourceFile,
    HANDLE hDestinationFile,
    void* lpData
);

パラメーター

フィールド型説明
TotalFileSizeLONGLONGファイルの合計サイズ (バイト単位)。
TotalBytesTransferredLONGLONGコピー操作の開始以降に、コピー元ファイルからコピー先ファイルへ転送されたバイトの合計数。
StreamSizeLONGLONG現在のファイルストリームの合計サイズ (バイト単位)。
StreamBytesTransferredLONGLONGコピー操作の開始以降に、現在のストリームでコピー元ファイルからコピー先ファイルへ転送されたバイトの合計数。
dwStreamNumberDWORD現在のストリームへのハンドル。 CopyProgressRoutine が最初に呼び出されるとき、ストリーム番号は 1 です。
dwCallbackReasonLPPROGRESS_ROUTINE_CALLBACK_REASON

CopyProgressRoutine が呼び出された理由。 このパラメーターには、次のいずれかの値を指定できます。

値 意味
CALLBACK_CHUNK_FINISHED
0x00000000
データファイルの別の部分がコピーされました。
CALLBACK_STREAM_SWITCH
0x00000001
別のストリームが作成され、これからコピーされます。コールバックルーチンが最初に呼び出されるときは、この理由が渡されます。
hSourceFileHANDLEコピー元ファイルへのハンドル。
hDestinationFileHANDLEコピー先ファイルへのハンドル。
lpDatavoid*CopyFileEx、 MoveFileTransacted、または MoveFileWithProgress によって CopyProgressRoutine に渡された引数。

公式ドキュメント

<a href="/windows/desktop/api/winbase/nf-winbase-copyfileexa">CopyFileEx</a>、
<a href="/windows/desktop/api/winbase/nf-winbase-movefiletransacteda">MoveFileTransacted</a>、
<a href="/windows/desktop/api/winbase/nf-winbase-movefilewithprogressa">MoveFileWithProgress</a> の各関数で使用される、アプリケーション定義のコールバック関数です。この関数は、コピーまたは移動操作の一部が完了したときに呼び出されます。
<b>LPPROGRESS_ROUTINE</b> 型は、このコールバック関数へのポインターを定義します。
<b>CopyProgressRoutine</b> は、アプリケーション定義の関数名を表すプレースホルダーです。

戻り値

CopyProgressRoutine 関数は、 次のいずれかの値を返します。

リターンコード/値 説明
PROGRESS_CANCEL
1
コピー操作をキャンセルし、コピー先ファイルを削除します。
PROGRESS_CONTINUE
0
コピー操作を続行します。
PROGRESS_QUIET
3
コピー操作は続行しますが、進行状況を報告するための CopyProgressRoutine の呼び出しを停止します。
PROGRESS_STOP
2
コピー操作を停止します。後で再開できます。

解説(Remarks)

アプリケーションはこの情報を使用して、コピー済みのバイトの合計数をファイル全体のサイズに対する割合として示す進行状況バーを表示できます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)