713 lines
36 KiB
C
713 lines
36 KiB
C
/* wincpic.h */
|
|
/* Copyright Data Connection Ltd. 1992 */
|
|
/* Copyright (c) 1992, Microsoft Corporation. All rights reserved. */
|
|
/*****************************************************************************/
|
|
/* CPI-Communications constants and function prototypes file */
|
|
/*****************************************************************************/
|
|
|
|
#ifndef CMCH_INCLUDED
|
|
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
|
|
#define CMCH_INCLUDED
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
/* Ensure the correct packing of structures */
|
|
/*****************************************************************************/
|
|
#ifdef WIN32
|
|
#pragma pack(4)
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
/* Type Definitions */
|
|
/*****************************************************************************/
|
|
|
|
|
|
#ifdef DOS5
|
|
#define CM_INT32 signed long int
|
|
#define CM_ENTRY extern void pascal far _loadds
|
|
#define CM_PTR far *
|
|
#endif
|
|
|
|
#ifdef WINDOWS
|
|
#define WINSNA
|
|
#define CM_INT32 signed long int
|
|
#define CM_ENTRY extern void pascal far _loadds
|
|
#define CM_PTR far *
|
|
#endif
|
|
|
|
#ifdef WIN32
|
|
#define WINSNA
|
|
#ifdef SET_UNALIGNED_ACCESS_FOR_THUNK
|
|
#define CM_INT32 signed long int UNALIGNED
|
|
#else
|
|
#define CM_INT32 signed long int
|
|
#endif
|
|
#define CM_ENTRY extern void WINAPI
|
|
#define CM_PTR *
|
|
#define CM_EVENT_HANDLE HANDLE
|
|
#endif
|
|
|
|
typedef CM_INT32 CM_CONVERSATION_STATE;
|
|
typedef CM_INT32 CM_CONVERSATION_TYPE;
|
|
typedef CM_INT32 CM_DATA_RECEIVED_TYPE;
|
|
typedef CM_INT32 CM_DEALLOCATE_TYPE;
|
|
typedef CM_INT32 CM_ERROR_DIRECTION;
|
|
typedef CM_INT32 CM_FILL;
|
|
typedef CM_INT32 CM_PREPARE_TO_RECEIVE_TYPE;
|
|
typedef CM_INT32 CM_RECEIVE_TYPE;
|
|
typedef CM_INT32 CM_REQUEST_TO_SEND_RECEIVED;
|
|
typedef CM_INT32 CM_RETURN_CODE;
|
|
typedef CM_INT32 CM_RETURN_CONTROL;
|
|
typedef CM_INT32 CM_SEND_TYPE;
|
|
typedef CM_INT32 CM_STATUS_RECEIVED;
|
|
typedef CM_INT32 CM_SYNC_LEVEL;
|
|
typedef CM_INT32 CM_END_TYPE;
|
|
typedef CM_INT32 CM_PROCESSING_MODE;
|
|
|
|
typedef CM_INT32 XC_CONVERSATION_SECURITY_TYPE;
|
|
typedef CM_INT32 XC_TP_NAME_TYPE;
|
|
|
|
/**STRUCT+********************************************************************/
|
|
/* Side information struct used by xcmssi to define side information */
|
|
/*****************************************************************************/
|
|
typedef struct side_info_entry
|
|
{
|
|
unsigned char sym_dest_name[8]; /* symbolic destination name */
|
|
unsigned char partner_LU_name[17]; /* fully Q'd PLU name */
|
|
unsigned char reserved[3]; /* future expansion ?? */
|
|
XC_TP_NAME_TYPE TP_name_type; /* set to XC_APPLICATION_TP */
|
|
/* or to XC_SNA_SERVICE_TP */
|
|
unsigned char TP_name[64]; /* TP name */
|
|
unsigned char mode_name[8]; /* mode name */
|
|
XC_CONVERSATION_SECURITY_TYPE
|
|
conversation_security_type; /* set to XC_SECURITY_NONE */
|
|
/* or to XC_SECURITY_SAME */
|
|
/* or to XC_SECURITY_PROGRAM */
|
|
unsigned char security_user_ID[8]; /* user_ID */
|
|
unsigned char security_password[8]; /* password */
|
|
} SIDE_INFO;
|
|
/**STRUCT-********************************************************************/
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Constant Definitions */
|
|
/*****************************************************************************/
|
|
|
|
/*****************************************************************************/
|
|
/* Values for the conversation_state */
|
|
/*****************************************************************************/
|
|
#define CM_INITIALIZE_STATE (CM_CONVERSATION_STATE) 2
|
|
#define CM_SEND_STATE (CM_CONVERSATION_STATE) 3
|
|
#define CM_RECEIVE_STATE (CM_CONVERSATION_STATE) 4
|
|
#define CM_SEND_PENDING_STATE (CM_CONVERSATION_STATE) 5
|
|
#define CM_CONFIRM_STATE (CM_CONVERSATION_STATE) 6
|
|
#define CM_CONFIRM_SEND_STATE (CM_CONVERSATION_STATE) 7
|
|
#define CM_CONFIRM_DEALLOCATE_STATE (CM_CONVERSATION_STATE) 8
|
|
|
|
#define CM_DEFER_RECEIVE_STATE (CM_CONVERSATION_STATE) 9
|
|
#define CM_DEFER_DEALLOCATE_STATE (CM_CONVERSATION_STATE) 10
|
|
#define CM_SYNC_POINT_STATE (CM_CONVERSATION_STATE) 11
|
|
#define CM_SYNC_POINT_SEND_STATE (CM_CONVERSATION_STATE) 12
|
|
#define CM_SYNC_POINT_DEALLOCATE_STATE (CM_CONVERSATION_STATE) 13
|
|
#define CM_INITIALIZE_INCOMING_STATE (CM_CONVERSATION_STATE) 14
|
|
|
|
/*****************************************************************************/
|
|
/* Values for the conversation_type */
|
|
/*****************************************************************************/
|
|
#define CM_BASIC_CONVERSATION (CM_CONVERSATION_TYPE) 0
|
|
#define CM_MAPPED_CONVERSATION (CM_CONVERSATION_TYPE) 1
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for data_received */
|
|
/*****************************************************************************/
|
|
#define CM_NO_DATA_RECEIVED (CM_DATA_RECEIVED_TYPE) 0
|
|
#define CM_DATA_RECEIVED (CM_DATA_RECEIVED_TYPE) 1
|
|
#define CM_COMPLETE_DATA_RECEIVED (CM_DATA_RECEIVED_TYPE) 2
|
|
#define CM_INCOMPLETE_DATA_RECEIVED (CM_DATA_RECEIVED_TYPE) 3
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for the deallocate_type */
|
|
/*****************************************************************************/
|
|
#define CM_DEALLOCATE_SYNC_LEVEL (CM_DEALLOCATE_TYPE) 0
|
|
#define CM_DEALLOCATE_FLUSH (CM_DEALLOCATE_TYPE) 1
|
|
#define CM_DEALLOCATE_CONFIRM (CM_DEALLOCATE_TYPE) 2
|
|
#define CM_DEALLOCATE_ABEND (CM_DEALLOCATE_TYPE) 3
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for the error_direction */
|
|
/*****************************************************************************/
|
|
#define CM_RECEIVE_ERROR (CM_ERROR_DIRECTION) 0
|
|
#define CM_SEND_ERROR (CM_ERROR_DIRECTION) 1
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for fill type */
|
|
/*****************************************************************************/
|
|
#define CM_FILL_LL (CM_FILL) 0
|
|
#define CM_FILL_BUFFER (CM_FILL) 1
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for specify_processing_mode */
|
|
/*****************************************************************************/
|
|
#define CM_BLOCKING (CM_PROCESSING_MODE) 0
|
|
#define CM_NON_BLOCKING (CM_PROCESSING_MODE) 1
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for prepare_to_receive_type */
|
|
/*****************************************************************************/
|
|
#define CM_PREP_TO_RECEIVE_SYNC_LEVEL (CM_PREPARE_TO_RECEIVE_TYPE) 0
|
|
#define CM_PREP_TO_RECEIVE_FLUSH (CM_PREPARE_TO_RECEIVE_TYPE) 1
|
|
#define CM_PREP_TO_RECEIVE_CONFIRM (CM_PREPARE_TO_RECEIVE_TYPE) 2
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for the receive_type */
|
|
/*****************************************************************************/
|
|
#define CM_RECEIVE_AND_WAIT (CM_RECEIVE_TYPE) 0
|
|
#define CM_RECEIVE_IMMEDIATE (CM_RECEIVE_TYPE) 1
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for request_to_send_received */
|
|
/*****************************************************************************/
|
|
#define CM_REQ_TO_SEND_NOT_RECEIVED (CM_REQUEST_TO_SEND_RECEIVED) 0
|
|
#define CM_REQ_TO_SEND_RECEIVED (CM_REQUEST_TO_SEND_RECEIVED) 1
|
|
|
|
/*****************************************************************************/
|
|
/* Values for return_code (including CPI-RR value, which start at 100) */
|
|
/*****************************************************************************/
|
|
#define CM_OK (CM_RETURN_CODE) 0
|
|
#define CM_ALLOCATE_FAILURE_NO_RETRY (CM_RETURN_CODE) 1
|
|
#define CM_ALLOCATE_FAILURE_RETRY (CM_RETURN_CODE) 2
|
|
#define CM_CONVERSATION_TYPE_MISMATCH (CM_RETURN_CODE) 3
|
|
#define CM_PIP_NOT_SPECIFIED_CORRECTLY (CM_RETURN_CODE) 5
|
|
#define CM_SECURITY_NOT_VALID (CM_RETURN_CODE) 6
|
|
#define CM_SYNC_LVL_NOT_SUPPORTED_LU (CM_RETURN_CODE) 7
|
|
#define CM_SYNC_LVL_NOT_SUPPORTED_PGM (CM_RETURN_CODE) 8
|
|
#define CM_TPN_NOT_RECOGNIZED (CM_RETURN_CODE) 9
|
|
|
|
#define CM_SYNC_LEVEL_NOT_SUPPORTED_LU (CM_RETURN_CODE) 7
|
|
#define CM_SYNC_LEVEL_NOT_SUPPORTED_PGM (CM_RETURN_CODE) 8
|
|
#define CM_TPN_NOT_RECOGNISED (CM_RETURN_CODE) 9
|
|
|
|
#define CM_TP_NOT_AVAILABLE_NO_RETRY (CM_RETURN_CODE) 10
|
|
#define CM_TP_NOT_AVAILABLE_RETRY (CM_RETURN_CODE) 11
|
|
#define CM_DEALLOCATED_ABEND (CM_RETURN_CODE) 17
|
|
#define CM_DEALLOCATED_NORMAL (CM_RETURN_CODE) 18
|
|
#define CM_PARAMETER_ERROR (CM_RETURN_CODE) 19
|
|
#define CM_PRODUCT_SPECIFIC_ERROR (CM_RETURN_CODE) 20
|
|
#define CM_PROGRAM_ERROR_NO_TRUNC (CM_RETURN_CODE) 21
|
|
#define CM_PROGRAM_ERROR_PURGING (CM_RETURN_CODE) 22
|
|
#define CM_PROGRAM_ERROR_TRUNC (CM_RETURN_CODE) 23
|
|
#define CM_PROGRAM_PARAMETER_CHECK (CM_RETURN_CODE) 24
|
|
#define CM_PROGRAM_STATE_CHECK (CM_RETURN_CODE) 25
|
|
#define CM_RESOURCE_FAILURE_NO_RETRY (CM_RETURN_CODE) 26
|
|
#define CM_RESOURCE_FAILURE_RETRY (CM_RETURN_CODE) 27
|
|
#define CM_UNSUCCESSFUL (CM_RETURN_CODE) 28
|
|
#define CM_DEALLOCATED_ABEND_SVC (CM_RETURN_CODE) 30
|
|
#define CM_DEALLOCATED_ABEND_TIMER (CM_RETURN_CODE) 31
|
|
#define CM_SVC_ERROR_NO_TRUNC (CM_RETURN_CODE) 32
|
|
#define CM_SVC_ERROR_PURGING (CM_RETURN_CODE) 33
|
|
#define CM_SVC_ERROR_TRUNC (CM_RETURN_CODE) 34
|
|
|
|
#define CM_OPERATION_INCOMPLETE (CM_RETURN_CODE) 35
|
|
#define CM_SYSTEM_EVENT (CM_RETURN_CODE) 36
|
|
#define CM_OPERATION_NOT_ACCEPTED (CM_RETURN_CODE) 37
|
|
|
|
#define CM_TAKE_BACKOUT (CM_RETURN_CODE) 100
|
|
#define CM_DEALLOCATED_ABEND_BO (CM_RETURN_CODE) 130
|
|
#define CM_DEALLOCATED_ABEND_SVC_BO (CM_RETURN_CODE) 131
|
|
#define CM_DEALLOCATED_ABEND_TIMER_BO (CM_RETURN_CODE) 132
|
|
#define CM_RESOURCE_FAIL_NO_RETRY_BO (CM_RETURN_CODE) 133
|
|
#define CM_RESOURCE_FAILURE_RETRY_BO (CM_RETURN_CODE) 134
|
|
#define CM_DEALLOCATED_NORMAL_BO (CM_RETURN_CODE) 135
|
|
|
|
/*****************************************************************************/
|
|
/* Values for return_control */
|
|
/*****************************************************************************/
|
|
#define CM_WHEN_SESSION_ALLOCATED (CM_RETURN_CONTROL) 0
|
|
#define CM_IMMEDIATE (CM_RETURN_CONTROL) 1
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for the send_type */
|
|
/*****************************************************************************/
|
|
#define CM_BUFFER_DATA (CM_SEND_TYPE) 0
|
|
#define CM_SEND_AND_FLUSH (CM_SEND_TYPE) 1
|
|
#define CM_SEND_AND_CONFIRM (CM_SEND_TYPE) 2
|
|
#define CM_SEND_AND_PREP_TO_RECEIVE (CM_SEND_TYPE) 3
|
|
#define CM_SEND_AND_DEALLOCATE (CM_SEND_TYPE) 4
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for status_received */
|
|
/*****************************************************************************/
|
|
#define CM_NO_STATUS_RECEIVED (CM_STATUS_RECEIVED) 0
|
|
#define CM_SEND_RECEIVED (CM_STATUS_RECEIVED) 1
|
|
#define CM_CONFIRM_RECEIVED (CM_STATUS_RECEIVED) 2
|
|
#define CM_CONFIRM_SEND_RECEIVED (CM_STATUS_RECEIVED) 3
|
|
#define CM_CONFIRM_DEALLOC_RECEIVED (CM_STATUS_RECEIVED) 4
|
|
|
|
#define CM_TAKE_COMMIT (CM_STATUS_RECEIVED) 5
|
|
#define CM_TAKE_COMMIT_SEND (CM_STATUS_RECEIVED) 6
|
|
#define CM_TAKE_COMMIT_DEALLOCATE (CM_STATUS_RECEIVED) 7
|
|
|
|
/*****************************************************************************/
|
|
/* Values for the sync_level */
|
|
/*****************************************************************************/
|
|
#define CM_NONE (CM_SYNC_LEVEL) 0
|
|
#define CM_CONFIRM (CM_SYNC_LEVEL) 1
|
|
|
|
/*****************************************************************************/
|
|
/* Values for maximum sizes of strings and buffers */
|
|
/*****************************************************************************/
|
|
#define CM_CID_SIZE (8) /* conversation ID */
|
|
#define CM_CTX_SIZE (32) /* context ID */
|
|
#define CM_LD_SIZE (512) /* log data */
|
|
#define CM_MN_SIZE (8) /* mode name */
|
|
#define CM_PLN_SIZE (17) /* partner LU name */
|
|
#define CM_PW_SIZE (10) /* password */
|
|
#define CM_SDN_SIZE (8) /* symbolic destination name */
|
|
#define CM_TPN_SIZE (64) /* TP name */
|
|
#define CM_UID_SIZE (10) /* userid ID */
|
|
|
|
/*****************************************************************************/
|
|
/* Values for the conversation_security_type (NS/2 compatible) */
|
|
/*****************************************************************************/
|
|
#define XC_SECURITY_NONE (XC_CONVERSATION_SECURITY_TYPE) 0
|
|
#define XC_SECURITY_SAME (XC_CONVERSATION_SECURITY_TYPE) 1
|
|
#define XC_SECURITY_PROGRAM (XC_CONVERSATION_SECURITY_TYPE) 2
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Values for the TP_name_type (NS/2 compatible) */
|
|
/*****************************************************************************/
|
|
#define XC_APPLICATION_TP (XC_TP_NAME_TYPE) 0
|
|
#define XC_SNA_SERVICE_TP (XC_TP_NAME_TYPE) 1
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Function prototypes for CPIC call routines */
|
|
/*****************************************************************************/
|
|
|
|
/* Accept_Conversation */
|
|
CM_ENTRY cmaccp(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Allocate */
|
|
CM_ENTRY cmallc(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Cancel_Conversation */
|
|
CM_ENTRY cmcanc(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_INT32 CM_PTR); /* return_code *WSNA1*/
|
|
|
|
/* Confirm */
|
|
CM_ENTRY cmcfm(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_REQUEST_TO_SEND_RECEIVED CM_PTR, /* request_to_send_rec.. */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Confirmed */
|
|
CM_ENTRY cmcfmd(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Deallocate */
|
|
CM_ENTRY cmdeal(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_Conversation_State */
|
|
CM_ENTRY cmecs(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_CONVERSATION_STATE CM_PTR, /* conversation_state */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_Conversation_Type */
|
|
CM_ENTRY cmect(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_CONVERSATION_TYPE CM_PTR, /* conversation type */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_Mode_Name */
|
|
CM_ENTRY cmemn(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* mode_name */
|
|
CM_INT32 CM_PTR, /* mode_name_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_Partner_LU_Name */
|
|
CM_ENTRY cmepln(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* partner_LU_name */
|
|
CM_INT32 CM_PTR, /* partner_LU_name_len.. */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_Sync_Level */
|
|
CM_ENTRY cmesl(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_SYNC_LEVEL CM_PTR, /* sync_level */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_TP_Name */
|
|
CM_ENTRY cmetpn(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* TP_name */
|
|
CM_INT32 CM_PTR, /* TP_name_length */
|
|
CM_INT32 CM_PTR); /* return_code *WSNA1*/
|
|
|
|
/* Flush */
|
|
CM_ENTRY cmflus(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Initialize_Conversation */
|
|
CM_ENTRY cminit(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* sym_dest_name */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Prepare_To_Receive */
|
|
CM_ENTRY cmptr(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Receive */
|
|
CM_ENTRY cmrcv(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* buffer */
|
|
CM_INT32 CM_PTR, /* requested_length */
|
|
CM_DATA_RECEIVED_TYPE CM_PTR, /* data_received */
|
|
CM_INT32 CM_PTR, /* received_length */
|
|
CM_STATUS_RECEIVED CM_PTR, /* status_received */
|
|
CM_REQUEST_TO_SEND_RECEIVED CM_PTR, /* request_to_send_rec.. */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Request_To_Send */
|
|
CM_ENTRY cmrts(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Send */
|
|
CM_ENTRY cmsend(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* buffer */
|
|
CM_INT32 CM_PTR, /* send_length */
|
|
CM_REQUEST_TO_SEND_RECEIVED CM_PTR, /* request_to_send_rec.. */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Send_Error */
|
|
CM_ENTRY cmserr(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_REQUEST_TO_SEND_RECEIVED CM_PTR, /* request_to_send_rec.. */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Conversation_Type */
|
|
CM_ENTRY cmsct(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_CONVERSATION_TYPE CM_PTR, /* conversation_type */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Deallocate_Type */
|
|
CM_ENTRY cmsdt(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_DEALLOCATE_TYPE CM_PTR, /* deallocate_type */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Error_Direction */
|
|
CM_ENTRY cmsed(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_ERROR_DIRECTION CM_PTR, /* error_direction */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Fill */
|
|
CM_ENTRY cmsf(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_FILL CM_PTR, /* fill */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Log_Data */
|
|
CM_ENTRY cmsld(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* log_data */
|
|
CM_INT32 CM_PTR, /* log_data_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Specify_Local_TP_Name */
|
|
CM_ENTRY cmsltp(unsigned char CM_PTR, /* TP name */
|
|
CM_INT32 CM_PTR, /* TP_name_length */
|
|
CM_INT32 CM_PTR); /* return_code *WSNA1*/
|
|
|
|
/* Set_Processing_Mode */
|
|
CM_ENTRY cmspm(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_INT32 CM_PTR, /* processing mode */
|
|
CM_INT32 CM_PTR); /* return_code *WSNA1*/
|
|
|
|
|
|
/* Set_Mode_Name */
|
|
CM_ENTRY cmsmn(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* mode_name */
|
|
CM_INT32 CM_PTR, /* mode_name_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Partner_LU_Name */
|
|
CM_ENTRY cmspln(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* partner_LU_name */
|
|
CM_INT32 CM_PTR, /* partner_LU_name_len.. */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Prepare_To_Receive_Type */
|
|
CM_ENTRY cmsptr(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_PREPARE_TO_RECEIVE_TYPE CM_PTR, /* prepare_to_receive_.. */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Receive_Type */
|
|
CM_ENTRY cmsrt(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_RECEIVE_TYPE CM_PTR, /* receive_type */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Return_Control */
|
|
CM_ENTRY cmsrc(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_RETURN_CONTROL CM_PTR, /* return_control */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Send_Type */
|
|
CM_ENTRY cmsst(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_SEND_TYPE CM_PTR, /* send_type */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Sync_Level */
|
|
CM_ENTRY cmssl(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_SYNC_LEVEL CM_PTR, /* sync_level */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_TP_name */
|
|
CM_ENTRY cmstpn(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* TP_name */
|
|
CM_INT32 CM_PTR, /* TP_name_legth */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Test_Request_To_Send_Received */
|
|
CM_ENTRY cmtrts(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_REQUEST_TO_SEND_RECEIVED CM_PTR, /* request_to_send_rec.. */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Wait_For_Conversation */
|
|
CM_ENTRY cmwait(unsigned char CM_PTR, /* conversation_ID */
|
|
CM_INT32 CM_PTR, /* conversation ret code */
|
|
CM_INT32 CM_PTR); /* return_code *WSNA1*/
|
|
|
|
/* Convert incoming data (EBCDIC -> ASCII) */
|
|
CM_ENTRY cmcnvi(unsigned char CM_PTR, /* buffer to convert */
|
|
CM_INT32 CM_PTR, /* buffer length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Convert Outgoing data (ASCII -> EBCDIC) */
|
|
CM_ENTRY cmcnvo(unsigned char CM_PTR, /* buffer to convert */
|
|
CM_INT32 CM_PTR, /* buffer length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/*****************************************************************************/
|
|
/* Function Prototypes for additional NS/2 compatible call routines */
|
|
/*****************************************************************************/
|
|
|
|
/* Delete_CPIC_Side_Information */
|
|
CM_ENTRY xcmdsi(unsigned char CM_PTR, /* key_lock */
|
|
unsigned char CM_PTR, /* sym_dest_name */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_CPIC_Side_Information */
|
|
CM_ENTRY xcmesi(CM_INT32 CM_PTR, /* entry_number */
|
|
unsigned char CM_PTR, /* sym_dest_name */
|
|
SIDE_INFO CM_PTR, /* side_info_entry */
|
|
CM_INT32 CM_PTR, /* side_info_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_CPIC_Side_Information */
|
|
CM_ENTRY xcmssi(unsigned char CM_PTR, /* key_lock */
|
|
SIDE_INFO CM_PTR, /* side_info_entry */
|
|
CM_INT32 CM_PTR, /* side_info length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_Conversation_Security_Type */
|
|
CM_ENTRY xcecst(unsigned char CM_PTR, /* conversation_ID */
|
|
XC_CONVERSATION_SECURITY_TYPE CM_PTR, /* conversation_sec... */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_Conversation_User_ID */
|
|
CM_ENTRY xcecsu(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* user_ID */
|
|
CM_INT32 CM_PTR, /* user_ID_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Conversation_Security_Password */
|
|
CM_ENTRY xcscsp(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* password */
|
|
CM_INT32 CM_PTR, /* password_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Conversation_Security_Type */
|
|
CM_ENTRY xcscst(unsigned char CM_PTR, /* conversation_ID */
|
|
XC_CONVERSATION_SECURITY_TYPE CM_PTR, /* conversation_sec... */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Conversation_Security_User_ID */
|
|
CM_ENTRY xcscsu(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* user_ID */
|
|
CM_INT32 CM_PTR, /* user_ID_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
|
|
/*****************************************************************************/
|
|
/* Also have new prototypes with cm not xc */
|
|
/*****************************************************************************/
|
|
/* Extract_Conversation_Security_Type */
|
|
CM_ENTRY cmecst(unsigned char CM_PTR, /* conversation_ID */
|
|
XC_CONVERSATION_SECURITY_TYPE CM_PTR, /* conversation_sec... */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Extract_Conversation_User_ID */
|
|
CM_ENTRY cmecsu(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* user_ID */
|
|
CM_INT32 CM_PTR, /* user_ID_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Conversation_Security_Password */
|
|
CM_ENTRY cmscsp(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* password */
|
|
CM_INT32 CM_PTR, /* password_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Conversation_Security_Type */
|
|
CM_ENTRY cmscst(unsigned char CM_PTR, /* conversation_ID */
|
|
XC_CONVERSATION_SECURITY_TYPE CM_PTR, /* conversation_sec... */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
/* Set_Conversation_Security_User_ID */
|
|
CM_ENTRY cmscsu(unsigned char CM_PTR, /* conversation_ID */
|
|
unsigned char CM_PTR, /* user_ID */
|
|
CM_INT32 CM_PTR, /* user_ID_length */
|
|
CM_RETURN_CODE CM_PTR); /* return_code */
|
|
|
|
#ifdef WINSNA
|
|
/* Specify_Windows_Handle */
|
|
CM_ENTRY xchwnd(HWND, /* Window HWND *WSNA1*/
|
|
CM_INT32 CM_PTR); /* return_code */
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
/* Function prototypes for undocumented NS/2 compatible call routines. As */
|
|
/* these routines are undocumented the prototypes do not include any */
|
|
/* parameters. These are needed to allow binary compatibility with NS/2 */
|
|
/* CPI-C applications, with the proviso that only documented calls are */
|
|
/* actually used. */
|
|
/*****************************************************************************/
|
|
|
|
CM_ENTRY allocate_memory();
|
|
CM_ENTRY free_cpic_memory();
|
|
CM_ENTRY icmssi();
|
|
|
|
|
|
#ifdef WINSNA
|
|
/*---------------------------------------------------------------------------*/
|
|
/* Windows CPI-C Extention Return Codes. */
|
|
/*---------------------------------------------------------------------------*/
|
|
|
|
#define WCPICALREADY 0xF000 /* An async call is already outstanding */
|
|
#define WCPICINVALID 0xF001 /* Async Task Id is invalid */
|
|
#define WCPICCANCEL 0xF002 /* Blocking call was cancelled */
|
|
#define WCPICSYSNOTREADY 0xF003 /* Underlying subsystem not started */
|
|
#define WCPICVERNOTSUPPORTED 0xF004 /* Application version not supported */
|
|
|
|
|
|
/*----------------------------------------------------------------------------*/
|
|
/* Api structre definitions */
|
|
/*----------------------------------------------------------------------------*/
|
|
#define WCPICDESCRIPTION_LEN 127
|
|
|
|
typedef struct tagWCPICDATA {
|
|
WORD wVersion;
|
|
char szDescription[WCPICDESCRIPTION_LEN+1];
|
|
} WCPICDATA, * PWCPICDATA, FAR * LPWCPICDATA;
|
|
|
|
/*****************************************************************************/
|
|
/* ------------- Windows CPI-C function prototypes ------------------------- */
|
|
/*****************************************************************************/
|
|
|
|
extern BOOL WINAPI WinCPICCleanup(void);
|
|
extern BOOL WINAPI WinCPICIsBlocking(void);
|
|
extern int WINAPI WinCPICStartup(WORD, LPWCPICDATA );
|
|
extern FARPROC WINAPI WinCPICSetBlockingHook( FARPROC );
|
|
extern BOOL WINAPI WinCPICUnhookBlockingHook(void);
|
|
#ifdef WIN32
|
|
extern VOID WINAPI WinCPICSetEvent(unsigned char CM_PTR,
|
|
CM_EVENT_HANDLE CM_PTR,
|
|
CM_RETURN_CODE CM_PTR);
|
|
extern VOID WINAPI WinCPICExtractEvent(unsigned char CM_PTR,
|
|
CM_EVENT_HANDLE CM_PTR,
|
|
CM_RETURN_CODE CM_PTR);
|
|
#endif
|
|
|
|
#define WIN_CPIC_ASYNC_COMPLETE_MESSAGE "WinAsyncCPI-C"
|
|
|
|
#endif
|
|
|
|
/*
|
|
* These macros allow you to write programs that are easier to read, since
|
|
* you can use the full name of the CPI-C call rather than its 6 character
|
|
* entry point.
|
|
*
|
|
* When porting code that uses these macros, you will have to ensure that
|
|
* the macros are defined on the target platform.
|
|
*/
|
|
|
|
#ifdef READABLE_MACROS
|
|
|
|
#define Accept_Conversation(v1,v2) cmaccp(v1,v2)
|
|
#define Allocate(v1,v2) cmallc(v1,v2)
|
|
#define Cancel_Conversation(v1,v2) cmcanc(v1,v2)
|
|
#define Confirm(v1,v2,v3) cmcfm(v1,v2,v3)
|
|
#define Confirmed(v1,v2) cmcfmd(v1,v2)
|
|
#define Convert_Incoming(v1,v2,v3) cmcnvi(v1,v2,v3)
|
|
#define Convert_Outgoing(v1,v2,v3) cmcnvo(v1,v2,v3)
|
|
#define Deallocate(v1,v2) cmdeal(v1,v2)
|
|
#define Extract_Conversation_Security_User_ID(v1,v2,v3,v4) cmecsu(v1,v2,v3,v4)
|
|
#define Extract_Conversation_Security_Type(v1,v2,v3) cmecst(v1,v2,v3)
|
|
#define Extract_Mode_Name(v1,v2,v3,v4) cmemn(v1,v2,v3,v4)
|
|
#define Extract_Partner_LU_Name(v1,v2,v3,v4) cmepln(v1,v2,v3,v4)
|
|
#define Extract_Sync_Level(v1,v2,v3) cmesl(v1,v2,v3)
|
|
#define Extract_TP_Name(v1,v2,v3,v4) cmetpn(v1,v2,v3,v4)
|
|
#define Flush(v1,v2) cmflus(v1,v2)
|
|
#define Initialize_Conversation(v1,v2,v3) cminit(v1,v2,v3)
|
|
#define Prepare_To_Receive(v1,v2) cmptr(v1,v2)
|
|
#define Receive(v1,v2,v3,v4,v5,v6,v7,v8) cmrcv(v1,v2,v3,v4,v5,v6,v7,v8)
|
|
#define Request_To_Send(v1,v2) cmrts(v1,v2)
|
|
#define Send_Error(v1,v2,v3) cmserr(v1,v2,v3)
|
|
#define Set_Conversation_Type(v1,v2,v3) cmsct(v1,v2,v3)
|
|
#define Set_Deallocate_Type(v1,v2,v3) cmsdt(v1,v2,v3)
|
|
#define Set_Error_Direction(v1,v2,v3) cmsed(v1,v2,v3)
|
|
#define Send_Data(v1,v2,v3,v4,v5) cmsend(v1,v2,v3,v4,v5)
|
|
#define Set_Fill(v1,v2,v3) cmsf(v1,v2,v3)
|
|
#define Set_Log_Data(v1,v2,v3,v4) cmsld(v1,v2,v3,v4)
|
|
#define Set_Mode_Name(v1,v2,v3,v4) cmsmn(v1,v2,v3,v4)
|
|
#define Set_Partner_LU_Name(v1,v2,v3,v4) cmspln(v1,v2,v3,v4)
|
|
#define Set_Prepare_To_Receive_Type(v1,v2,v3) cmsptr(v1,v2,v3)
|
|
#define Set_Processing_Mode(v1,v2,v3) cmspm(v1,v2,v3)
|
|
#define Set_Receive_Type(v1,v2,v3) cmsrt(v1,v2,v3)
|
|
#define Set_Return_Control(v1,v2,v3) cmsrc(v1,v2,v3)
|
|
#define Set_Send_Type(v1,v2,v3) cmsst(v1,v2,v3)
|
|
#define Set_Sync_Level(v1,v2,v3) cmssl(v1,v2,v3)
|
|
#define Set_TP_Name(v1,v2,v3,v4) cmstpn(v1,v2,v3,v4)
|
|
#define Specify_Local_TP_Name(v1,v2,v3) cmsltp(v1,v2,v3)
|
|
#define Set_Conversation_Security_Password(v1,v2,v3,v4) cmscsp(v1,v2,v3,v4)
|
|
#define Set_Conversation_Security_Type(v1,v2,v3) cmscst(v1,v2,v3)
|
|
#define Set_Conversation_Security_User_ID(v1,v2,v3,v4) cmscsu(v1,v2,v3,v4)
|
|
#define Test_Request_To_Send_Received(v1,v2,v3) cmtrts(v1,v2,v3)
|
|
#define Wait_For_Conversation(v1,v2,v3) cmwait(v1,v2,v3)
|
|
#define Specify_Windows_Handle(v1,v2) xchwnd(v1,v2)
|
|
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
/*****************************************************************************/
|
|
/* Restore to default packing of structures */
|
|
/*****************************************************************************/
|
|
#ifdef WIN32
|
|
#pragma pack()
|
|
#endif
|
|
|
|
#pragma option pop /*P_O_Pop*/
|
|
#endif
|
|
|