|
|
// exelogvw.cpp : implementation file
//
#include "stdafx.h"
#include "FaxApi.h"
#include "exelogvw.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; #endif
extern CFaxApiApp * pFaxApiBrowserApp;
/////////////////////////////////////////////////////////////////////////////
// CExecutionLogFormView
IMPLEMENT_DYNCREATE(CExecutionLogFormView, CFormView)
CExecutionLogFormView::CExecutionLogFormView() : CFormView(CExecutionLogFormView::IDD) { //{{AFX_DATA_INIT(CExecutionLogFormView)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
CExecutionLogFormView::~CExecutionLogFormView() { }
void CExecutionLogFormView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); //{{AFX_DATA_MAP(CExecutionLogFormView)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CExecutionLogFormView, CFormView) //{{AFX_MSG_MAP(CExecutionLogFormView)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CExecutionLogFormView diagnostics
#ifdef _DEBUG
void CExecutionLogFormView::AssertValid() const { CFormView::AssertValid(); }
void CExecutionLogFormView::Dump(CDumpContext& dc) const { CFormView::Dump(dc); } #endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CExecutionLogFormView message handlers
BOOL CExecutionLogFormView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) { BOOL fReturnValue; fReturnValue = CFormView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
if ( fReturnValue != (BOOL) FALSE ) { // Save the handle to this view in the CFaxApiApp object.
pFaxApiBrowserApp->StoreExecutionLogFormViewHWND( m_hWnd ); }
return ( fReturnValue ); }
BOOL CExecutionLogFormView::UpdateExecutionLogEditCtrl( CString & rcsExecutionLogString ) { BOOL fReturnValue;
// Get a pointer to the Execution Log edit control.
CEdit * pceExecutionLogEditCtrl;
pceExecutionLogEditCtrl = (CEdit *) ((CDialog *) this)-> GetDlgItem( IDC_EDIT_EXECUTION_LOG );
// Is the pointer valid ?
if ( pceExecutionLogEditCtrl != (CEdit *) NULL ) { pceExecutionLogEditCtrl->SetWindowText( rcsExecutionLogString ); } else { fReturnValue = (BOOL) FALSE; }
return ( fReturnValue ); }
/*
* UpdateExecutionLogBeforeApiCall * * Purpose: * This function writes a block of text to the execution log edit control * in preparation for executing the selected Fax Api function. * * Arguments: * pcfafiFunctionInfo - points to the CFaxApiFunctionInfo object for * the selected Fax Api function. * * Returns: * none * */
void CExecutionLogFormView::UpdateExecutionLogBeforeApiCall( CFaxApiFunctionInfo * pcfafiFunctionInfo ) { /* Get a pointer to the Output edit control. */
CEdit * pceEditControl;
pceEditControl = (CEdit *) ((CDialog *) this)->GetDlgItem( IDC_EDIT_EXECUTION_LOG );
if ( pceEditControl != (CEdit *) NULL ) { CString csFunctionName; CString csText; csFunctionName = pcfafiFunctionInfo->GetFunctionName(); csText.Format( TEXT("\r\nCalling %s\r\n"), csFunctionName );
AddTextToEditControl( pceEditControl, (const CString &) csText ); int xNumberOfParameters; xNumberOfParameters = pcfafiFunctionInfo->GetNumberOfParameters(); if ( xNumberOfParameters > 0 ) { int xParameterIndex;
CString csParameterName; CString csParameterValue;
for ( xParameterIndex = 0; xParameterIndex < xNumberOfParameters; xParameterIndex++ ) { pcfafiFunctionInfo->GetParameterName( xParameterIndex, (CString &) csParameterName ); pcfafiFunctionInfo->FormatParameterValueForOutput( xParameterIndex, (CString &) csParameterValue ); csText.Format( TEXT(" %s = \t%s\r\n"), csParameterName, csParameterValue );
AddTextToEditControl( pceEditControl, (const CString &) csText ); } } } }
/*
* UpdateExecutionLogAfterApiReturn * * Purpose: * This function writes a block of text to the output exit control * after execution of the selected Fax Api function. * * Arguments: * pcfafiFunctionInfo - points to the CFaxApiFunctionInfo object for * the selected Fax Api function. * * Returns: * none * */
void CExecutionLogFormView::UpdateExecutionLogAfterApiReturn( CFaxApiFunctionInfo * pcfafiFunctionInfo ) { /* Get a pointer to the Execution Log edit control. */
CEdit * pceEditControl;
pceEditControl = (CEdit *) ((CDialog *) this)->GetDlgItem( IDC_EDIT_EXECUTION_LOG );
if ( pceEditControl != (CEdit *) NULL ) { CString csFunctionName; CString csText; csFunctionName = pcfafiFunctionInfo->GetFunctionName(); csText.Format( TEXT("\r\n%s returned:\r\n"), csFunctionName );
AddTextToEditControl( pceEditControl, (const CString &) csText );
CString csReturnValue;
pcfafiFunctionInfo->FormatReturnValueForOutput( (CString &) csReturnValue );
csText.Format( TEXT(" %s\r\n"), csReturnValue );
AddTextToEditControl( pceEditControl, (const CString &) csText ); int xNumberOfParameters; xNumberOfParameters = pcfafiFunctionInfo->GetNumberOfParameters(); if ( xNumberOfParameters > 0 ) { int xParameterIndex;
CString csParameterName; CString csParameterValue;
for ( xParameterIndex = 0; xParameterIndex < xNumberOfParameters; xParameterIndex++ ) { pcfafiFunctionInfo->GetParameterName( xParameterIndex, (CString &) csParameterName ); pcfafiFunctionInfo->FormatParameterValueForOutput( xParameterIndex, (CString &) csParameterValue ); csText.Format( TEXT(" %s = \t%s\r\n"), csParameterName, csParameterValue );
AddTextToEditControl( pceEditControl, (const CString &) csText ); } } } }
/*
* AddTextToEditControl * * Purpose: * This function adds text to an edit control. * * Arguments: * pceEditControl - points to the CEdit object * rcsText - a reference to CString that contains the text * to be added to the edit control. * * may want to add num chars parameter later ! * * Returns: * None * */
void CExecutionLogFormView::AddTextToEditControl( CEdit * pceEditControl, const CString & rcsText ) { if ( pceEditControl != (CEdit *) NULL ) { /* Set the insertion point at the end of the text. */ pceEditControl->SetSel( -1, 50000 ); // 50000 is arbitrary !
/* Turn off READ ONLY. */ pceEditControl->SetReadOnly( (BOOL) FALSE ); /* Write the string to the edit control. */ pceEditControl->ReplaceSel( (LPCTSTR) rcsText ); /* Turn on READ ONLY. */ pceEditControl->SetReadOnly( (BOOL) TRUE ); } }
|