|
|
/*++
Copyright (C) 1998-1999 Microsoft Corporation
Module Name:
Logwarnd.cpp
Abstract:
Implementation of the Log Type mismatch warning dialog.
--*/
#include "stdafx.h"
#include <strsafe.h>
#include "smlogcfg.h"
#include "smtraceq.h"
#include "provprop.h"
#include "logwarnd.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
static ULONG s_aulHelpIds[] = { IDC_LWARN_CHECK_NO_MORE_LOG_TYPE, IDH_CHECK_NO_MORE, 0,0 };
/////////////////////////////////////////////////////////////////////////////
// CLogwarnd dialog
CLogWarnd::CLogWarnd(CWnd* pParent /*=NULL*/) : CDialog(CLogWarnd::IDD, pParent) { //{{AFX_DATA_INIT(CLogWarnd)
m_CheckNoMore = FALSE; m_ErrorMsg = 0 ; m_dwLogType = 0L; //}}AFX_DATA_INIT
}
void CLogWarnd::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CLogWarnd)
DDX_Check(pDX, IDC_LWARN_CHECK_NO_MORE_LOG_TYPE, m_CheckNoMore); //}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLogWarnd, CDialog) //{{AFX_MSG_MAP(CLogWarnd)
ON_BN_CLICKED(IDC_LWARN_CHECK_NO_MORE_LOG_TYPE,OnCheckNoMoreLogType) ON_WM_HELPINFO() ON_WM_CONTEXTMENU() //}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLogWarnd message handlers
void CLogWarnd::OnOK() { UpdateData(TRUE); if (m_CheckNoMore) { long nErr; HKEY hKey; DWORD dwWarnFlag; DWORD dwDataSize; DWORD dwDisposition; WCHAR RegValName[MAX_PATH];
hKey = m_hKey;
dwWarnFlag = m_CheckNoMore; switch (m_dwLogType){ case SLQ_COUNTER_LOG: StringCchPrintf ( RegValName, MAX_PATH,L"NoWarnCounterLog"); break; case SLQ_ALERT: StringCchPrintf ( RegValName, MAX_PATH,L"NoWarnAlertLog"); break; }
nErr = RegCreateKeyEx( HKEY_CURRENT_USER, L"Software\\Microsoft\\PerformanceLogsAndAlerts", 0, L"REG_DWORD", REG_OPTION_NON_VOLATILE, KEY_READ | KEY_WRITE, NULL, &hKey, &dwDisposition); if( nErr == ERROR_SUCCESS ) { dwDataSize = sizeof(DWORD); nErr = RegSetValueEx(hKey, RegValName, NULL, REG_DWORD, (LPBYTE) &dwWarnFlag, dwDataSize );
if( ERROR_SUCCESS != nErr ) { DisplayError( GetLastError(), L"Close PerfLog User Key failed" ); } RegCloseKey(hKey);
} } CDialog::OnOK(); }
BOOL CLogWarnd::OnInitDialog() { CString cstrMessage , cstrWrongLog;
SetWindowText ( m_strTitle );
switch (m_dwLogType){ case SLQ_COUNTER_LOG: cstrWrongLog.LoadString(IDS_COUNTER_LOG) ; break; case SLQ_ALERT: cstrWrongLog.LoadString(IDS_ALERT_LOG); break; case SMONCTRL_LOG: cstrWrongLog.LoadString( IDS_SMCTRL_LOG ); break; default: cstrWrongLog.Format(L""); break; }
switch(m_ErrorMsg){ case ID_ERROR_COUNTER_LOG: cstrMessage.Format(IDS_ERRMSG_COUNTER_LOG,cstrWrongLog ); break;
case ID_ERROR_ALERT_LOG: cstrMessage.Format(IDS_ERRMSG_ALERT_LOG,cstrWrongLog); break;
case ID_ERROR_TRACE_LOG: cstrMessage.Format(IDS_ERRMSG_TRACE_LOG,cstrWrongLog); break;
case ID_ERROR_SMONCTRL_LOG: cstrMessage.Format(IDS_ERRMSG_SMCTRL_LOG,cstrWrongLog); break;
} ::SetWindowText((GetDlgItem(IDC_LWARN_MSG_WARN))->m_hWnd, cstrMessage);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
} VOID CLogWarnd::OnCheckNoMoreLogType() { } BOOL CLogWarnd::OnHelpInfo(HELPINFO* pHelpInfo) { if ( pHelpInfo->iCtrlId >= IDC_LWARN_FIRST_HELP_CTRL_ID ) { InvokeWinHelp(WM_HELP, NULL, (LPARAM)pHelpInfo, m_strContextHelpFile, s_aulHelpIds); }
return TRUE; }
void CLogWarnd::OnContextMenu(CWnd* pWnd, CPoint /* point */) { InvokeWinHelp(WM_CONTEXTMENU, (WPARAM)(pWnd->m_hWnd), NULL, m_strContextHelpFile, s_aulHelpIds);
return; }
|