286 lines
7.4 KiB
C++
286 lines
7.4 KiB
C++
|
// 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 );
|
||
|
}
|
||
|
}
|