WinCsv.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:22k
- /*****************************************************************************/
- /* wincsv.h - Function prototypes for the Common Service Verbs */
- /* */
- /* Copyright Data Connection Ltd. 1989 - 2000 */
- /* Copyright (c) Microsoft Corporation. All rights reserved. */
- /*****************************************************************************/
- #ifndef ACSSVCCH_INCLUDED
- #define ACSSVCCH_INCLUDED
- #ifdef __cplusplus
- extern "C" {
- #endif
- #if (defined(WIN32) || defined(WINDOWS))
- #define CSVENTRY WINAPI
- #else
- #define CSVENTRY far pascal
- #endif
- #if (defined(WIN32) || defined(WINDOWS))
- #define WCSVDESCRIPTION_LEN 127
- typedef struct tagWCSVDATA
- {
- WORD wVersion;
- char szDescription[WCSVDESCRIPTION_LEN+1];
- } WCSVDATA, * PWCSVDATA, FAR * LPWCSVDATA;
- extern void CSVENTRY WinCSV(long);
- extern HANDLE CSVENTRY WinAsyncCSV(HWND, long);
- extern int CSVENTRY WinCSVCleanup(void);
- extern int CSVENTRY WinCSVStartup(WORD wVersion, LPWCSVDATA lpData);
- extern int CSVENTRY GetCsvReturnCode (struct svc_hdr FAR *, UINT, unsigned char FAR *);
- /*****************************************************************************/
- /* WinCSV return codes */
- /*****************************************************************************/
- #define WCSVINVALID CSV_FLIPI(0x01F0) /* invalid parameter */
- #define WCSVSYSNOTREADY CSV_FLIPI(0x03F0) /* subsystem not started */
- #define WCSVVERNOTSUPPORTED CSV_FLIPI(0x04F0) /* requested ver not supported */
- #endif
- extern void CSVENTRY ACSSVC(long);
- extern void CSVENTRY ACSSVC_C(long);
- extern void CSVENTRY ACSSVC_P(long);
- /*****************************************************************************/
- /* Ensure the correct packing of structures */
- /*****************************************************************************/
- #ifdef WIN32
- #pragma pack(4)
- #endif
- /*****************************************************************************/
- /* VCB structures */
- /*****************************************************************************/
- struct svc_hdr
- {
- unsigned short opcode; /* Verb identifying operation code. */
- unsigned char opext; /* Reserved */
- unsigned char reserv2; /* Reserved. */
- unsigned short primary_rc; /* Primary return code from verb. */
- unsigned long secondary_rc; /* Secondary (qualifying) return code. */
- };
- struct convert
- {
- unsigned short opcode; /* Verb identifying operation code. */
- unsigned char opext; /* Reserved. */
- unsigned char reserv2; /* Reserved. */
- unsigned short primary_rc; /* Primary return code from verb. */
- unsigned long secondary_rc; /* Secondary (qualifying) return code. */
- unsigned char direction; /* Direction of conversion - ASCII to */
- /* EBCDIC or vice-versa. */
- unsigned char char_set; /* Character to use for the conversion */
- /* A, AE, or user-defined G. */
- unsigned short len; /* Length of string to be converted. */
- #ifdef WIN32
- unsigned char *source; /* Pointer to string to be converted. */
- unsigned char *target; /* Address to put converted string at. */
- #else
- unsigned char far *source; /* Pointer to string to be converted. */
- unsigned char far *target; /* Address to put converted string at. */
- #endif
- };
- struct define_trace
- {
- unsigned short opcode; /* Verb identifying operation code. */
- unsigned char opext; /* Reserved. */
- unsigned char reserv2; /* Reserved. */
- unsigned short primary_rc; /* Primary return code from verb. */
- unsigned long secondary_rc; /* Secondary (qualifying) return code. */
- unsigned char reserv3[8]; /* Reserved. */
- unsigned char dt_set; /* Trace state to be set (on/off). */
- /***************************************************************************/
- /* In the following fields, used for specifying which sorts of tracing is */
- /* required, only the most significant bit is currently used. Bits 1 to 7 */
- /* are reserved. Bit 0 can be set to 'ignore' or to 'change'. */
- /***************************************************************************/
- unsigned char appc; /* Tracing for APPC. */
- unsigned char reserv4; /* Reserved. */
- unsigned char srpi; /* Tracing for SRPI. */
- unsigned char sdlc; /* Reserved. */
- unsigned char tkn_rng_dlc; /* Reserved. */
- unsigned char pcnet_dlc; /* Reserved. */
- unsigned char dft; /* Reserved. */
- unsigned char acdi; /* Reserved. */
- unsigned char reserv5; /* Reserved. */
- unsigned char comm_serv; /* Tracing for Comm_Serv_API. */
- unsigned char ehllapi; /* Reserved. */
- unsigned char x25_api; /* Reserved. */
- unsigned char x25_dlc; /* Reserved. */
- unsigned char twinax; /* Reserved. */
- unsigned char reserv6; /* Reserved. */
- unsigned char lua_api; /* Reserved. */
- unsigned char etherand; /* Reserved. */
- unsigned char subsym; /* Reserved. */
- unsigned char reserv7[8]; /* Reserved. */
- unsigned char reset_trc; /* Reserved. */
- unsigned short trunc; /* Truncation size for trace records. */
- unsigned short strg_size; /* Reserved. */
- unsigned char reserv8[1]; /* Reserved. */
- unsigned char phys_link[8]; /* Reserved. */
- unsigned char reserv9[56]; /* Reserved. */
- };
- struct get_cp_convert_table
- {
- unsigned short opcode; /* Verb identifying operation code. */
- unsigned char opext; /* Reserved. */
- unsigned char reserv2; /* Reserved. */
- unsigned short primary_rc; /* Primary return code from verb. */
- unsigned long secondary_rc; /* Secondary (qualifying) return code. */
- unsigned short source_cp; /* Source code page for conversion table. */
- unsigned short target_cp; /* Target code page for conversion table. */
- #ifdef WIN32
- unsigned char *conv_tbl_addr;/* Address to put conversion table at. */
- #else
- unsigned char far *conv_tbl_addr;/* Address to put conversion table at. */
- #endif
- unsigned char char_not_fnd; /* Character not found option: either */
- /* substitute character or round trip. */
- unsigned char substitute_char; /* Substitute character to use. */
- };
- struct log_message
- {
- unsigned short opcode; /* Verb identifying operation code. */
- unsigned char opext; /* Reserved. */
- unsigned char reserv2; /* Reserved. */
- unsigned short primary_rc; /* Primary return code from verb. */
- unsigned long secondary_rc; /* Secondary (qualifying) return code. */
- unsigned short msg_num; /* Number of message to log. */
- unsigned char origntr_id[8]; /* ID of the originator of the message. */
- unsigned char msg_file_name[3]; /* Message file to search for the required*/
- /* message number. */
- unsigned char msg_act; /* Message action - whether to inform */
- /* operator. */
- unsigned short msg_ins_len; /* Length of data for insertion in msg. */
- #ifdef WIN32
- unsigned char *msg_ins_ptr; /* Address of data for insertion in msg. */
- #else
- unsigned char far *msg_ins_ptr; /* Address of data for insertion in msg. */
- #endif
- };
- struct transfer_ms_data
- {
- unsigned short opcode; /* Verb identifying operation code. */
- unsigned char data_type; /* Data type supplied to the verb - can */
- /* be: user-defined; alert subvectors; */
- /* pdstats subvectors; NMVT. */
- unsigned char reserv2; /* Reserved. */
- unsigned short primary_rc; /* Primary return code from verb. */
- unsigned long secondary_rc; /* Secondary (qualifying) return code. */
- unsigned char options; /* Verb options. Bits 3 - 7 are reserved. */
- /* Bit 0: Time stamp subvector option. */
- /* Bit 1: Product set id subvector option.*/
- /* Bit 2: Option to send NMVT to SSCP. */
- /* Bit 3: Option for local logging. */
- unsigned char reserv3; /* Reserved. */
- unsigned char origntr_id[8]; /* ID of originator of NMVT. */
- unsigned short dlen; /* Length of data supplied to verb. */
- #ifdef WIN32
- unsigned char *dptr; /* Address at which supplied data resides.*/
- #else
- unsigned char far *dptr; /* Address at which supplied data resides.*/
- #endif
- };
- struct set_user_log_queue
- {
- unsigned short opcode; /* Verb operation code */
- unsigned char opext; /* Reserved. */
- unsigned char reserv2; /* Reserved. */
- unsigned short primary_rc; /* Primary RETURN_CODE */
- unsigned long secondary_rc; /* Secondary RETURN_CODE */
- unsigned char reserv3[8]; /* Reserved. */
- unsigned char queue_name[64]; /* Reserved. */
- unsigned char forward; /* Reserved. */
- unsigned char suppress; /* Reserved. */
- unsigned char selection; /* Reserved. */
- unsigned short numbers[10]; /* Reserved. */
- };
- struct copy_trace_to_file
- {
- unsigned short opcode; /* Verb identifying operation code. */
- unsigned char opext; /* Reserved. */
- unsigned char reserv2; /* Reserved. */
- unsigned short primary_rc; /* Primary return code from verb. */
- unsigned long secondary_rc; /* Secondary (qualifying) return code. */
- unsigned char reserv3[8]; /* Reserved. */
- unsigned char file_name[64]; /* Trace file name. */
- unsigned char file_option; /* File options. New or overwrite. */
- unsigned char reserv4[12]; /* Address at which supplied data resides.*/
- };
- /*****************************************************************************/
- /* Return the packing to what the user set */
- /*****************************************************************************/
- #ifdef WIN32
- #pragma pack()
- #endif
- /*****************************************************************************/
- /* ------------------------- macro definitions ----------------------------- */
- /*****************************************************************************/
- /*****************************************************************************/
- /* define type conversion macros */
- /*****************************************************************************/
- #ifndef CSVFLIPSET
- #define CSVFLIPSET
- #define CSV_LO_UC(w) ((unsigned char)(((unsigned short)(w)) & 0xFF))
- #define CSV_HI_UC(w) ((unsigned char)(((unsigned short)(w) >> 8)
- & 0xff))
- #define CSV_MAKUS(l, h) (((unsigned short)(l)) |
- ((unsigned short)(h)) << 8)
- #define CSV_MAKUL(l, h) ((unsigned long)(((unsigned short)(l))|
- ((unsigned long)((unsigned short)(h))) << 16))
- #define CSV_LO_US(l) ((unsigned short)(((unsigned long)(l)) & 0xFFFF))
- #define CSV_HI_US(l) ((unsigned short)(((unsigned long)(l) >> 16)
- & 0xffff))
- /*****************************************************************************/
- /* IF non-Intel THEN */
- /* set flipping to nop for now */
- /*****************************************************************************/
- #ifdef NON_INTEL_BYTE_ORDER
- #define CSV_FLIPI(X) (X)
- #define CSV_FLIPL(X) (X)
- /*****************************************************************************/
- /* ELSE (Intel environment) */
- /* define flipping macros */
- /*****************************************************************************/
- #else
- #define CSV_FLIPI(X) CSV_MAKUS(CSV_HI_UC(X),CSV_LO_UC(X))
- #define CSV_FLIPL(X) CSV_MAKUL(CSV_FLIPI(CSV_HI_US(X)),
- CSV_FLIPI(CSV_LO_US(X)))
- #endif
- #endif
- /*****************************************************************************/
- /* Verb op codes. */
- /*****************************************************************************/
- #define SV_CONVERT CSV_FLIPI(0x1A00)
- #define SV_DEFINE_TRACE CSV_FLIPI(0x1D00)
- #define SV_GET_CP_CONVERT_TABLE CSV_FLIPI(0x1900)
- #define SV_LOG_MESSAGE CSV_FLIPI(0x1F00)
- #define SV_TRANSFER_MS_DATA CSV_FLIPI(0x1C00)
- #define SV_SET_USER_LOG_QUEUE CSV_FLIPI(0x4B00)
- #define SV_COPY_TRACE_TO_FILE CSV_FLIPI(0x4C00)
- #define SV_DEFINE_DUMP CSV_FLIPI(0x4D00)
- /*****************************************************************************/
- /* Parameters for the Common Service Verbs. */
- /*****************************************************************************/
- #define SV_ADD 0
- #define SV_CHANGE 1
- #define SV_IGNORE 0
- #define SV_NO_ADD 1
- #define SV_NO_SEND 1
- #define SV_SEND 0
- #define SV_A 0x01
- #define SV_AE 0x00
- #define SV_ALL 0x01
- #define SV_ALERT_SUBVECTORS 0x02
- #define SV_ASCII_TO_EBCDIC 0x00
- #define SV_EBCDIC_TO_ASCII 0x01
- #define SV_FORWARD 0x02
- #define SV_INTRV 0x00
- #define SV_G 0x02
- #define SV_LOG 0x00
- #define SV_LOGS 0x00
- #define SV_NMVT 0x01
- #define SV_NO 0x00
- #define SV_NO_INTRV 0x01
- #define SV_NO_LOG 0x01
- #define SV_NONE 0x00
- #define SV_OFF 0x00
- #define SV_ON 0x01
- #define SV_PDSTATS_SUBVECTORS 0x03
- #define SV_ROUND_TRIP 0x01
- #define SV_SOME 0x00
- #define SV_SUBSTITUTE 0x00
- #define SV_SYSTEM_MESSAGES 0x01
- #define SV_USER_DEFINED 0x00
- #define SV_USER_MESSAGES 0x02
- #define SV_YES 0x01
- /****************************************************************************/
- /* Bit masks for enabling and disabling functions */
- /****************************************************************************/
- #define SV_BIT0 0x80 /* x....... */
- #define SV_BIT1 0x40 /* .x...... */
- #define SV_BIT2 0x20 /* ..x..... */
- #define SV_BIT3 0x10 /* ...x.... */
- #define SV_BIT4 0x08 /* ....x... */
- #define SV_BIT5 0x04 /* .....x.. */
- #define SV_BIT6 0x02 /* ......x. */
- #define SV_BIT7 0x01 /* .......x */
- /*****************************************************************************/
- /* Return Codes from the Common Service Verbs. */
- /*****************************************************************************/
- #define SV_COMM_SUBSYSTEM_NOT_LOADED CSV_FLIPI(0xF012)
- #define SV_CONFIG_FILE_ERROR CSV_FLIPI(0x0032)
- #define SV_INVALID_VERB CSV_FLIPI(0xFFFF)
- #define SV_INVALID_VERB_SEGMENT CSV_FLIPI(0xF008)
- #define SV_OK CSV_FLIPI(0x0000)
- #define SV_PARAMETER_CHECK CSV_FLIPI(0x0001)
- #define SV_STATE_CHECK CSV_FLIPI(0x0002)
- #define SV_UNEXPECTED_DOS_ERROR CSV_FLIPI(0xF011)
- #define SV_CANCELLED CSV_FLIPI(0x0021)
- #define SV_SERVER_RESOURCE_NOT_FOUND CSV_FLIPI(0xF024)
- #define SV_SERVER_RESOURCES_LOST CSV_FLIPI(0xF026)
- #define SV_THREAD_BLOCKING CSV_FLIPI(0xF006)
- #define SV_CONVERSION_ERROR CSV_FLIPL(0x00000406)
- #define SV_DATA_EXCEEDS_RU_SIZE CSV_FLIPL(0x00000302)
- #define SV_INVALID_CHARACTER_SET CSV_FLIPL(0x00000402)
- #define SV_INVALID_CHAR_NOT_FOUND CSV_FLIPL(0x00000630)
- #define SV_INVALID_DATA_SEGMENT CSV_FLIPL(0x00000006)
- #define SV_INVALID_DATA_TYPE CSV_FLIPL(0x00000303)
- #define SV_INVALID_DIRECTION CSV_FLIPL(0x00000401)
- #define SV_INVALID_FIRST_CHARACTER CSV_FLIPL(0x00000404)
- #define SV_INVALID_FORWARD CSV_FLIPL(0x00000700)
- #define SV_INVALID_MESSAGE_ACTION CSV_FLIPL(0x00000621)
- #define SV_INVALID_NMVT_ERROR CSV_FLIPL(0x00000304)
- #define SV_INVALID_QUEUE CSV_FLIPL(0x00000704)
- #define SV_INVALID_RESET_TRACE CSV_FLIPL(0x0000062F)
- #define SV_INVALID_SELECTION CSV_FLIPL(0x00000702)
- #define SV_INVALID_SET CSV_FLIPL(0x00000624)
- #define SV_INVALID_SOURCE_CODE_PAGE CSV_FLIPL(0x00000631)
- #define SV_INVALID_STORAGE_SIZE CSV_FLIPL(0x00000627)
- #define SV_INVALID_SUPPRESS CSV_FLIPL(0x00000701)
- #define SV_INVALID_TARGET_CODE_PAGE CSV_FLIPL(0x00000632)
- #define SV_PD_MENUS_IN_PROGRESS CSV_FLIPL(0x0000062E)
- #define SV_QUEUE_ALREADY_IN_EFFECT CSV_FLIPL(0x00000705)
- #define SV_SSCP_PU_SESSION_NOT_ACTIVE CSV_FLIPL(0x00000301)
- #define SV_TABLE_ERROR CSV_FLIPL(0x00000405)
- #define SV_TOO_HIGH_A_NUMBER CSV_FLIPL(0x00000703)
- #define SV_SERVER_CONN_FAILURE CSV_FLIPL(0x030000AB)
- /*****************************************************************************/
- /* The following constants are needed for EE12 enhancements but could not */
- /* be found in the EE header file. */
- /*****************************************************************************/
- #define SV_NEW 0x00
- #define SV_OVERWRITE 0x01
- #define SV_OUTPUT_DEVICE_FULL CSV_FLIPI(0x0031)
- #define SV_FILE_ALREADY_EXISTS CSV_FLIPI(0x0030)
- #define SV_TRACE_NOT_STOPPED CSV_FLIPL(0x0000062A)
- #define SV_INVALID_FILE_OPTION CSV_FLIPL(0x0000062B)
- #define SV_TRACE_BUFFER_EMPTY CSV_FLIPL(0x0000062C)
- #ifdef __cplusplus
- }
- #endif
- #endif