190 lines
4.6 KiB
C++
190 lines
4.6 KiB
C++
/*++
|
|
|
|
Copyright (C) 1998-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
newqdlg.cpp
|
|
|
|
Abstract:
|
|
|
|
Implementation of the new log/alert creation dialog box.
|
|
|
|
--*/
|
|
|
|
#include "stdafx.h"
|
|
#include "smlogcfg.h"
|
|
#include "smcfghlp.h"
|
|
#include "NewQDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
USE_HANDLE_MACROS("SMLOGCFG(newqdlg.cpp)");
|
|
|
|
static ULONG
|
|
s_aulHelpIds[] =
|
|
{
|
|
IDC_NEWQ_NAME_EDIT, IDH_NEWQ_NAME_EDIT,
|
|
0,0
|
|
};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CNewQueryDlg dialog
|
|
|
|
void CNewQueryDlg::InitAfxData ()
|
|
{
|
|
//{{AFX_DATA_INIT(CNewQueryDlg)
|
|
m_strName = _T("");
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
CNewQueryDlg::CNewQueryDlg(CWnd* pParent /*=NULL*/, BOOL bLogQuery)
|
|
: CDialog(CNewQueryDlg::IDD, pParent)
|
|
{
|
|
EnableAutomation();
|
|
InitAfxData ();
|
|
m_bLogQuery = bLogQuery;
|
|
}
|
|
|
|
void CNewQueryDlg::OnFinalRelease()
|
|
{
|
|
// When the last reference for an automation object is released
|
|
// OnFinalRelease is called. The base class will automatically
|
|
// deletes the object. Add additional cleanup required for your
|
|
// object before calling the base class.
|
|
|
|
CDialog::OnFinalRelease();
|
|
}
|
|
|
|
void CNewQueryDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CNewQueryDlg)
|
|
DDX_Text(pDX, IDC_NEWQ_NAME_EDIT, m_strName);
|
|
DDV_MaxChars(pDX, m_strName, (SLQ_MAX_LOG_NAME_LEN));
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CNewQueryDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CNewQueryDlg)
|
|
ON_WM_HELPINFO()
|
|
ON_WM_CONTEXTMENU()
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
BEGIN_DISPATCH_MAP(CNewQueryDlg, CDialog)
|
|
//{{AFX_DISPATCH_MAP(CNewQueryDlg)
|
|
// NOTE - the ClassWizard will add and remove mapping macros here.
|
|
//}}AFX_DISPATCH_MAP
|
|
END_DISPATCH_MAP()
|
|
|
|
// Note: we add support for IID_INewQueryDlg to support typesafe binding
|
|
// from VBA. This IID must match the GUID that is attached to the
|
|
// dispinterface in the .ODL file.
|
|
|
|
// {4D4C90C3-C5A3-11D1-BF9B-00C04F94A83A}
|
|
static const IID IID_INewQueryDlg =
|
|
{ 0x4d4c90c3, 0xc5a3, 0x11d1, { 0xbf, 0x9b, 0x0, 0xc0, 0x4f, 0x94, 0xa8, 0x3a } };
|
|
|
|
BEGIN_INTERFACE_MAP(CNewQueryDlg, CDialog)
|
|
INTERFACE_PART(CNewQueryDlg, IID_INewQueryDlg, Dispatch)
|
|
END_INTERFACE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CNewQueryDlg message handlers
|
|
|
|
BOOL CNewQueryDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
ResourceStateManager rsm;
|
|
|
|
if (!m_bLogQuery) {
|
|
CString csCaption;
|
|
csCaption.LoadString (IDS_CREATE_NEW_ALERT);
|
|
SetWindowText (csCaption);
|
|
}
|
|
|
|
// set the focus to the name edit
|
|
GetDlgItem(IDC_NEWQ_NAME_EDIT)->SetFocus();
|
|
SendDlgItemMessage(IDC_NEWQ_NAME_EDIT,EM_SETSEL,0,-1);
|
|
return FALSE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void
|
|
CNewQueryDlg::OnOK()
|
|
{
|
|
INT iPrevLength = 0;
|
|
ResourceStateManager rsm;
|
|
|
|
if ( UpdateData (TRUE) ) {
|
|
|
|
iPrevLength = m_strName.GetLength();
|
|
m_strName.TrimLeft();
|
|
m_strName.TrimRight();
|
|
|
|
if ( iPrevLength != m_strName.GetLength() ) {
|
|
SetDlgItemText ( IDC_NEWQ_NAME_EDIT, m_strName );
|
|
}
|
|
|
|
if (m_strName.GetLength() == 0) {
|
|
// need a name
|
|
MessageBeep(MB_ICONEXCLAMATION);
|
|
(GetDlgItem(IDC_NEWQ_NAME_EDIT))->SetFocus();
|
|
} else {
|
|
if ( !FileNameIsValid ( &m_strName ) ) {
|
|
CString cstrTitle,cstrMsg;
|
|
|
|
cstrTitle.LoadString(IDS_PROJNAME);
|
|
cstrMsg.LoadString (IDS_ERRMSG_INVALIDCHAR);
|
|
MessageBox(
|
|
cstrMsg,
|
|
cstrTitle,
|
|
MB_OK| MB_ICONERROR);
|
|
(GetDlgItem(IDC_NEWQ_NAME_EDIT))->SetFocus();
|
|
|
|
} else {
|
|
CDialog::OnOK();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
BOOL
|
|
CNewQueryDlg::OnHelpInfo(HELPINFO* pHelpInfo)
|
|
{
|
|
if ( pHelpInfo->iCtrlId >= IDC_NEWQ_FIRST_HELP_CTRL_ID ||
|
|
pHelpInfo->iCtrlId == IDOK ||
|
|
pHelpInfo->iCtrlId == IDCANCEL ) {
|
|
|
|
InvokeWinHelp(WM_HELP, NULL, (LPARAM)pHelpInfo, m_strHelpFilePath, s_aulHelpIds);
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
void
|
|
CNewQueryDlg::OnContextMenu(CWnd* pWnd, CPoint /* point */)
|
|
{
|
|
InvokeWinHelp(WM_CONTEXTMENU, (WPARAM)(pWnd->m_hWnd), NULL, m_strHelpFilePath, s_aulHelpIds);
|
|
|
|
return;
|
|
}
|
|
|
|
DWORD
|
|
CNewQueryDlg::SetContextHelpFilePath( const CString& rstrPath )
|
|
{
|
|
DWORD dwStatus = ERROR_SUCCESS;
|
|
|
|
MFC_TRY
|
|
m_strHelpFilePath = rstrPath;
|
|
MFC_CATCH_DWSTATUS
|
|
|
|
return dwStatus;
|
|
}
|