windows-nt/Source/XPSP1/NT/shell/osshell/dskquota/ui/prshtext.h
2020-09-26 16:20:57 +08:00

124 lines
3.5 KiB
C++

#ifndef _INC_DSKQUOTA_PRSHTEXT_H
#define _INC_DSKQUOTA_PRSHTEXT_H
///////////////////////////////////////////////////////////////////////////////
/* File: prshtext.h
Description: DSKQUOTA property sheet extention declaration.
Revision History:
Date Description Programmer
-------- --------------------------------------------------- ----------
08/15/96 Initial creation. BrianAu
06/25/98 Disabled snapin code with #ifdef POLICY_MMC_SNAPIN. BrianAu
Switching to ADM-file approach to entering policy
data. Keeping snapin code available in case
we decide to switch back at a later time.
06/27/98 Added support for mounted volumes. BrianAu
*/
///////////////////////////////////////////////////////////////////////////////
#ifndef _INC_DSKQUOTA_H
# include "dskquota.h"
#endif
#ifndef _INC_DSKQUOTA_POLICY_H
# include "policy.h"
#endif
//
// Base class for all DiskQuotaControl property sheet extensions.
//
class DiskQuotaPropSheetExt : public IShellPropSheetExt
{
private:
LONG m_cRef;
DWORD m_dwDlgTemplateID;
DLGPROC m_lpfnDlgProc;
static UINT CALLBACK
DiskQuotaPropSheetExt::PropSheetPageCallback(
HWND hwnd,
UINT uMsg,
LPPROPSHEETPAGE ppsp);
#ifdef POLICY_MMC_SNAPIN
//
// This base class can't create a disk quota policy object.
// Defer to the policy prop page derived class.
//
virtual HRESULT CreateDiskQuotaPolicyObject(IDiskQuotaPolicy **ppOut)
{ return E_NOINTERFACE; }
#endif
//
// Prevent copying.
//
DiskQuotaPropSheetExt(const DiskQuotaPropSheetExt&);
DiskQuotaPropSheetExt& operator = (const DiskQuotaPropSheetExt&);
protected:
CVolumeID m_idVolume;
HPROPSHEETPAGE m_hPage;
PDISKQUOTA_CONTROL m_pQuotaControl;
INT m_cOleInitialized;
//
// Subclasses can act on these notifications if they wish.
// These are called from PropSheetPageCallback().
//
virtual UINT OnPropSheetPageCreate(LPPROPSHEETPAGE ppsp)
{ return 1; }
virtual VOID OnPropSheetPageRelease(LPPROPSHEETPAGE ppsp) { }
HRESULT GetQuotaController(IDiskQuotaControl **ppqc);
public:
DiskQuotaPropSheetExt(VOID);
//
// Need to call subclass destructor when Release()
// destroys "this".
//
virtual ~DiskQuotaPropSheetExt(VOID);
HRESULT Initialize(const CVolumeID& idVolume,
DWORD dwDlgTemplateID,
DLGPROC lpfnDlgProc);
//
// IUnknown methods.
//
STDMETHODIMP
QueryInterface(
REFIID,
LPVOID *);
STDMETHODIMP_(ULONG)
AddRef(
VOID);
STDMETHODIMP_(ULONG)
Release(
VOID);
//
// IShellPropSheetInit methods.
//
STDMETHODIMP
AddPages(
LPFNADDPROPSHEETPAGE lpfnAddPage,
LPARAM lParam);
STDMETHODIMP
ReplacePage(
UINT uPageID,
LPFNADDPROPSHEETPAGE lpfnAddPage,
LPARAM lParam)
{ return E_NOTIMPL; }
};
#endif // _INC_DSKQUOTA_PRSHTEXT_H