diff -r 7602d7fb60d9 -r 026da5437111 tools/installer/LocalCopyMethod.cpp --- a/tools/installer/LocalCopyMethod.cpp Fri Jul 11 06:51:21 2008 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,167 +0,0 @@ -#include "InstallerUtil.h" -#include "LocalCopyMethod.h" - -LocalCopyMethod g_LocalCopier; - -DWORD CALLBACK CopyProgressRoutine(LARGE_INTEGER TotalFileSize, - LARGE_INTEGER TotalBytesTransferred, - LARGE_INTEGER StreamSize, - LARGE_INTEGER StreamBytesTransferred, - DWORD dwStreamNumber, - DWORD dwCallbackReason, - HANDLE hSourceFile, - HANDLE hDestinationFile, - LPVOID lpData) -{ - ICopyProgress *progress = (ICopyProgress *)lpData; - - progress->UpdateProgress((size_t)TotalBytesTransferred.QuadPart, - (size_t)TotalFileSize.QuadPart); - - return PROGRESS_CONTINUE; -} - -LocalCopyMethod::LocalCopyMethod() -{ - m_pProgress = NULL; -} - -void LocalCopyMethod::SetOutputPath(const TCHAR *path) -{ - UTIL_PathFormat(m_OutputPath, - sizeof(m_OutputPath) / sizeof(TCHAR), - _T("%s"), - path); - - UTIL_PathFormat(m_CurrentPath, - sizeof(m_CurrentPath) / sizeof(TCHAR), - _T("%s"), - path); -} - -void LocalCopyMethod::TrackProgress(ICopyProgress *pProgress) -{ - m_pProgress = pProgress; -} - -bool LocalCopyMethod::CreateFolder(const TCHAR *name, TCHAR *buffer, size_t maxchars) -{ - TCHAR path[MAX_PATH]; - - UTIL_PathFormat(path, - sizeof(path) / sizeof(TCHAR), - _T("%s\\%s"), - m_CurrentPath, - name); - - if (CreateDirectory(path, NULL)) - { - return true; - } - - DWORD error = GetLastError(); - if (error == ERROR_ALREADY_EXISTS) - { - return true; - } - - GenerateErrorMessage(error, buffer, maxchars); - - return false; -} - -bool LocalCopyMethod::SetCurrentFolder(const TCHAR *path, TCHAR *buffer, size_t maxchars) -{ - if (path == NULL) - { - UTIL_PathFormat(m_CurrentPath, - sizeof(m_CurrentPath) / sizeof(TCHAR), - _T("%s"), - m_OutputPath); - } - else - { - UTIL_PathFormat(m_CurrentPath, - sizeof(m_CurrentPath) / sizeof(TCHAR), - _T("%s\\%s"), - m_OutputPath, - path); - } - - return true; -} - -bool LocalCopyMethod::SendFile(const TCHAR *path, TCHAR *buffer, size_t maxchars) -{ - const TCHAR *filename = GetFileFromPath(path); - - if (filename == NULL) - { - UTIL_Format(buffer, maxchars, _T("Invalid filename")); - return false; - } - - TCHAR new_path[MAX_PATH]; - UTIL_PathFormat(new_path, - sizeof(new_path) / sizeof(TCHAR), - _T("%s\\%s"), - m_CurrentPath, - filename); - - m_bCancelStatus = FALSE; - - if (m_pProgress != NULL) - { - m_pProgress->StartingNewFile(filename); - } - - if (CopyFileEx(path, - new_path, - m_pProgress ? CopyProgressRoutine : NULL, - m_pProgress, - &m_bCancelStatus, - 0) == 0) - { - /* Delete the file in case it was a partial copy */ - DeleteFile(new_path); - - GenerateErrorMessage(GetLastError(), buffer, maxchars); - - return false; - } - - if (m_pProgress != NULL) - { - m_pProgress->FileDone(UTIL_GetFileSize(path)); - } - - return true; -} - -void LocalCopyMethod::CancelCurrentCopy() -{ - m_bCancelStatus = TRUE; -} - -bool LocalCopyMethod::CheckForExistingInstall() -{ - TCHAR path[MAX_PATH]; - - UTIL_PathFormat(path, - sizeof(path) / sizeof(TCHAR), - _T("%s\\addons\\sourcemod"), - m_CurrentPath); - if (GetFileAttributes(path) == INVALID_FILE_ATTRIBUTES) - { - UTIL_PathFormat(path, - sizeof(path) / sizeof(TCHAR), - _T("%s\\cfg\\sourcemod"), - m_CurrentPath); - if (GetFileAttributes(path) == INVALID_FILE_ATTRIBUTES) - { - return false; - } - } - - return true; -}