1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #ifndef NULLSOFT_ERASEMEDIUM_HEADER
- #define NULLSOFT_ERASEMEDIUM_HEADER
- #include "./main.h"
- #include "./primosdk.h"
- #define ERASEMEDIUM_STATUS 0x0000
- #define ERASEMEDIUM_ERROR 0x1000
- // status messages
- #define ERASEMEDIUM_READY ((ERASEMEDIUM_STATUS) + 0x0001)
- #define ERASEMEDIUM_INITIALIZING ((ERASEMEDIUM_STATUS) + 0x0002)
- #define ERASEMEDIUM_ERASING ((ERASEMEDIUM_STATUS) + 0x0003)
- #define ERASEMEDIUM_FINISHING ((ERASEMEDIUM_STATUS) + 0x0004)
- #define ERASEMEDIUM_CANCELING ((ERASEMEDIUM_STATUS) + 0x0005)
- #define ERASEMEDIUM_COMPLETED ((ERASEMEDIUM_STATUS) + 0x0006)
- #define ERASEMEDIUM_ABORTED ((ERASEMEDIUM_STATUS) + 0x0007)
- // error messages
- #define ERASEMEDIUM_ALREADYSTARTED ((ERASEMEDIUM_ERROR) + 0x0001)
- #define ERASEMEDIUM_UNABLEINITPRIMO ((ERASEMEDIUM_ERROR) + 0x0002)
- #define ERASEMEDIUM_DEVICENOTREADY ((ERASEMEDIUM_ERROR) + 0x0003)
- #define ERASEMEDIUM_DISCINFOERROR ((ERASEMEDIUM_ERROR) + 0x0004)
- #define ERASEMEDIUM_DISCNOTERASABLE ((ERASEMEDIUM_ERROR) + 0x0005)
- #define ERASEMEDIUM_BEGINBURNFAILED ((ERASEMEDIUM_ERROR) + 0x0006)
- #define ERASEMEDIUM_ENDBURNFAILED ((ERASEMEDIUM_ERROR) + 0x0007)
- #define ERASEMEDIUM_ERASEMEDIUMFAILED ((ERASEMEDIUM_ERROR) + 0x0008)
- // callback returns
- #define ERASEMEDIUM_CONTINUE 0
- #define ERASEMEDIUM_STOP 1
- typedef DWORD (WINAPI *ERASEMEDIUMCALLBACK)(void*, void*, DWORD, DWORD);
- class EraseMedium
- {
- public:
- BURNLIB_API EraseMedium(void);
- BURNLIB_API ~EraseMedium(void);
- public:
- BURNLIB_API DWORD Start(DWORD drive, DWORD eraseMode, ERASEMEDIUMCALLBACK notifyCB, void *userParam, int block);
- BURNLIB_API void Stop(void);
- BURNLIB_API DWORD GetErrorCode(void) { return errorCode; }
- BURNLIB_API BOOL IsRunning(void) { return (NULL != hThread); }
- public:
- BURNLIB_API DWORD SetEject(DWORD eject);
- protected:
- DWORD OnNotify(DWORD eraseCode, DWORD primoCode);
- static DWORD WINAPI StatusThread(void* parameter);
- protected:
- WABURNSTRUCT bs;
- obj_primo *primoSDK;
- unsigned int eject;
- HANDLE hThread;
- HANDLE evntStop;
- HANDLE evntThreadExit;
- DWORD errorCode;
- void* userparam;
- ERASEMEDIUMCALLBACK notifyCB;
- };
- #endif //NULLSOFT_ERASEMEDIUM_HEADER
|