winamp/Src/burnlib/uiEraseMedium.h
2024-09-24 14:54:57 +02:00

52 lines
1.4 KiB
C++

#pragma once
#include "./main.h"
#include "./eraseMedium.h"
#define ERASEMEDIUMUI_OK 0x000
#define ERASEMEDIUMUI_ERROR 0x001
#define ERASEMEDIUMUI_CANCELED 0x002
#define ERASEMEDIUMUI_PRIMOSDKERROR 0x101
#define ERASEMEDIUMUI_UNABLETOCREATEDIALOG 0x102
#define ERASEMEDIUMUI_MESSAGEPUMPERROR 0x103
#define ERASEMEDIUMUI_DRIVENOTSET 0x104
#define ERASEMEDIUMUI_PRIMOSDKNOTSET 0x105
#define ERASEMEDIUMUI_UNABLETOCREATEOBJECT 0x106
class EraseMediumUI
{
public:
BURNLIB_API EraseMediumUI(void);
BURNLIB_API ~EraseMediumUI(void);
public:
BURNLIB_API DWORD Erase(DWORD drive, BOOL discCheck, HWND ownerWnd);
BURNLIB_API DWORD SetEject(int ejectmode);
protected:
static LRESULT CALLBACK PrepareWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
static LRESULT CALLBACK EraseWndProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
void OnPrepareInit(HWND hwndDlg);
void OnPrepareOk();
void OnEraseInit(HWND hwndDlg);
void OnEraseTimerClock(void);
void OnEraseClose(DWORD exitCode);
static DWORD CALLBACK OnEraseNotify(void *sender, void *param, DWORD eraseCode, DWORD primoCode);
protected:
DWORD drive;
HWND prepareWnd;
HWND eraseWnd;
EraseMedium *eraseMedium;
DWORD eraseMode;
DWORD startTick;
unsigned int actualTime;
unsigned int estimateTime;
DWORD eraseCode;
DWORD primoCode;
BOOL discCheck;
};