2025-04-27 07:49:33 -04:00

77 lines
1.4 KiB
C++

/*++
Copyright (C) 1999-2001 Microsoft Corporation
Module Name:
BackupRestore.H
Abstract:
Backup Restore Interface.
History:
--*/
class CWbemBackupRestore : IWbemBackupRestore
{
protected:
TCHAR *m_pDbDir;
TCHAR *m_pWorkDir;
long m_cRef;
HINSTANCE m_hInstance;
public:
CWbemBackupRestore(HINSTANCE hInstance);
~CWbemBackupRestore(void)
{
delete [] m_pDbDir;
delete [] m_pWorkDir;
}
//IUnknown members
STDMETHODIMP QueryInterface(REFIID riid, LPVOID *ppv)
{
*ppv=NULL;
if (IID_IUnknown==riid || IID_IWbemBackupRestore==riid)
*ppv=this;
if (NULL!=*ppv)
{
AddRef();
return NOERROR;
}
return E_NOINTERFACE;
};
STDMETHODIMP_(ULONG) AddRef(void)
{
return ++m_cRef;
};
STDMETHODIMP_(ULONG) Release(void)
{
long lRef = InterlockedDecrement(&m_cRef);
if (0L == lRef)
delete this;
return lRef;
};
HRESULT STDMETHODCALLTYPE Backup(
LPCWSTR strBackupToFile,
long lFlags);
HRESULT STDMETHODCALLTYPE Restore(
LPCWSTR strRestoreFromFile,
long lFlags);
void InitEmpty(){};
TCHAR *GetDbDir();
TCHAR *GetFullFilename(const TCHAR *pszFilename);
TCHAR *GetExePath(const TCHAR *pszFilename);
HRESULT GetDefaultRepDriverClsId(CLSID &clsid);
};