|
|
#ifndef _PARAM_H_
#define _PARAM_H_
/* CFaxApiFinctionParameterInfo class definition file. */
#define MAX_PARAM_VALUE_STRING_LENGTH 500
/* Parameter type enumeration */
enum eParamType { // symbol // datatype
eBOOL, // BOOL
eDWORD, // DWORD
eHANDLE, // HANDLE
eHDC, // HDC
ePHDC, // HDC *
eLPBYTE, // LPBYTE
ePLPBYTE, // LPBYTE *
eLPDWORD, // LPDWORD
eLPHANDLE, // LPHANDLE
eLPSTR, // LPSTR
eLPVOID, // LPVOID
eLPWSTR, // LPWSTR
ePFAX_CONFIGURATIONA, // PFAX_CONFIGURATIONA
ePPFAX_CONFIGURATIONA, // PFAX_CONFIGURATIONA *
ePFAX_CONFIGURATIONW, // PFAX_CONFIGURATIONW
ePPFAX_CONFIGURATIONW, // PFAX_CONFIGURATIONW *
ePFAX_COVERPAGE_INFOA, // PFAX_COVERPAGE_INFOA
ePFAX_COVERPAGE_INFOW, // PFAX_COVERPAGE_INFOW
ePPFAX_DEVICE_STATUSA, // PFAX_DEVICE_STATUSA *
ePPFAX_DEVICE_STATUSW, // PFAX_DEVICE_STATUSW *
ePFAX_JOB_ENTRYA, // PFAX_JOB_ENTRYA
ePPFAX_JOB_ENTRYA, // PFAX_JOB_ENTRYA *
ePFAX_JOB_ENTRYW, // PFAX_JOB_ENTRYW
ePPFAX_JOB_ENTRYW, // PFAX_JOB_ENTRYW *
ePFAX_JOB_PARAMA, // PFAX_JOB_PARAMA
ePFAX_JOB_PARAMW, // PFAX_JOB_PARAMW
ePFAX_LOG_CATEGORY, // PFAX_LOG_CATEGORY
ePPFAX_LOG_CATEGORY, // PFAX_LOG_CATEGORY *
ePFAX_PORT_INFOA, // PFAX_PORT_INFOA
ePPFAX_PORT_INFOA, // PFAX_PORT_INFOA *
ePFAX_PORT_INFOW, // PFAX_PORT_INFOW
ePPFAX_PORT_INFOW, // PFAX_PORT_INFOW *
ePFAX_PRINT_INFOA, // PFAX_PRINT_INFOA
ePFAX_PRINT_INFOW, // PFAX_PRINT_INFOW
ePPFAX_ROUTING_METHODA, // PFAX_ROUTING_METHODA *
ePPFAX_ROUTING_METHODW, // PFAX_ROUTING_METHODW *
eUnknownParamType, // indicates that the parameter type is
// not recognized;
};
/* The CFaxApiFunctionParameterInfo class manages all of the information */ /* pertaining to the parameter list for a Fax API function. */
class CFaxApiFunctionParameterInfo : public CObject { public: CFaxApiFunctionParameterInfo(); // constructor
~CFaxApiFunctionParameterInfo(); // destructor
/* member functions */
void InitParameterInfoMember( const CString & rcsFunctionName ); void FormatParameterValueForOutput( int xParameterIndex, CString & rcsParameterValue );
void * GetParameterValuePointer( int xParameterIndex );
int GetNumberOfParameters();
CString GetParameterName( int xParameterIndex ); CString GetParameterTypeString( int xParameterIndex ); CString GetParameterDescription( int xParameterIndex );
BOOL StoreParameterValue( int xParameterIndex, CString & rcsParameterValue );
eParamType GetParameterTypeEnum( int xParameterIndex );
private: void * AllocateStorageForParameterEntity( eParamType eParameterType ); eParamType GetParameterTypeEnum( const CString & rcsParameterType ); CString PreProcessParameterValueString( const CString & rcsParameterValue );
private:
/* data members */
int m_xNumberOfParameters;
CStringArray m_csaParameterName;
CStringArray m_csaParameterDescription;
CUIntArray m_cuiaParameterTypeEnum;
/* Since the type of each parameter is probably different, the storage */ /* for each parameter and the associated range variables must be allocated */ /* dynamically. The following members are arrays of pointers to the */ /* actual storage locations. */
CPtrArray m_cpaParameterValue;
CPtrArray m_cpaParameterRange1;
CPtrArray m_cpaParameterRange2; }; #endif // _PARAM_H_
|