69 lines
2.8 KiB
C++
69 lines
2.8 KiB
C++
//--------------------------------------------------------------------------
|
|
// dbrepair.h
|
|
//--------------------------------------------------------------------------
|
|
#pragma once
|
|
|
|
//--------------------------------------------------------------------------
|
|
// REPAIRSTATE
|
|
//--------------------------------------------------------------------------
|
|
typedef enum tagREPAIRSTATE {
|
|
REPAIR_VERIFYING,
|
|
REPAIR_FIXING
|
|
} REPAIRSTATE;
|
|
|
|
//--------------------------------------------------------------------------
|
|
// CDatabaseRepairUI
|
|
//--------------------------------------------------------------------------
|
|
class CDatabaseRepairUI : public IUnknown
|
|
{
|
|
public:
|
|
//----------------------------------------------------------------------
|
|
// Construction - Destruction
|
|
//----------------------------------------------------------------------
|
|
CDatabaseRepairUI(void);
|
|
~CDatabaseRepairUI(void);
|
|
|
|
//----------------------------------------------------------------------
|
|
// IUnknown Members
|
|
//----------------------------------------------------------------------
|
|
STDMETHODIMP QueryInterface(REFIID riid, LPVOID *ppv) { return(E_NOTIMPL); }
|
|
STDMETHODIMP_(ULONG) AddRef(void);
|
|
STDMETHODIMP_(ULONG) Release(void);
|
|
|
|
//----------------------------------------------------------------------
|
|
// CDatabaseRepairUI Members
|
|
//----------------------------------------------------------------------
|
|
HRESULT Initialize(LPCSTR pszFilePath, DWORD cMax);
|
|
HRESULT IncrementProgress(REPAIRSTATE tyState, DWORD cIncrement);
|
|
HRESULT SetProgress(REPAIRSTATE tyState, DWORD cCurrent);
|
|
HRESULT Reset(REPAIRSTATE tyState, DWORD cMax);
|
|
|
|
//----------------------------------------------------------------------
|
|
// Thread Entry
|
|
//----------------------------------------------------------------------
|
|
static DWORD ThreadEntry(LPDWORD pdwParam);
|
|
static INT_PTR CALLBACK ProgressDlgProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
|
|
|
|
private:
|
|
//----------------------------------------------------------------------
|
|
// Private Members
|
|
//----------------------------------------------------------------------
|
|
void _Update(REPAIRSTATE tyState);
|
|
|
|
private:
|
|
//----------------------------------------------------------------------
|
|
// Private Data
|
|
//----------------------------------------------------------------------
|
|
LONG m_cRef;
|
|
LPSTR m_pszFile;
|
|
DWORD m_cMax;
|
|
DWORD m_cCurrent;
|
|
DWORD m_cPercent;
|
|
HANDLE m_hThread;
|
|
DWORD m_dwThreadId;
|
|
HWND m_hwnd;
|
|
REPAIRSTATE m_tyState;
|
|
HRESULT m_hrResult;
|
|
HANDLE m_hEvent;
|
|
};
|