|
|
// svcprop1.cpp : implementation file
//
#include "stdafx.h"
#include "compdata.h"
#include "resource.h"
#include "shrpub.h"
#include "mvedit.h"
#include "filesvc.h"
#include "dataobj.h" // CFileMgmtDataObject::m_CFMachineName
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
/////////////////////////////////////////////////////////////////////////////
// CSharePagePublish property page
IMPLEMENT_DYNCREATE(CSharePagePublish, CSharePage)
CSharePagePublish::CSharePagePublish() : CSharePage(CSharePagePublish::IDD) { m_bExposeKeywords = TRUE; m_bExposeManagedBy = TRUE;
//{{AFX_DATA_INIT(CSharePagePublish)
m_iPublish = BST_UNCHECKED; //}}AFX_DATA_INIT
}
CSharePagePublish::~CSharePagePublish() { m_handle = NULL; // let General page call MMCFreeNotifyHandle
}
BOOL CSharePagePublish::Load( CFileMgmtComponentData* pFileMgmtData, LPDATAOBJECT piDataObject ) { if ( FALSE == CSharePage::Load (pFileMgmtData, piDataObject) ) return FALSE;
if (FILEMGMT_SMB != m_transport) return FALSE;
return TRUE; }
void CSharePagePublish::DoDataExchange(CDataExchange* pDX) { CSharePage::DoDataExchange(pDX); //{{AFX_DATA_MAP(CSharePagePublish)
DDX_Check(pDX, IDC_CHECK_SHRPUB_PUBLISH, m_iPublish);
DDX_Text(pDX, IDC_STATIC_SHRPUB_ERRORMSG, m_strError); DDX_Text(pDX, IDC_EDIT_SHRPUB_UNCPATH, m_strUNCPath); DDX_Text(pDX, IDC_EDIT_SHRPUB_DESCRIPTION, m_strDescription); DDX_Text(pDX, IDC_EDIT_SHRPUB_KEYWORDS, m_strKeywords); DDX_Text(pDX, IDC_EDIT_SHRPUB_MANAGEDBY, m_strManagedBy); DDV_MaxChars(pDX, m_strDescription, 1024); // AD schema defines its upper to be 1024
//}}AFX_DATA_MAP
if ( !pDX->m_bSaveAndValidate ) { if (BST_CHECKED != m_iPublish) { GetDlgItem(IDC_LABEL_SHRPUB_UNCPATH)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_UNCPATH)->EnableWindow(FALSE); GetDlgItem(IDC_LABEL_SHRPUB_DESCRIPTION)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_DESCRIPTION)->EnableWindow(FALSE); GetDlgItem(IDC_LABEL_SHRPUB_KEYWORDS)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_KEYWORDS)->EnableWindow(FALSE); GetDlgItem(IDC_LABEL_SHRPUB_MANAGEDBY)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_MANAGEDBY)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_SHRPUB_CHANGE)->EnableWindow(FALSE); } } } // CSharePagePublish::DoDataExchange()
BEGIN_MESSAGE_MAP(CSharePagePublish, CSharePage) //{{AFX_MSG_MAP(CSharePagePublish)
ON_MESSAGE(WM_HELP, OnHelp) ON_MESSAGE(WM_CONTEXTMENU, OnContextHelp) ON_EN_CHANGE(IDC_EDIT_SHRPUB_DESCRIPTION, OnChangeEditDescription) ON_BN_CLICKED(IDC_BUTTON_SHRPUB_CHANGE, OnChangeKeywords) ON_EN_CHANGE(IDC_EDIT_SHRPUB_MANAGEDBY, OnChangeEditManagedBy) ON_BN_CLICKED(IDC_CHECK_SHRPUB_PUBLISH, OnShrpubPublish) //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSharePagePublish message handlers
#define MAX_RDN_KEY_SIZE 64 // ds\src\inc\ntdsa.h
BOOL CSharePagePublish::OnInitDialog() { BOOL bPublish = FALSE; HRESULT hr = S_OK;
BOOL bLongShareName = (lstrlen(m_strShareName) > MAX_RDN_KEY_SIZE); if (!bLongShareName) m_pFileMgmtData->GetFileServiceProvider(FILEMGMT_SMB)->ReadSharePublishInfo( m_strMachineName, m_strShareName, &bPublish, m_strUNCPath, m_strDescription, m_strKeywords, m_strManagedBy ); if (bLongShareName || FAILED(hr)) { if (bLongShareName) { (void) GetMsg(m_strError, 0, IDS_MSG_SHRPUB_ERRMSG_64); } else { (void) GetMsg(m_strError, hr, IDS_MSG_READ_SHRPUB, m_strShareName); }
//
// show errmsg, hide all the other controls
//
GetDlgItem(IDC_CHECK_SHRPUB_PUBLISH)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CHECK_SHRPUB_PUBLISH)->EnableWindow(FALSE);
GetDlgItem(IDC_LABEL_SHRPUB_UNCPATH)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LABEL_SHRPUB_UNCPATH)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_UNCPATH)->ShowWindow(SW_HIDE); GetDlgItem(IDC_EDIT_SHRPUB_UNCPATH)->EnableWindow(FALSE); GetDlgItem(IDC_LABEL_SHRPUB_DESCRIPTION)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LABEL_SHRPUB_DESCRIPTION)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_DESCRIPTION)->ShowWindow(SW_HIDE); GetDlgItem(IDC_EDIT_SHRPUB_DESCRIPTION)->EnableWindow(FALSE); GetDlgItem(IDC_LABEL_SHRPUB_KEYWORDS)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LABEL_SHRPUB_KEYWORDS)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_KEYWORDS)->ShowWindow(SW_HIDE); GetDlgItem(IDC_EDIT_SHRPUB_KEYWORDS)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_SHRPUB_CHANGE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_BUTTON_SHRPUB_CHANGE)->EnableWindow(FALSE); GetDlgItem(IDC_LABEL_SHRPUB_MANAGEDBY)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LABEL_SHRPUB_MANAGEDBY)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_MANAGEDBY)->ShowWindow(SW_HIDE); GetDlgItem(IDC_EDIT_SHRPUB_MANAGEDBY)->EnableWindow(FALSE); } else { GetDlgItem(IDC_STATIC_SHRPUB_ERRORMSG)->ShowWindow(SW_HIDE); GetDlgItem(IDC_STATIC_SHRPUB_ERRORMSG)->EnableWindow(FALSE);
if (!m_bExposeKeywords) { GetDlgItem(IDC_LABEL_SHRPUB_KEYWORDS)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LABEL_SHRPUB_KEYWORDS)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_KEYWORDS)->ShowWindow(SW_HIDE); GetDlgItem(IDC_EDIT_SHRPUB_KEYWORDS)->EnableWindow(FALSE); GetDlgItem(IDC_BUTTON_SHRPUB_CHANGE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_BUTTON_SHRPUB_CHANGE)->EnableWindow(FALSE); }
if (!m_bExposeManagedBy) { GetDlgItem(IDC_LABEL_SHRPUB_MANAGEDBY)->ShowWindow(SW_HIDE); GetDlgItem(IDC_LABEL_SHRPUB_MANAGEDBY)->EnableWindow(FALSE); GetDlgItem(IDC_EDIT_SHRPUB_MANAGEDBY)->ShowWindow(SW_HIDE); GetDlgItem(IDC_EDIT_SHRPUB_MANAGEDBY)->EnableWindow(FALSE); }
if (!bPublish) { if (m_strMachineName.Left(2) == _T("\\\\")) { m_strUNCPath = m_strMachineName; } else { m_strUNCPath = _T("\\\\"); m_strUNCPath += m_strMachineName; } m_strUNCPath += _T("\\"); m_strUNCPath += m_strShareName; }
m_iPublish = (bPublish ? BST_CHECKED : BST_UNCHECKED); }
return CSharePage::OnInitDialog(); }
/////////////////////////////////////////////////////////////////////
// Help
BOOL CSharePagePublish::OnHelp(WPARAM /*wParam*/, LPARAM lParam) { return DoHelp(lParam, HELP_DIALOG_TOPIC(IDD_SHAREPROP_PUBLISH)); }
BOOL CSharePagePublish::OnContextHelp(WPARAM wParam, LPARAM /*lParam*/) { return DoContextHelp(wParam, HELP_DIALOG_TOPIC(IDD_SHAREPROP_PUBLISH)); }
BOOL CSharePagePublish::OnApply() { if ( IsModified () ) { ASSERT(NULL != m_pFileMgmtData); // UpdateData (TRUE) has already been called by OnKillActive () just before OnApply ()
HRESULT hr = m_pFileMgmtData->GetFileServiceProvider(FILEMGMT_SMB)->WriteSharePublishInfo( m_strMachineName, m_strShareName, (BST_CHECKED==m_iPublish), m_strDescription, m_strKeywords, m_strManagedBy); if (FAILED(hr)) { DoErrMsgBox(m_hWnd, MB_OK | MB_ICONEXCLAMATION, hr, IDS_POPUP_WRITE_SHRPUB, m_strShareName); return FALSE; } }
return CSharePage::OnApply(); }
void CSharePagePublish::OnChangeEditDescription() { SetModified (TRUE); }
#define KEYTWORDS_UPPER_RANGER 256
void CSharePagePublish::OnChangeKeywords() { if (S_OK == InvokeMultiValuedStringEditDlg( this, m_strKeywords, _T(";"), IDS_MVSTRINGEDIT_TITLE_KEYWORDS, IDS_MVSTRINGEDIT_TEXT_KEYWORDS, KEYTWORDS_UPPER_RANGER)) { SetDlgItemText(IDC_EDIT_SHRPUB_KEYWORDS, m_strKeywords); SetModified (TRUE); } }
void CSharePagePublish::OnChangeEditManagedBy() { SetModified (TRUE); }
void CSharePagePublish::OnShrpubPublish() { BOOL bPublish = (BST_CHECKED == IsDlgButtonChecked(IDC_CHECK_SHRPUB_PUBLISH));
GetDlgItem(IDC_LABEL_SHRPUB_UNCPATH)->EnableWindow(bPublish); GetDlgItem(IDC_EDIT_SHRPUB_UNCPATH)->EnableWindow(bPublish); GetDlgItem(IDC_LABEL_SHRPUB_DESCRIPTION)->EnableWindow(bPublish); GetDlgItem(IDC_EDIT_SHRPUB_DESCRIPTION)->EnableWindow(bPublish); GetDlgItem(IDC_LABEL_SHRPUB_KEYWORDS)->EnableWindow(bPublish); GetDlgItem(IDC_EDIT_SHRPUB_KEYWORDS)->EnableWindow(bPublish); GetDlgItem(IDC_LABEL_SHRPUB_MANAGEDBY)->EnableWindow(bPublish); GetDlgItem(IDC_EDIT_SHRPUB_MANAGEDBY)->EnableWindow(bPublish); GetDlgItem(IDC_BUTTON_SHRPUB_CHANGE)->EnableWindow(bPublish);
SetModified (TRUE); }
|