windows-nt/Source/XPSP1/NT/base/cluster/admin/cluadmex/aclutils.cpp

99 lines
2.1 KiB
C++
Raw Normal View History

2020-09-26 03:20:57 -05:00
/////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 1998 Microsoft Corporation
//
// Module Name:
// AclUtils.cpp
//
// Abstract:
// Various Access Control List (ACL) utilities.
//
// Author:
// Galen Barbee (galenb) February 11, 1998
//
// Revision History:
//
// Notes:
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "AclUtils.h"
#include "DllBase.h"
#include <lmerr.h>
class CAclUiDLL : public CDynamicLibraryBase
{
public:
CAclUiDLL()
{
m_lpszLibraryName = _T( "aclui.dll" );
m_lpszFunctionName = "CreateSecurityPage";
}
HPROPSHEETPAGE CreateSecurityPage( LPSECURITYINFO psi );
protected:
typedef HPROPSHEETPAGE (*ACLUICREATESECURITYPAGEPROC) (LPSECURITYINFO);
};
HPROPSHEETPAGE CAclUiDLL::CreateSecurityPage(
LPSECURITYINFO psi
)
{
ASSERT( m_hLibrary != NULL );
ASSERT( m_pfFunction != NULL );
return ( (ACLUICREATESECURITYPAGEPROC) m_pfFunction ) ( psi );
}
//////////////////////////////////////////////////////////////////////////
// static instances of the dynamically loaded DLL's
static CAclUiDLL g_AclUiDLL;
//+-------------------------------------------------------------------------
//
// Function: CreateClusterSecurityPage
//
// Synopsis: Create the common NT security hpage.
//
// Arguments: [psecinfo] - *psecinfo points to a security descriptor.
// Caller is responsible for freeing it.
//
// Returns: Valid hpage or 0 for error.
//
// History:
// GalenB 11-Feb-1998 Created.
//
//--------------------------------------------------------------------------
HPROPSHEETPAGE
CreateClusterSecurityPage(
CSecurityInformation* psecinfo
)
{
ASSERT( NULL != psecinfo );
HPROPSHEETPAGE hPage = 0;
if ( g_AclUiDLL.Load() )
{
psecinfo->AddRef();
hPage = g_AclUiDLL.CreateSecurityPage( psecinfo );
ASSERT( hPage != NULL );
if ( hPage == NULL )
{
TRACE( _T( "CreateClusterSecurityPage() - Failed to create security page.\r" ) );
}
psecinfo->Release();
}
else
{
TRACE( _T( "CreateClusterSecurityPage() - Failed to load AclUi.dll.\r" ) );
}
return hPage;
}