134 lines
4.2 KiB
C++
134 lines
4.2 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 1998-2000 Microsoft Corporation
|
|
//
|
|
// Module Name:
|
|
// ClusPage.h
|
|
//
|
|
// Abstract:
|
|
// CClusterSecurityPage class declaration. This class will encapsulate
|
|
// the cluster security extension page.
|
|
//
|
|
// Implementation File:
|
|
// ClusPage.cpp
|
|
//
|
|
// Author:
|
|
// Galen Barbee (galenb) February 11, 1998
|
|
//
|
|
// Revision History:
|
|
//
|
|
// Notes:
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _CLUSPAGE_H_
|
|
#define _CLUSPAGE_H_
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Include Files
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _BASEPAGE_H_
|
|
#include "BasePage.h"
|
|
#endif //_BASEPAGE_H_
|
|
|
|
#ifndef _ACLBASE_H_
|
|
#include "AclBase.h"
|
|
#endif //_ACLBASE_H_
|
|
|
|
#include "ExtObj.h"
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Forward Class Declarations
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CClusterSecurityPage;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// External Class Declarations
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CClusterSecurityInformation security information
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CClusterSecurityInformation : public CSecurityInformation
|
|
{
|
|
STDMETHOD(GetSecurity)(
|
|
SECURITY_INFORMATION RequestedInformation,
|
|
PSECURITY_DESCRIPTOR * ppSecurityDescriptor,
|
|
BOOL fDefault
|
|
);
|
|
STDMETHOD(SetSecurity)(
|
|
SECURITY_INFORMATION SecurityInformation,
|
|
PSECURITY_DESCRIPTOR pSecurityDescriptor
|
|
);
|
|
|
|
public:
|
|
CClusterSecurityInformation( void );
|
|
virtual ~CClusterSecurityInformation( void )
|
|
{
|
|
} //*** ~CClusterSecurityInformation()
|
|
|
|
HRESULT HrInit( CClusterSecurityPage * pcsp, CString const & strServer, CString const & strNode );
|
|
|
|
protected:
|
|
CClusterSecurityPage* m_pcsp;
|
|
|
|
BOOL BSidInSD( IN PSECURITY_DESCRIPTOR pSD, IN PSID pSid );
|
|
HRESULT HrFixupSD( IN PSECURITY_DESCRIPTOR pSD );
|
|
HRESULT HrAddSidToSD( IN OUT PSECURITY_DESCRIPTOR * ppSD, IN PSID pSid );
|
|
|
|
CClusterSecurityPage* Pcsp( void ) { return m_pcsp; };
|
|
|
|
}; //*** class CClusterSecurityInformation
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CClusterSecurityPage security property page wrapper
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// KB: GalenB 18 Feb 1998
|
|
// This class only derives from CBasePropertyPage to get the
|
|
// DwRead() and DwWrite() methods. There is no hpage for this page in the
|
|
// parent sheet.
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
class CClusterSecurityPage : public CBasePropertyPage
|
|
{
|
|
public:
|
|
CClusterSecurityPage( void );
|
|
~CClusterSecurityPage( void );
|
|
|
|
HRESULT HrInit( IN CExtObject* peo );
|
|
const HPROPSHEETPAGE GetHPage( void ) const { return m_hpage; };
|
|
const PSECURITY_DESCRIPTOR Psec( void ) const { return m_psec; }
|
|
LPCTSTR StrClusterName( void ) const{ return Peo()->StrClusterName(); }
|
|
HRESULT HrSetSecurityDescriptor( IN PSECURITY_DESCRIPTOR psec );
|
|
|
|
protected:
|
|
PSECURITY_DESCRIPTOR m_psec;
|
|
PSECURITY_DESCRIPTOR m_psecPrev;
|
|
HPROPSHEETPAGE m_hpage;
|
|
HKEY m_hkey;
|
|
BOOL m_bSecDescModified;
|
|
CComObject< CClusterSecurityInformation > * m_psecinfo;
|
|
PSID m_pOwner;
|
|
PSID m_pGroup;
|
|
BOOL m_fOwnerDef;
|
|
BOOL m_fGroupDef;
|
|
|
|
void SetPermissions( IN const PSECURITY_DESCRIPTOR psec );
|
|
HRESULT HrGetSecurityDescriptor( void );
|
|
HRESULT HrGetSDOwner( IN const PSECURITY_DESCRIPTOR psec );
|
|
HRESULT HrGetSDGroup( IN const PSECURITY_DESCRIPTOR psec );
|
|
HRESULT HrSetSDOwner( IN PSECURITY_DESCRIPTOR psec );
|
|
HRESULT HrSetSDGroup( IN PSECURITY_DESCRIPTOR psec );
|
|
HRESULT HrGetSDFromClusterDB( OUT PSECURITY_DESCRIPTOR *ppsec );
|
|
|
|
}; //*** class CClusterSecurityPage
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#endif //_CLUSPAGE_H_
|