⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 source.cpp

📁 windows的snmp api源码
💻 CPP
字号:
//******************************************************************
// source.cpp
//
// This is file contains the implementation of the CSource class.  
//
// The CSource class acts as a container class for the message source,
// which is composed of the source tree control and the message list.
//
// Author: Larry A. French
//
// History:
//      20-Febuary-1996     Larry A. French
//          Wrote it.
//
//
// Copyright (C) 1995, 1996 Microsoft Corporation.  All rights reserved.
//******************************************************************
#include "stdafx.h"
#include "regkey.h"
#include "source.h"
#include "utils.h"
#include "globals.h"

#include "tcsource.h"
#include "lcsource.h"
#include "evntfind.h"
#include "trapdlg.h"




CSource::CSource()
{
    m_pEventSource = NULL;
    m_ptcSource = NULL;
    m_plcSource = NULL;
    m_pdlgEventTrap = NULL;
    m_pdlgFind = NULL;
}


CSource::~CSource()
{
    delete m_pdlgFind;
}

SCODE CSource::Create(CEventTrapDlg* pdlgEventTrap)
{
	m_ptcSource = &pdlgEventTrap->m_tcSource;
	m_ptcSource->m_pSource = this;

	m_plcSource = &pdlgEventTrap->m_lcSource;
	m_plcSource->m_pSource = this;

    m_pdlgEventTrap = pdlgEventTrap;

    return S_OK;
}



//***************************************************************************
// CSource::NotifyTcSelChanged
//
// This method returns an array of pointers to the messages currently selected
// in the CLcEvents list control.  These pointers are owned by g_aEventLogs and
// the caller should not delete them.
//
// Parameters:
//      None.
//
// Returns:
//      Nothing.
//
//***************************************************************************
void CSource::GetSelectedMessages(CXMessageArray& aMessages)
{
    m_plcSource->GetSelectedMessages(aMessages);
}



//***************************************************************************
// CSource::NotifyTcSelChanged
//
// This method is called when the selection changes in the event-source tree
// control (CTcSource).  When the selection changes, the message list must
// be updated.
//
// Parameters:
//      None.
//
// Returns:
//      Nothing.
//
//***************************************************************************
void CSource::NotifyTcSelChanged()
{
	m_pEventSource = m_ptcSource->GetSelectedEventSource();
	m_plcSource->SetEventSource(m_pEventSource);
    m_pdlgEventTrap->NotifySourceSelChanged();
}




//***************************************************************************
//
//  CSource::CreateWindowEpilogue()
//
//  This method is called after a window has been created for this list
//  control.  Final initialization is done here.
//
//  Parameters:
//		None.
//
//  Returns:
//		SCODE
//			S_OK if the initialization was successful, otherwise E_FAIL.
//
//  Status:
//      
//***************************************************************************
SCODE CSource::CreateWindowEpilogue()
{
	SCODE scTc = m_ptcSource->CreateWindowEpilogue();
	SCODE scLc = m_plcSource->CreateWindowEpilogue();

	if (FAILED(scTc) || FAILED(scLc)) {
		return E_FAIL;
	}
	
	return S_OK;
}



//******************************************************************
// CSource::Find
//
// Find the specified event source.  This is done by searching either
// the tree or the list control depending on the bSearchTree parameter.
//
// Parameters:
//		BOOL bSearchTree
//			TRUE if the tree should be searched, otherwise the list control
//			is searched.
//
//		CString& sText
//			A string containing the text to search for.
//
//		BOOL bWholeWord
//			TRUE if this is a "whole word" search.  False if it
//			is OK to match a partial word.
//
//		BOOL bMatchCase
//			TRUE if a case-sensitive comparison should be used.
//
// Returns:
//		BOOL
//			TRUE if the string was found, FALSE otherwise.  If the specified
//			text is found, then the selection is set on the corresponding
//			item, the item is scrolled into view and the focus
//			is set on the item.
//
//******************************************************************
BOOL CSource::Find(BOOL bSearchTree, CString sText, BOOL bWholeWord, BOOL bMatchCase)
{
    
	if (bSearchTree) 
		return m_ptcSource->Find(sText, bWholeWord, bMatchCase);
	else 
		return m_plcSource->Find(sText, bWholeWord, bMatchCase);
}




//************************************************************************
// CSource::OnFind
//
// This method is called when the "Find" button in the CEventTrap dialog
// is clicked. 
//
// Parameters:
//      CWnd* pwndParent
//          Pointer to the parent window of the "find" dialog.  This happens
//          to be the CEventTrapDialog.
//
// Returns:
//      Nothing.
//
//*************************************************************************
void CSource::OnFind(CWnd* pwndParent)
{
    if (m_pdlgFind == NULL) {
        m_pdlgFind = new CEventFindDlg(pwndParent);
        m_pdlgFind->Create(this, IDD_EVENTFINDDLG, pwndParent);
    }


    m_pdlgFind->BringWindowToTop();
}



//*************************************************************************
// CSource::NotifyTrappingChange
//
// This method is called when an event is added or removed from the
// event list.  This CSource message source container must be notified
// so that the corresponding method can be marked as trapped or not
// trapped in the CLcSource list control.
//
// Parameters:
//      CXEventSource* pEventSource
//          Pointer to the event's event-source
//
//      DWORD dwId
//          The event's ID
//
//      BOOL bIsTrapping
//          TRUE if the event is being trapped, FALSE if not.,
//
// Returns:
//      Nothing.
//*************************************************************************
void CSource::NotifyTrappingChange(CXEventSource* pEventSource, DWORD dwId, BOOL bIsTrapping)
{
    if (pEventSource == m_pEventSource) {
        m_plcSource->NotifyTrappingChange(dwId, bIsTrapping);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -