Source code of Windows XP (NT5)
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.
 
 
 
 
 
 

189 lines
4.6 KiB

/*++
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;
}