windows-nt/Source/XPSP1/NT/shell/osshell/security/aclui/pagebase.h
2020-09-26 16:20:57 +08:00

56 lines
1.8 KiB
C++

//+-------------------------------------------------------------------------
//
// Microsoft Windows
//
// Copyright (C) Microsoft Corporation, 1996 - 1999
//
// File: pagebase.h
//
// This file contains the definition of the CSecurityPage base class
//
//--------------------------------------------------------------------------
#ifndef _PAGEBASE_H_
#define _PAGEBASE_H_
class CSecurityPage
{
protected:
SI_PAGE_TYPE m_siPageType;
LPSECURITYINFO m_psi;
LPSECURITYINFO2 m_psi2;
LPEFFECTIVEPERMISSION m_pei;
LPSecurityObjectTypeInfo m_psoti;
HRESULT m_hrComInit;
IDsObjectPicker *m_pObjectPicker;
SI_OBJECT_INFO m_siObjectInfo;
DWORD m_flLastOPOptions;
BOOL m_bStandalone;
BOOL m_bAbortPage;
HRESULT m_hrLastPSPCallbackResult;
public:
CSecurityPage( LPSECURITYINFO psi, SI_PAGE_TYPE siType );
virtual ~CSecurityPage( void );
HPROPSHEETPAGE CreatePropSheetPage(LPCTSTR pszDlgTemplate, LPCTSTR pszDlgTitle = NULL);
HRESULT GetObjectPicker(IDsObjectPicker **ppObjectPicker = NULL);
HRESULT GetUserGroup(HWND hDlg, BOOL bMultiSelect, PUSER_LIST *ppUserList);
BOOL IsEffective(){ return (m_pei != NULL) ;}
protected:
#if(_WIN32_WINNT >= 0x0500)
HRESULT InitObjectPicker(BOOL bMultiSelect);
#endif
virtual BOOL DlgProc(HWND, UINT, WPARAM, LPARAM) = 0;
virtual UINT PSPageCallback(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp);
static INT_PTR CALLBACK _DlgProc( HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam);
static UINT CALLBACK _PSPageCallback(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp);
};
typedef class CSecurityPage *LPSECURITYPAGE;
#endif /* _PAGEBASE_H_ */