150 lines
5.4 KiB
C++
150 lines
5.4 KiB
C++
#ifndef _FUNCTION_H_
|
|
#define _FUNCTION_H_
|
|
|
|
/* CFaxApiFunctionInfo class definition file. */
|
|
|
|
#include "param.h"
|
|
|
|
|
|
/* Function index enumeration. */
|
|
|
|
/* Note that the function index enum is not related to the index into the */
|
|
/* Fax Api Function listbox. It is used by the Execute() member function */
|
|
/* of the CFaxApiFunctionInfo class (and possibly others). */
|
|
|
|
enum eFunctionIndex
|
|
{
|
|
// symbol // Function Name
|
|
|
|
eFaxAbort, // FaxAbort
|
|
eFaxClose, // FaxClose
|
|
eFaxConnectFaxServerA, // FaxConnectFaxServerA
|
|
eFaxConnectFaxServerW, // FaxConnectFaxServerW
|
|
eFaxEnableRoutingMethodA, // FaxEnableRoutingMethodA
|
|
eFaxEnableRoutingMethodW, // FaxEnableRoutingMethodW
|
|
eFaxEnumJobsA, // FaxEnumJobsA
|
|
eFaxEnumJobsW, // FaxEnumJobsW
|
|
eFaxEnumPortsA, // FaxEnumPortsA
|
|
eFaxEnumPortsW, // FaxEnumPortsW
|
|
eFaxEnumRoutingMethodsA, // FaxEnumRoutingMethodsA
|
|
eFaxEnumRoutingMethodsW, // FaxEnumRoutingMethodsW
|
|
eFaxFreeBuffer, // FaxFreeBuffer
|
|
eFaxGetConfigurationA, // FaxGetConfigurationA
|
|
eFaxGetConfigurationW, // FaxGetConfigurationW
|
|
eFaxGetDeviceStatusA, // FaxGetDeviceStatusA
|
|
eFaxGetDeviceStatusW, // FaxGetDeviceStatusW
|
|
eFaxGetJobA, // FaxGetJobA
|
|
eFaxGetJobW, // FaxGetJobW
|
|
eFaxGetLoggingCategoriesA, // FaxGetLoggingCategoriesA
|
|
eFaxGetLoggingCategoriesW, // FaxGetLoggingCategoriesW
|
|
eFaxGetPageData, // FaxGetPageData
|
|
eFaxGetPortA, // FaxGetPortA
|
|
eFaxGetPortW, // FaxGetPortW
|
|
eFaxGetRoutingInfoA, // FaxGetRoutingInfoA
|
|
eFaxGetRoutingInfoW, // FaxGetRoutingInfoW
|
|
eFaxInitializeEventQueue, // FaxInitializeEventQueue
|
|
#ifdef ELIMINATED_FROM_API
|
|
eFaxOpenJob, // FaxOpenJob
|
|
#endif // ELIMINATED_FROM_API
|
|
eFaxOpenPort, // FaxOpenPort
|
|
eFaxPrintCoverPageA, // FaxPrintCoverPageA
|
|
eFaxPrintCoverPageW, // FaxPrintCoverPageW
|
|
eFaxReceiveDocumentA, // FaxReceiveDocumentA
|
|
eFaxReceiveDocumentW, // FaxReceiveDocumentW
|
|
eFaxSendDocumentA, // FaxSendDocumentA
|
|
eFaxSendDocumentW, // FaxSendDocumentW
|
|
eFaxSetConfigurationA, // FaxSetConfigurationA
|
|
eFaxSetConfigurationW, // FaxSetConfigurationW
|
|
eFaxSetJobA, // FaxSetJobA
|
|
eFaxSetJobW, // FaxSetJobW
|
|
eFaxSetLoggingCategoriesA, // FaxSetLoggingCategoriesA
|
|
eFaxSetLoggingCategoriesW, // FaxSetLoggingCategoriesW
|
|
eFaxSetPortA, // FaxSetPortA
|
|
eFaxSetPortW, // FaxSetPortW
|
|
eFaxSetRoutingInfoA, // FaxSetRoutingInfoA
|
|
eFaxSetRoutingInfoW, // FaxSetRoutingInfoW
|
|
eFaxStartPrintJobA, // FaxStartPrintJobA
|
|
eFaxStartPrintJobW, // FaxStartPrintJobW
|
|
|
|
eIllegalFunctionIndex // indicates that the function
|
|
// index is illegal
|
|
};
|
|
|
|
|
|
|
|
/* The CFaxApiFunctionInfo class is used to manage all of the information */
|
|
/* pertaining to a single Fax API function. */
|
|
|
|
class CFaxApiFunctionInfo : public CObject
|
|
{
|
|
public:
|
|
CFaxApiFunctionInfo(); // constructor
|
|
CFaxApiFunctionInfo( const CString & rcsFunctionName,
|
|
const CString & rcsFunctionPrototype,
|
|
const CString & rcsReturnType,
|
|
const CString & rcsReturnValueDescription,
|
|
const CString & rcsRemarks );
|
|
|
|
~CFaxApiFunctionInfo(); // destructor
|
|
|
|
|
|
void SetFunctionName( CString & rcsFunctionName );
|
|
|
|
CString & GetFunctionName();
|
|
CString & GetFunctionPrototype();
|
|
CString & GetReturnValueDescription();
|
|
CString & GetRemarks();
|
|
|
|
void GetParameterName( int xParameterIndex, CString & rcsParameterName );
|
|
void FormatParameterValueForOutput( int xParameterIndex, CString & rcsParameterValue );
|
|
|
|
void * GetParameterValuePointer( int xParameterIndex );
|
|
|
|
int GetNumberOfParameters();
|
|
int GetMaxParamValueStringLength( int xParameterIndex );
|
|
|
|
BOOL StoreParameterValue( int xParameterIndex, const CString & rcsParameterValue );
|
|
|
|
eParamType GetParameterTypeEnum( int xParameterIndex );
|
|
CString GetParameterTypeString( int xParameterIndex );
|
|
CString GetParameterDescription( int xParameterIndex );
|
|
|
|
|
|
void FormatReturnValueForOutput( CString & csReturnValue );
|
|
void Execute();
|
|
|
|
|
|
|
|
|
|
private:
|
|
void * AllocateStorageForReturnValue( const CString & rcsReturnType );
|
|
|
|
eFunctionIndex GetFunctionIndexEnum( const CString & rcsFunctionName );
|
|
|
|
private:
|
|
|
|
/* data members */
|
|
|
|
CString m_csFunctionName;
|
|
|
|
CString m_csFunctionPrototype;
|
|
|
|
CString m_csReturnType;
|
|
|
|
CString m_csReturnValueDescription;
|
|
|
|
CString m_csRemarks;
|
|
|
|
eFunctionIndex m_eFunctionIndex;
|
|
|
|
/* Since we don't know what type the return value is (each API function */
|
|
/* may be different) the storage must be allocated dynamically. The */
|
|
/* following data member is a pointer to the storage for the return */
|
|
/* value. */
|
|
|
|
void * m_pvReturnValue;
|
|
|
|
CFaxApiFunctionParameterInfo m_cParameterInfo;
|
|
};
|
|
#endif // _FUNCTION_H_
|