You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
274 lines
6.7 KiB
274 lines
6.7 KiB
/////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Copyright (c) 1998-1999 Microsoft Corporation
|
|
//
|
|
// Module Name:
|
|
// SmbSSht.cpp
|
|
//
|
|
// Abstract:
|
|
// Implementation of the CFileShareSecuritySheet class.
|
|
//
|
|
// Author:
|
|
// Galen Barbee (galenb) February 12, 1998
|
|
//
|
|
// Revision History:
|
|
//
|
|
// Notes:
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#include "stdafx.h"
|
|
#include "resource.h"
|
|
#include "SmbSSht.h"
|
|
#include "AclUtils.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CFileShareSecuritySheet property page
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Message Maps
|
|
|
|
BEGIN_MESSAGE_MAP(CFileShareSecuritySheet, CPropertySheet)
|
|
//{{AFX_MSG_MAP(CFileShareSecuritySheet)
|
|
//}}AFX_MSG_MAP
|
|
// TODO: Modify the following lines to represent the data displayed on this page.
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// CFileShareSecuritySheet::CFileShareSecuritySheet
|
|
//
|
|
// Routine Description:
|
|
// constructor.
|
|
//
|
|
// Arguments:
|
|
// pParent [IN]
|
|
// strCaption [IN]
|
|
//
|
|
// Return Value:
|
|
// None.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CFileShareSecuritySheet::CFileShareSecuritySheet(
|
|
IN CWnd * pParent,
|
|
IN CString const & strCaption
|
|
) : CPropertySheet( strCaption, pParent ),
|
|
m_peo( NULL ),
|
|
m_ppp( NULL )
|
|
{
|
|
// TODO: Modify the following lines to represent the data displayed on this page.
|
|
//{{AFX_DATA_INIT(CFileShareSecuritySheet)
|
|
//}}AFX_DATA_INIT
|
|
|
|
} //*** CFileShareSecuritySheet::CFileShareSecuritySheet()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// CFileShareSecuritySheet::~CFileShareSecuritySheet
|
|
//
|
|
// Routine Description:
|
|
// Destructor.
|
|
//
|
|
// Arguments:
|
|
// None.
|
|
//
|
|
// Return Value:
|
|
// None.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CFileShareSecuritySheet::~CFileShareSecuritySheet(
|
|
void
|
|
)
|
|
{
|
|
} //*** CFileShareSecuritySheet::~CFileShareSecuritySheet()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// CFileShareSecuritySheet::HrInit
|
|
//
|
|
// Routine Description:
|
|
//
|
|
//
|
|
// Arguments:
|
|
// ppp [IN]
|
|
// peo [IN]
|
|
// strNodeName [IN]
|
|
// strShareName [IN]
|
|
//
|
|
// Return Value:
|
|
// hr
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
HRESULT CFileShareSecuritySheet::HrInit(
|
|
IN CFileShareParamsPage* ppp,
|
|
IN CExtObject* peo,
|
|
IN CString const& strNodeName,
|
|
IN CString const& strShareName
|
|
)
|
|
{
|
|
ASSERT( ppp != NULL );
|
|
ASSERT( peo != NULL );
|
|
|
|
HRESULT _hr = S_FALSE;
|
|
|
|
if ( ( peo != NULL ) && ( ppp != NULL ) )
|
|
{
|
|
m_ppp = ppp;
|
|
m_peo = peo;
|
|
m_strNodeName = strNodeName;
|
|
m_strShareName = strShareName;
|
|
|
|
_hr = m_page.HrInit( peo, this, strNodeName );
|
|
}
|
|
|
|
return _hr;
|
|
|
|
} //*** CFileShareSecuritySheet::HrInit()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// CFileShareSecuritySheet::DoDataExchange
|
|
//
|
|
// Routine Description:
|
|
// Do data exchange between the dialog and the class.
|
|
//
|
|
// Arguments:
|
|
// pDX [IN OUT] Data exchange object
|
|
//
|
|
// Return Value:
|
|
// None.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
void
|
|
CFileShareSecuritySheet::DoDataExchange(
|
|
CDataExchange * pDX
|
|
)
|
|
{
|
|
AFX_MANAGE_STATE( AfxGetStaticModuleState() );
|
|
|
|
// TODO: Modify the following lines to represent the data displayed on this page.
|
|
//{{AFX_DATA_MAP(CFileShareSecuritySheet)
|
|
//}}AFX_DATA_MAP
|
|
|
|
CPropertySheet::DoDataExchange( pDX );
|
|
|
|
} //*** CFileShareSecuritySheet::DoDataExchange()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// CFileShareSecuritySheet::OnInitDialog
|
|
//
|
|
// Routine Description:
|
|
// Handler for the WM_INITDIALOG message.
|
|
//
|
|
// Arguments:
|
|
// None.
|
|
//
|
|
// Return Value:
|
|
// TRUE We need the focus to be set for us.
|
|
// FALSE We already set the focus to the proper control.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
BOOL
|
|
CFileShareSecuritySheet::OnInitDialog(
|
|
void
|
|
)
|
|
{
|
|
AFX_MANAGE_STATE( AfxGetStaticModuleState() );
|
|
|
|
CPropertySheet::OnInitDialog();
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
|
|
} //*** CFileShareSecuritySheet::OnInitDialog()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// CFileShareSecuritySheet::BuildPropPageArray
|
|
//
|
|
// Routine Description:
|
|
// Overridden from CPropertySheet. Puts the security hpage into the
|
|
// PROPSHEETHEADER before calling ::PropertySheet().
|
|
//
|
|
// Arguments:
|
|
// None.
|
|
//
|
|
// Return Value:
|
|
// None.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
void
|
|
CFileShareSecuritySheet::BuildPropPageArray(
|
|
void
|
|
)
|
|
{
|
|
// delete existing prop page array
|
|
delete[] (PROPSHEETPAGE*) m_psh.ppsp; // delete any old PROPSHEETPAGEs
|
|
m_psh.ppsp = NULL;
|
|
|
|
// build new PROPSHEETPAGE array and coerce to an HPROPSHEETPAGE
|
|
m_psh.phpage = (HPROPSHEETPAGE *) new PROPSHEETPAGE[1];
|
|
|
|
m_psh.dwFlags &= ~PSH_PROPSHEETPAGE; // ensure that the hpage is used
|
|
m_psh.phpage[0] = m_page.GetHPage(); // assign the hpage
|
|
m_psh.nPages = 1;
|
|
|
|
} //*** CFileShareSecuritySheet::BuildPropPageArray()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
//++
|
|
//
|
|
// CFileShareSecuritySheet::AssertValid
|
|
//
|
|
// Routine Description:
|
|
// Overridden from CPropertySheet. Couldn't have an assertion that
|
|
// the PROPSHEETHEADER was using phpage instead of pspp...
|
|
// CPropertyPage::AssertValid() required that the flag PSH_PROPSHHETPAGE
|
|
// be set.
|
|
//
|
|
// Arguments:
|
|
// None.
|
|
//
|
|
// Return Value:
|
|
// None.
|
|
//
|
|
//--
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
#ifdef _DEBUG
|
|
void
|
|
CFileShareSecuritySheet::AssertValid(
|
|
void
|
|
) const
|
|
{
|
|
CWnd::AssertValid();
|
|
|
|
// NB: MFC is built using _WIN32_IE set to 0x0300. Until MFC moves up
|
|
// we cannot do the following checks because they don't align then
|
|
// _WIN32_IE is set to 0x0400.
|
|
#if ( _WIN32_IE == 0x0300 )
|
|
m_pages.AssertValid();
|
|
ASSERT( m_psh.dwSize == sizeof( PROPSHEETHEADER ) );
|
|
#endif
|
|
|
|
} //*** CFileShareSecuritySheet::AssertValid()
|
|
#endif // _DEBUG
|