static internal extern bool MoveFileWithProgressW([In] string existingFileName, [In] string newFileName, NativeCopyProgressRoutine lpProgressRoutine, object lpData, [MarshalAs(UnmanagedType.U4)] MoveFileOptions dwFlags);
static internal extern bool MoveFileTransactedW(string lpExistingFileName, string lpNewFileName, NativeCopyProgressRoutine lpProgressRoutine, IntPtr lpData, [MarshalAs(UnmanagedType.U4)] MoveFileOptions dwCopyFlags, SafeHandle hTransaction);
static internal extern bool CopyFileTransactedW(string lpExistingFileName, string lpNewFileName, NativeCopyProgressRoutine lpProgressRoutine, SafeHandle lpData, ref Int32 pbCancel, CopyOptions dwCopyFlags, SafeHandle hTransaction);