99 lines
2.1 KiB
C++
99 lines
2.1 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// 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;
|
|
}
|