/*!
 *
 *   M.F.O.R. - MoveFileOnReboot module.
 *
 */


#include <windows.h>


// API behavior mode
#define MFOR_MODE_DEFAULT      0
#define MFOR_MODE_FORCE_WINNT  1
#define MFOR_MODE_FORCE_WIN9X  2


// API result values
#define MFOR_ERROR 0
#define MFOR_OK    1
#define MFOR_ERROR_BAD_ALLOC 2
#define MFOR_ERROR_NO_PATH   3
#define MFOR_ERROR_TOO_LONG_WIN_DIR 4
#define MFOR_ERROR_UNKNOWN_OS       5
#define MFOR_ERROR_NOT_IMPLEMENTED  255
#define MFOR_WARN_OS_MISMATCH        256



#ifdef MAKING_MFOR_DLL
  #define MFOR_EXPORT  __declspec(dllexport)
#else
  #ifdef USING_MFOR_DLL
    #define MFOR_EXPORT  __declspec(dllimport)
  #else
    #define MFOR_EXPORT
  #endif
#endif

#ifdef __cplusplus
extern "C" {
#endif

/*!  MoveFileOnReboot
 *     Move(or delete) a file on reboot.
 */
MFOR_EXPORT
DWORD
__stdcall
MoveFileOnReboot (LPCTSTR aSrc, LPCTSTR aDst, DWORD aMode );


/*!  CancelMovingFileOnReboot
 */
MFOR_EXPORT
DWORD
__stdcall
CancelMovingFileOnReboot (LPCTSTR aFileName, DWORD aMode);


/*!  BeginEnumFileMovingOnReboot
 */
MFOR_EXPORT
void *
__stdcall
BeginEnumFileMovingOnReboot (DWORD aMode, LPTSTR aOutFirst, DWORD aSize);


/*!  GetNextFileMovingOnReboot
 */
MFOR_EXPORT
DWORD
__stdcall
GetNextFileMovingOnReboot (void * aHandle, LPTSTR aOutFileName, DWORD aSize);


/*!   EndEnumFileMovingOnReboot
 */
MFOR_EXPORT
DWORD
__stdcall
EndEnumFileMovingOnReboot (void * aHandle);


#ifdef __cplusplus
} // end of extern "C"
#endif




