diff options
Diffstat (limited to 'lib/IFileOperation/file_op.h')
-rw-r--r-- | lib/IFileOperation/file_op.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/lib/IFileOperation/file_op.h b/lib/IFileOperation/file_op.h new file mode 100644 index 00000000..c33993ad --- /dev/null +++ b/lib/IFileOperation/file_op.h @@ -0,0 +1,62 @@ +// ************************************************************************** +// * This file is part of the FreeFileSync project. It is distributed under * +// * GNU General Public License: http://www.gnu.org/licenses/gpl.html * +// * Copyright (C) 2008-2011 ZenJu (zhnmju123 AT gmx.de) * +// ************************************************************************** + +#ifndef RECYCLER_DLL_H +#define RECYCLER_DLL_H + +#ifdef FILE_OP_DLL_EXPORTS +#define FILE_OP_DLL_API extern "C" __declspec(dllexport) +#else +#define FILE_OP_DLL_API extern "C" __declspec(dllimport) +#endif + +#include <zen/build_info.h> + + +namespace fileop +{ +/*-------------- + |declarations| + --------------*/ + +//COM needs to be initialized before calling any of these functions! CoInitializeEx/CoUninitialize + +FILE_OP_DLL_API +bool moveToRecycleBin(const wchar_t* fileNames[], + size_t fileNo); //size of fileNames array + +FILE_OP_DLL_API +bool copyFile(const wchar_t* sourceFile, + const wchar_t* targetFile); + +//if any of the functions above returns 'false', this message returns last error +FILE_OP_DLL_API +void getLastError(wchar_t* errorMessage, size_t errorBufferLen); + +/*---------- + |typedefs| + ----------*/ +typedef bool (*MoveToRecycleBinFct)(const wchar_t* fileNames[], size_t fileNo); +typedef bool (*CopyFileFct)(const wchar_t* sourceFile, const wchar_t* targetFile); +typedef void (*GetLastErrorFct)(wchar_t* errorMessage, size_t errorBufferLen); + +/*-------------- + |symbol names| + --------------*/ +//(use const pointers to ensure internal linkage) +const char moveToRecycleBinFctName[] = "moveToRecycleBin"; +const char copyFileFctName[] = "copyFile"; +const char getLastErrorFctName[] = "getLastError"; + +/*--------------- + |library names| + ---------------*/ +inline const wchar_t* getDllName() { return zen::is64BitBuild ? L"FileOperation_x64.dll" : L"FileOperation_Win32.dll"; } +} + + + +#endif //RECYCLER_DLL_H |