CopyFileExW

既存ファイルを新しいファイルにコピーし、コールバック関数を通じて進捗をアプリケーションに通知する。(CopyFileExW)

CopyFileExW lpExistingFileName, lpNewFileName, lpProgressRoutine, lpData, pbCancel, dwCopyFlags

lpExistingFileName : [wstr] 既存ファイルの名前。
lpNewFileName : [wstr] 新しいファイルの名前。
lpProgressRoutine : [int] ファイルの一部がコピーされるたびに呼ばれる、LPPROGRESS_ROUTINE 型のコールバック関数のアドレス。このパラメータは NULL でも構わない。進捗コールバック関数の詳細は CopyProgressRoutine 関数を参照。
lpData : [intptr] コールバック関数に渡される引数。このパラメータは NULL でも構わない。
pbCancel : [var] コピー操作中にこのフラグが TRUE に設定されると、操作がキャンセルされる。そうでなければコピー操作は完了まで続行される。
dwCopyFlags : [int] ファイルのコピー方法を指定するフラグ。このパラメータは以下の値の組み合わせで指定できる。

(プラグイン / モジュール : kernel32.dll)

解説

既存ファイルを新しいファイルにコピーし、コールバック関数を通じて進捗をアプリケーションに通知する。(CopyFileExW)

[戻り値]
関数が成功した場合、戻り値はゼロ以外。関数が失敗した場合、戻り値はゼロ。拡張エラー情報を取得するには GetLastError
を呼ぶ。ユーザが操作をキャンセルして lpProgressRoutine が PROGRESS_CANCEL
を返した場合、CopyFileEx はゼロを返し GetLastError は ERROR_REQUEST_ABORTED
を返す。この場合、部分的にコピーされたコピー先ファイルは削除される。lpProgressRoutine が PROGRESS_STOP
を返した場合、CopyFileEx はゼロを返し GetLastError は ERROR_REQUEST_ABORTED
を返す。この場合、部分的にコピーされたコピー先ファイルはそのまま残される。

[備考]
この関数は拡張属性、OLE 構造化ストレージ、NTFS
代替データストリーム、セキュリティリソース属性、ファイル属性を保持する。Windows 7、Windows Server 2008
R2、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP:
既存ファイルのセキュリティリソース属性 (ATTRIBUTE_SECURITY_INFORMATION) は、Windows 8 および
Windows Server 2012 までは新しいファイルにコピーされなかった。既存ファイルのセキュリティリソースプロパティ
(ATTRIBUTE_SECURITY_INFORMATION) は新しいファイルにコピーされる。Windows 7、Windows
Server 2008 R2、Windows Server 2008、Windows Vista、Windows Server
2003、Windows XP: 既存ファイルのセキュリティリソースプロパティは、Windows 8 および Windows Server
2012 までは新しいファイルにコピーされなかった。コピー先ファイルがすでに存在し FILE_ATTRIBUTE_HIDDEN または
FILE_ATTRIBUTE_READONLY 属性が設定されている場合、この関数は ERROR_ACCESS_DENIED
で失敗する。暗号化されたファイルを CopyFileEx
でコピーする場合、関数はソースファイルの暗号化に使われた鍵でコピー先ファイルを暗号化しようとする。それができない場合、既定の鍵で暗号化を試みる。どちらもできない場合、CopyFileEx
は ERROR_ENCRYPTION_FAILED エラーコードで失敗する。コピー先ファイルが暗号化できない場合でも CopyFileEx
にコピー操作を完了させたいなら、dwCopyFlags パラメータに
COPY_FILE_ALLOW_DECRYPTED_DESTINATION を含める。
COPY_FILE_COPY_SYMLINK が指定された場合、以下のルールが適用される。
(以下省略)

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs