home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / wincpic.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  36.4 KB  |  713 lines

  1. /* wincpic.h */
  2. /* Copyright Data Connection Ltd. 1992 */
  3. /* Copyright (c) 1992, Microsoft Corporation.  All rights reserved.          */
  4. /*****************************************************************************/
  5. /* CPI-Communications constants and function prototypes file                 */
  6. /*****************************************************************************/
  7.  
  8. #ifndef CMCH_INCLUDED
  9. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  10. #define CMCH_INCLUDED
  11.  
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15.  
  16. /*****************************************************************************/
  17. /* Ensure the correct packing of structures                                  */
  18. /*****************************************************************************/
  19. #ifdef WIN32
  20.   #pragma pack(4)
  21. #endif
  22.  
  23. /*****************************************************************************/
  24. /* Type Definitions                                                          */
  25. /*****************************************************************************/
  26.  
  27.  
  28. #ifdef DOS5
  29. #define CM_INT32 signed long int
  30. #define CM_ENTRY extern void pascal far _loadds
  31. #define CM_PTR   far *
  32. #endif
  33.  
  34. #ifdef WINDOWS
  35. #define WINSNA
  36. #define CM_INT32 signed long int
  37. #define CM_ENTRY extern void pascal far _loadds
  38. #define CM_PTR   far *
  39. #endif
  40.  
  41. #ifdef WIN32
  42. #define WINSNA
  43. #ifdef SET_UNALIGNED_ACCESS_FOR_THUNK
  44. #define CM_INT32 signed long int UNALIGNED
  45. #else
  46. #define CM_INT32 signed long int
  47. #endif
  48. #define CM_ENTRY extern void WINAPI
  49. #define CM_PTR   *
  50. #define CM_EVENT_HANDLE HANDLE
  51. #endif
  52.  
  53. typedef CM_INT32 CM_CONVERSATION_STATE;
  54. typedef CM_INT32 CM_CONVERSATION_TYPE;
  55. typedef CM_INT32 CM_DATA_RECEIVED_TYPE;
  56. typedef CM_INT32 CM_DEALLOCATE_TYPE;
  57. typedef CM_INT32 CM_ERROR_DIRECTION;
  58. typedef CM_INT32 CM_FILL;
  59. typedef CM_INT32 CM_PREPARE_TO_RECEIVE_TYPE;
  60. typedef CM_INT32 CM_RECEIVE_TYPE;
  61. typedef CM_INT32 CM_REQUEST_TO_SEND_RECEIVED;
  62. typedef CM_INT32 CM_RETURN_CODE;
  63. typedef CM_INT32 CM_RETURN_CONTROL;
  64. typedef CM_INT32 CM_SEND_TYPE;
  65. typedef CM_INT32 CM_STATUS_RECEIVED;
  66. typedef CM_INT32 CM_SYNC_LEVEL;
  67. typedef CM_INT32 CM_END_TYPE;
  68. typedef CM_INT32 CM_PROCESSING_MODE;
  69.  
  70. typedef CM_INT32 XC_CONVERSATION_SECURITY_TYPE;
  71. typedef CM_INT32 XC_TP_NAME_TYPE;
  72.  
  73. /**STRUCT+********************************************************************/
  74. /* Side information struct used by xcmssi to define side information         */
  75. /*****************************************************************************/
  76. typedef struct side_info_entry
  77. {
  78.   unsigned char   sym_dest_name[8];            /* symbolic destination name  */
  79.   unsigned char   partner_LU_name[17];         /* fully Q'd PLU name         */
  80.   unsigned char   reserved[3];                 /* future expansion ??        */
  81.   XC_TP_NAME_TYPE TP_name_type;                /* set to XC_APPLICATION_TP   */
  82.                                                /*  or to XC_SNA_SERVICE_TP   */
  83.   unsigned char   TP_name[64];                 /* TP name                    */
  84.   unsigned char   mode_name[8];                /* mode name                  */
  85.   XC_CONVERSATION_SECURITY_TYPE
  86.                   conversation_security_type;  /* set to XC_SECURITY_NONE    */
  87.                                                /*  or to XC_SECURITY_SAME    */
  88.                                                /*  or to XC_SECURITY_PROGRAM */
  89.   unsigned char   security_user_ID[8];         /* user_ID                    */
  90.   unsigned char   security_password[8];        /* password                   */
  91. } SIDE_INFO;
  92. /**STRUCT-********************************************************************/
  93.  
  94.  
  95. /*****************************************************************************/
  96. /* Constant Definitions                                                      */
  97. /*****************************************************************************/
  98.  
  99. /*****************************************************************************/
  100. /* Values for the conversation_state                                         */
  101. /*****************************************************************************/
  102. #define CM_INITIALIZE_STATE              (CM_CONVERSATION_STATE) 2
  103. #define CM_SEND_STATE                    (CM_CONVERSATION_STATE) 3
  104. #define CM_RECEIVE_STATE                 (CM_CONVERSATION_STATE) 4
  105. #define CM_SEND_PENDING_STATE            (CM_CONVERSATION_STATE) 5
  106. #define CM_CONFIRM_STATE                 (CM_CONVERSATION_STATE) 6
  107. #define CM_CONFIRM_SEND_STATE            (CM_CONVERSATION_STATE) 7
  108. #define CM_CONFIRM_DEALLOCATE_STATE      (CM_CONVERSATION_STATE) 8
  109.  
  110. #define CM_DEFER_RECEIVE_STATE           (CM_CONVERSATION_STATE) 9
  111. #define CM_DEFER_DEALLOCATE_STATE        (CM_CONVERSATION_STATE) 10
  112. #define CM_SYNC_POINT_STATE              (CM_CONVERSATION_STATE) 11
  113. #define CM_SYNC_POINT_SEND_STATE         (CM_CONVERSATION_STATE) 12
  114. #define CM_SYNC_POINT_DEALLOCATE_STATE   (CM_CONVERSATION_STATE) 13
  115. #define CM_INITIALIZE_INCOMING_STATE     (CM_CONVERSATION_STATE) 14
  116.  
  117. /*****************************************************************************/
  118. /* Values for the conversation_type                                          */
  119. /*****************************************************************************/
  120. #define CM_BASIC_CONVERSATION   (CM_CONVERSATION_TYPE) 0
  121. #define CM_MAPPED_CONVERSATION  (CM_CONVERSATION_TYPE) 1
  122.  
  123.  
  124. /*****************************************************************************/
  125. /* Values for data_received                                                  */
  126. /*****************************************************************************/
  127. #define CM_NO_DATA_RECEIVED          (CM_DATA_RECEIVED_TYPE) 0
  128. #define CM_DATA_RECEIVED             (CM_DATA_RECEIVED_TYPE) 1
  129. #define CM_COMPLETE_DATA_RECEIVED    (CM_DATA_RECEIVED_TYPE) 2
  130. #define CM_INCOMPLETE_DATA_RECEIVED  (CM_DATA_RECEIVED_TYPE) 3
  131.  
  132.  
  133. /*****************************************************************************/
  134. /* Values for the deallocate_type                                            */
  135. /*****************************************************************************/
  136. #define CM_DEALLOCATE_SYNC_LEVEL  (CM_DEALLOCATE_TYPE) 0
  137. #define CM_DEALLOCATE_FLUSH       (CM_DEALLOCATE_TYPE) 1
  138. #define CM_DEALLOCATE_CONFIRM     (CM_DEALLOCATE_TYPE) 2
  139. #define CM_DEALLOCATE_ABEND       (CM_DEALLOCATE_TYPE) 3
  140.  
  141.  
  142. /*****************************************************************************/
  143. /* Values for the error_direction                                            */
  144. /*****************************************************************************/
  145. #define CM_RECEIVE_ERROR  (CM_ERROR_DIRECTION) 0
  146. #define CM_SEND_ERROR     (CM_ERROR_DIRECTION) 1
  147.  
  148.  
  149. /*****************************************************************************/
  150. /* Values for fill type                                                      */
  151. /*****************************************************************************/
  152. #define CM_FILL_LL      (CM_FILL) 0
  153. #define CM_FILL_BUFFER  (CM_FILL) 1
  154.  
  155.  
  156. /*****************************************************************************/
  157. /* Values for specify_processing_mode                                        */
  158. /*****************************************************************************/
  159. #define CM_BLOCKING                    (CM_PROCESSING_MODE) 0
  160. #define CM_NON_BLOCKING                (CM_PROCESSING_MODE) 1
  161.  
  162.  
  163. /*****************************************************************************/
  164. /* Values for prepare_to_receive_type                                        */
  165. /*****************************************************************************/
  166. #define CM_PREP_TO_RECEIVE_SYNC_LEVEL  (CM_PREPARE_TO_RECEIVE_TYPE) 0
  167. #define CM_PREP_TO_RECEIVE_FLUSH       (CM_PREPARE_TO_RECEIVE_TYPE) 1
  168. #define CM_PREP_TO_RECEIVE_CONFIRM     (CM_PREPARE_TO_RECEIVE_TYPE) 2
  169.  
  170.  
  171. /*****************************************************************************/
  172. /* Values for the receive_type                                               */
  173. /*****************************************************************************/
  174. #define CM_RECEIVE_AND_WAIT   (CM_RECEIVE_TYPE) 0
  175. #define CM_RECEIVE_IMMEDIATE  (CM_RECEIVE_TYPE) 1
  176.  
  177.  
  178. /*****************************************************************************/
  179. /* Values for request_to_send_received                                       */
  180. /*****************************************************************************/
  181. #define CM_REQ_TO_SEND_NOT_RECEIVED  (CM_REQUEST_TO_SEND_RECEIVED) 0
  182. #define CM_REQ_TO_SEND_RECEIVED      (CM_REQUEST_TO_SEND_RECEIVED) 1
  183.  
  184. /*****************************************************************************/
  185. /* Values for return_code (including CPI-RR value, which start at 100)       */
  186. /*****************************************************************************/
  187. #define CM_OK                            (CM_RETURN_CODE) 0
  188. #define CM_ALLOCATE_FAILURE_NO_RETRY     (CM_RETURN_CODE) 1
  189. #define CM_ALLOCATE_FAILURE_RETRY        (CM_RETURN_CODE) 2
  190. #define CM_CONVERSATION_TYPE_MISMATCH    (CM_RETURN_CODE) 3
  191. #define CM_PIP_NOT_SPECIFIED_CORRECTLY   (CM_RETURN_CODE) 5
  192. #define CM_SECURITY_NOT_VALID            (CM_RETURN_CODE) 6
  193. #define CM_SYNC_LVL_NOT_SUPPORTED_LU     (CM_RETURN_CODE) 7
  194. #define CM_SYNC_LVL_NOT_SUPPORTED_PGM    (CM_RETURN_CODE) 8
  195. #define CM_TPN_NOT_RECOGNIZED            (CM_RETURN_CODE) 9
  196.  
  197. #define CM_SYNC_LEVEL_NOT_SUPPORTED_LU   (CM_RETURN_CODE) 7
  198. #define CM_SYNC_LEVEL_NOT_SUPPORTED_PGM  (CM_RETURN_CODE) 8
  199. #define CM_TPN_NOT_RECOGNISED            (CM_RETURN_CODE) 9
  200.  
  201. #define CM_TP_NOT_AVAILABLE_NO_RETRY     (CM_RETURN_CODE) 10
  202. #define CM_TP_NOT_AVAILABLE_RETRY        (CM_RETURN_CODE) 11
  203. #define CM_DEALLOCATED_ABEND             (CM_RETURN_CODE) 17
  204. #define CM_DEALLOCATED_NORMAL            (CM_RETURN_CODE) 18
  205. #define CM_PARAMETER_ERROR               (CM_RETURN_CODE) 19
  206. #define CM_PRODUCT_SPECIFIC_ERROR        (CM_RETURN_CODE) 20
  207. #define CM_PROGRAM_ERROR_NO_TRUNC        (CM_RETURN_CODE) 21
  208. #define CM_PROGRAM_ERROR_PURGING         (CM_RETURN_CODE) 22
  209. #define CM_PROGRAM_ERROR_TRUNC           (CM_RETURN_CODE) 23
  210. #define CM_PROGRAM_PARAMETER_CHECK       (CM_RETURN_CODE) 24
  211. #define CM_PROGRAM_STATE_CHECK           (CM_RETURN_CODE) 25
  212. #define CM_RESOURCE_FAILURE_NO_RETRY     (CM_RETURN_CODE) 26
  213. #define CM_RESOURCE_FAILURE_RETRY        (CM_RETURN_CODE) 27
  214. #define CM_UNSUCCESSFUL                  (CM_RETURN_CODE) 28
  215. #define CM_DEALLOCATED_ABEND_SVC         (CM_RETURN_CODE) 30
  216. #define CM_DEALLOCATED_ABEND_TIMER       (CM_RETURN_CODE) 31
  217. #define CM_SVC_ERROR_NO_TRUNC            (CM_RETURN_CODE) 32
  218. #define CM_SVC_ERROR_PURGING             (CM_RETURN_CODE) 33
  219. #define CM_SVC_ERROR_TRUNC               (CM_RETURN_CODE) 34
  220.  
  221. #define CM_OPERATION_INCOMPLETE          (CM_RETURN_CODE) 35
  222. #define CM_SYSTEM_EVENT                  (CM_RETURN_CODE) 36
  223. #define CM_OPERATION_NOT_ACCEPTED        (CM_RETURN_CODE) 37
  224.  
  225. #define CM_TAKE_BACKOUT                  (CM_RETURN_CODE) 100
  226. #define CM_DEALLOCATED_ABEND_BO          (CM_RETURN_CODE) 130
  227. #define CM_DEALLOCATED_ABEND_SVC_BO      (CM_RETURN_CODE) 131
  228. #define CM_DEALLOCATED_ABEND_TIMER_BO    (CM_RETURN_CODE) 132
  229. #define CM_RESOURCE_FAIL_NO_RETRY_BO     (CM_RETURN_CODE) 133
  230. #define CM_RESOURCE_FAILURE_RETRY_BO     (CM_RETURN_CODE) 134
  231. #define CM_DEALLOCATED_NORMAL_BO         (CM_RETURN_CODE) 135
  232.  
  233. /*****************************************************************************/
  234. /* Values for return_control                                                 */
  235. /*****************************************************************************/
  236. #define CM_WHEN_SESSION_ALLOCATED  (CM_RETURN_CONTROL) 0
  237. #define CM_IMMEDIATE               (CM_RETURN_CONTROL) 1
  238.  
  239.  
  240. /*****************************************************************************/
  241. /* Values for the send_type                                                  */
  242. /*****************************************************************************/
  243. #define CM_BUFFER_DATA               (CM_SEND_TYPE) 0
  244. #define CM_SEND_AND_FLUSH            (CM_SEND_TYPE) 1
  245. #define CM_SEND_AND_CONFIRM          (CM_SEND_TYPE) 2
  246. #define CM_SEND_AND_PREP_TO_RECEIVE  (CM_SEND_TYPE) 3
  247. #define CM_SEND_AND_DEALLOCATE       (CM_SEND_TYPE) 4
  248.  
  249.  
  250. /*****************************************************************************/
  251. /* Values for status_received                                                */
  252. /*****************************************************************************/
  253. #define CM_NO_STATUS_RECEIVED        (CM_STATUS_RECEIVED) 0
  254. #define CM_SEND_RECEIVED             (CM_STATUS_RECEIVED) 1
  255. #define CM_CONFIRM_RECEIVED          (CM_STATUS_RECEIVED) 2
  256. #define CM_CONFIRM_SEND_RECEIVED     (CM_STATUS_RECEIVED) 3
  257. #define CM_CONFIRM_DEALLOC_RECEIVED  (CM_STATUS_RECEIVED) 4
  258.  
  259. #define CM_TAKE_COMMIT               (CM_STATUS_RECEIVED) 5
  260. #define CM_TAKE_COMMIT_SEND          (CM_STATUS_RECEIVED) 6
  261. #define CM_TAKE_COMMIT_DEALLOCATE    (CM_STATUS_RECEIVED) 7
  262.  
  263. /*****************************************************************************/
  264. /* Values for the sync_level                                                 */
  265. /*****************************************************************************/
  266. #define CM_NONE     (CM_SYNC_LEVEL) 0
  267. #define CM_CONFIRM  (CM_SYNC_LEVEL) 1
  268.  
  269. /*****************************************************************************/
  270. /* Values for maximum sizes of strings and buffers                           */
  271. /*****************************************************************************/
  272. #define CM_CID_SIZE   (8)         /* conversation ID           */
  273. #define CM_CTX_SIZE   (32)        /* context ID                */
  274. #define CM_LD_SIZE    (512)       /* log data                  */
  275. #define CM_MN_SIZE    (8)         /* mode name                 */
  276. #define CM_PLN_SIZE   (17)        /* partner LU name           */
  277. #define CM_PW_SIZE    (10)        /* password                  */
  278. #define CM_SDN_SIZE   (8)         /* symbolic destination name */
  279. #define CM_TPN_SIZE   (64)        /* TP name                   */
  280. #define CM_UID_SIZE   (10)        /* userid ID                 */
  281.  
  282. /*****************************************************************************/
  283. /* Values for the conversation_security_type (NS/2 compatible)               */
  284. /*****************************************************************************/
  285. #define XC_SECURITY_NONE     (XC_CONVERSATION_SECURITY_TYPE) 0
  286. #define XC_SECURITY_SAME     (XC_CONVERSATION_SECURITY_TYPE) 1
  287. #define XC_SECURITY_PROGRAM  (XC_CONVERSATION_SECURITY_TYPE) 2
  288.  
  289.  
  290. /*****************************************************************************/
  291. /* Values for the TP_name_type (NS/2 compatible)                             */
  292. /*****************************************************************************/
  293. #define XC_APPLICATION_TP  (XC_TP_NAME_TYPE) 0
  294. #define XC_SNA_SERVICE_TP  (XC_TP_NAME_TYPE) 1
  295.  
  296.  
  297. /*****************************************************************************/
  298. /* Function prototypes for CPIC call routines                                */
  299. /*****************************************************************************/
  300.  
  301. /* Accept_Conversation */
  302. CM_ENTRY cmaccp(unsigned char CM_PTR,               /* conversation_ID       */
  303.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  304.  
  305. /* Allocate */
  306. CM_ENTRY cmallc(unsigned char CM_PTR,               /* conversation_ID       */
  307.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  308.  
  309. /* Cancel_Conversation */
  310. CM_ENTRY cmcanc(unsigned char CM_PTR,               /* conversation_ID       */
  311.                 CM_INT32 CM_PTR);                   /* return_code     *WSNA1*/
  312.  
  313. /* Confirm */
  314. CM_ENTRY cmcfm(unsigned char CM_PTR,                /* conversation_ID       */
  315.                CM_REQUEST_TO_SEND_RECEIVED CM_PTR,  /* request_to_send_rec.. */
  316.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  317.  
  318. /* Confirmed */
  319. CM_ENTRY cmcfmd(unsigned char CM_PTR,               /* conversation_ID       */
  320.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  321.  
  322. /* Deallocate */
  323. CM_ENTRY cmdeal(unsigned char CM_PTR,               /* conversation_ID       */
  324.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  325.  
  326. /* Extract_Conversation_State */
  327. CM_ENTRY cmecs(unsigned char CM_PTR,                /* conversation_ID       */
  328.                CM_CONVERSATION_STATE CM_PTR,        /* conversation_state    */
  329.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  330.  
  331. /* Extract_Conversation_Type */
  332. CM_ENTRY cmect(unsigned char CM_PTR,                /* conversation_ID       */
  333.                CM_CONVERSATION_TYPE CM_PTR,         /* conversation type     */
  334.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  335.  
  336. /* Extract_Mode_Name */
  337. CM_ENTRY cmemn(unsigned char CM_PTR,                /* conversation_ID       */
  338.                unsigned char CM_PTR,                /* mode_name             */
  339.                CM_INT32 CM_PTR,                     /* mode_name_length      */
  340.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  341.  
  342. /* Extract_Partner_LU_Name */
  343. CM_ENTRY cmepln(unsigned char CM_PTR,               /* conversation_ID       */
  344.                 unsigned char CM_PTR,               /* partner_LU_name       */
  345.                 CM_INT32 CM_PTR,                    /* partner_LU_name_len.. */
  346.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  347.  
  348. /* Extract_Sync_Level */
  349. CM_ENTRY cmesl(unsigned char CM_PTR,                /* conversation_ID       */
  350.                CM_SYNC_LEVEL CM_PTR,                /* sync_level            */
  351.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  352.  
  353. /* Extract_TP_Name */
  354. CM_ENTRY cmetpn(unsigned char CM_PTR,               /* conversation_ID       */
  355.                 unsigned char CM_PTR,               /* TP_name               */
  356.                 CM_INT32 CM_PTR,                    /* TP_name_length        */
  357.                 CM_INT32 CM_PTR);                   /* return_code     *WSNA1*/
  358.  
  359. /* Flush */
  360. CM_ENTRY cmflus(unsigned char CM_PTR,               /* conversation_ID       */
  361.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  362.  
  363. /* Initialize_Conversation */
  364. CM_ENTRY cminit(unsigned char CM_PTR,               /* conversation_ID       */
  365.                 unsigned char CM_PTR,               /* sym_dest_name         */
  366.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  367.  
  368. /* Prepare_To_Receive */
  369. CM_ENTRY cmptr(unsigned char CM_PTR,                /* conversation_ID       */
  370.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  371.  
  372. /* Receive */
  373. CM_ENTRY cmrcv(unsigned char CM_PTR,                /* conversation_ID       */
  374.                unsigned char CM_PTR,                /* buffer                */
  375.                CM_INT32 CM_PTR,                     /* requested_length      */
  376.                CM_DATA_RECEIVED_TYPE CM_PTR,        /* data_received         */
  377.                CM_INT32 CM_PTR,                     /* received_length       */
  378.                CM_STATUS_RECEIVED CM_PTR,           /* status_received       */
  379.                CM_REQUEST_TO_SEND_RECEIVED CM_PTR,  /* request_to_send_rec.. */
  380.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  381.  
  382. /* Request_To_Send */
  383. CM_ENTRY cmrts(unsigned char CM_PTR,                /* conversation_ID       */
  384.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  385.  
  386. /* Send */
  387. CM_ENTRY cmsend(unsigned char CM_PTR,               /* conversation_ID       */
  388.                 unsigned char CM_PTR,               /* buffer                */
  389.                 CM_INT32 CM_PTR,                    /* send_length           */
  390.                 CM_REQUEST_TO_SEND_RECEIVED CM_PTR, /* request_to_send_rec.. */
  391.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  392.  
  393. /* Send_Error */
  394. CM_ENTRY cmserr(unsigned char CM_PTR,               /* conversation_ID       */
  395.                 CM_REQUEST_TO_SEND_RECEIVED CM_PTR, /* request_to_send_rec.. */
  396.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  397.  
  398. /* Set_Conversation_Type */
  399. CM_ENTRY cmsct(unsigned char CM_PTR,                /* conversation_ID       */
  400.                CM_CONVERSATION_TYPE CM_PTR,         /* conversation_type     */
  401.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  402.  
  403. /* Set_Deallocate_Type */
  404. CM_ENTRY cmsdt(unsigned char CM_PTR,                /* conversation_ID       */
  405.                CM_DEALLOCATE_TYPE CM_PTR,           /* deallocate_type       */
  406.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  407.  
  408. /* Set_Error_Direction */
  409. CM_ENTRY cmsed(unsigned char CM_PTR,                /* conversation_ID       */
  410.                CM_ERROR_DIRECTION CM_PTR,           /* error_direction       */
  411.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  412.  
  413. /* Set_Fill */
  414. CM_ENTRY cmsf(unsigned char CM_PTR,                 /* conversation_ID       */
  415.               CM_FILL CM_PTR,                       /* fill                  */
  416.               CM_RETURN_CODE CM_PTR);               /* return_code           */
  417.  
  418. /* Set_Log_Data */
  419. CM_ENTRY cmsld(unsigned char CM_PTR,                /* conversation_ID       */
  420.                unsigned char CM_PTR,                /* log_data              */
  421.                CM_INT32 CM_PTR,                     /* log_data_length       */
  422.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  423.  
  424. /* Specify_Local_TP_Name */
  425. CM_ENTRY cmsltp(unsigned char CM_PTR,            /* TP name             */
  426.         CM_INT32 CM_PTR,             /* TP_name_length          */
  427.         CM_INT32 CM_PTR);            /* return_code     *WSNA1*/
  428.  
  429. /* Set_Processing_Mode */
  430. CM_ENTRY cmspm(unsigned char CM_PTR,                /* conversation_ID       */
  431.                CM_INT32 CM_PTR,                     /* processing mode       */
  432.                CM_INT32 CM_PTR);                    /* return_code     *WSNA1*/
  433.  
  434.  
  435. /* Set_Mode_Name */
  436. CM_ENTRY cmsmn(unsigned char CM_PTR,                /* conversation_ID       */
  437.                unsigned char CM_PTR,                /* mode_name             */
  438.                CM_INT32 CM_PTR,                     /* mode_name_length      */
  439.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  440.  
  441. /* Set_Partner_LU_Name */
  442. CM_ENTRY cmspln(unsigned char CM_PTR,               /* conversation_ID       */
  443.                 unsigned char CM_PTR,               /* partner_LU_name       */
  444.                 CM_INT32 CM_PTR,                    /* partner_LU_name_len.. */
  445.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  446.  
  447. /* Set_Prepare_To_Receive_Type */
  448. CM_ENTRY cmsptr(unsigned char CM_PTR,               /* conversation_ID       */
  449.                 CM_PREPARE_TO_RECEIVE_TYPE CM_PTR,  /* prepare_to_receive_.. */
  450.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  451.  
  452. /* Set_Receive_Type */
  453. CM_ENTRY cmsrt(unsigned char CM_PTR,                /* conversation_ID       */
  454.                CM_RECEIVE_TYPE CM_PTR,              /* receive_type          */
  455.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  456.  
  457. /* Set_Return_Control */
  458. CM_ENTRY cmsrc(unsigned char CM_PTR,                /* conversation_ID       */
  459.                CM_RETURN_CONTROL CM_PTR,            /* return_control        */
  460.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  461.  
  462. /* Set_Send_Type */
  463. CM_ENTRY cmsst(unsigned char CM_PTR,                /* conversation_ID       */
  464.                CM_SEND_TYPE CM_PTR,                 /* send_type             */
  465.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  466.  
  467. /* Set_Sync_Level */
  468. CM_ENTRY cmssl(unsigned char CM_PTR,                /* conversation_ID       */
  469.                CM_SYNC_LEVEL CM_PTR,                /* sync_level            */
  470.                CM_RETURN_CODE CM_PTR);              /* return_code           */
  471.  
  472. /* Set_TP_name */
  473. CM_ENTRY cmstpn(unsigned char CM_PTR,               /* conversation_ID       */
  474.                 unsigned char CM_PTR,               /* TP_name               */
  475.                 CM_INT32 CM_PTR,                    /* TP_name_legth         */
  476.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  477.  
  478. /* Test_Request_To_Send_Received */
  479. CM_ENTRY cmtrts(unsigned char CM_PTR,               /* conversation_ID       */
  480.                 CM_REQUEST_TO_SEND_RECEIVED CM_PTR, /* request_to_send_rec.. */
  481.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  482.  
  483. /* Wait_For_Conversation */
  484. CM_ENTRY cmwait(unsigned char CM_PTR,               /* conversation_ID       */
  485.                 CM_INT32 CM_PTR,                    /* conversation ret code */
  486.                 CM_INT32 CM_PTR);                   /* return_code     *WSNA1*/
  487.  
  488. /* Convert incoming data (EBCDIC -> ASCII) */ 
  489. CM_ENTRY cmcnvi(unsigned char   CM_PTR,             /* buffer to convert     */
  490.                 CM_INT32        CM_PTR,             /* buffer length         */
  491.                 CM_RETURN_CODE  CM_PTR);            /* return_code           */
  492.  
  493. /* Convert Outgoing data (ASCII -> EBCDIC) */
  494. CM_ENTRY cmcnvo(unsigned char   CM_PTR,             /* buffer to convert     */
  495.                 CM_INT32        CM_PTR,             /* buffer length         */
  496.                 CM_RETURN_CODE  CM_PTR);            /* return_code           */
  497.  
  498. /*****************************************************************************/
  499. /* Function Prototypes for additional NS/2 compatible call routines          */
  500. /*****************************************************************************/
  501.  
  502. /* Delete_CPIC_Side_Information */
  503. CM_ENTRY xcmdsi(unsigned char CM_PTR,               /* key_lock              */
  504.                 unsigned char CM_PTR,               /* sym_dest_name         */
  505.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  506.  
  507. /* Extract_CPIC_Side_Information */
  508. CM_ENTRY xcmesi(CM_INT32 CM_PTR,                    /* entry_number          */
  509.                 unsigned char CM_PTR,                       /* sym_dest_name         */
  510.                 SIDE_INFO CM_PTR,                   /* side_info_entry       */
  511.                 CM_INT32 CM_PTR,                    /* side_info_length      */
  512.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  513.  
  514. /* Set_CPIC_Side_Information */
  515. CM_ENTRY xcmssi(unsigned char CM_PTR,               /* key_lock              */
  516.                 SIDE_INFO CM_PTR,                   /* side_info_entry       */
  517.                 CM_INT32 CM_PTR,                    /* side_info length      */
  518.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  519.  
  520. /* Extract_Conversation_Security_Type */
  521. CM_ENTRY xcecst(unsigned char CM_PTR,               /* conversation_ID       */
  522.                 XC_CONVERSATION_SECURITY_TYPE CM_PTR, /* conversation_sec... */
  523.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  524.  
  525. /* Extract_Conversation_User_ID */
  526. CM_ENTRY xcecsu(unsigned char CM_PTR,               /* conversation_ID       */
  527.                 unsigned char CM_PTR,               /* user_ID               */
  528.                 CM_INT32 CM_PTR,                    /* user_ID_length        */
  529.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  530.  
  531. /* Set_Conversation_Security_Password */
  532. CM_ENTRY xcscsp(unsigned char CM_PTR,               /* conversation_ID       */
  533.                 unsigned char CM_PTR,               /* password              */
  534.                 CM_INT32 CM_PTR,                    /* password_length       */
  535.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  536.  
  537. /* Set_Conversation_Security_Type */
  538. CM_ENTRY xcscst(unsigned char CM_PTR,               /* conversation_ID       */
  539.                 XC_CONVERSATION_SECURITY_TYPE CM_PTR, /* conversation_sec... */
  540.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  541.  
  542. /* Set_Conversation_Security_User_ID */
  543. CM_ENTRY xcscsu(unsigned char CM_PTR,               /* conversation_ID       */
  544.                 unsigned char CM_PTR,               /* user_ID               */
  545.                 CM_INT32 CM_PTR,                    /* user_ID_length        */
  546.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  547.  
  548.  
  549. /*****************************************************************************/
  550. /* Also have new prototypes with cm not xc                                   */
  551. /*****************************************************************************/
  552. /* Extract_Conversation_Security_Type */
  553. CM_ENTRY cmecst(unsigned char CM_PTR,               /* conversation_ID       */
  554.                 XC_CONVERSATION_SECURITY_TYPE CM_PTR, /* conversation_sec... */
  555.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  556.  
  557. /* Extract_Conversation_User_ID */
  558. CM_ENTRY cmecsu(unsigned char CM_PTR,               /* conversation_ID       */
  559.                 unsigned char CM_PTR,               /* user_ID               */
  560.                 CM_INT32 CM_PTR,                    /* user_ID_length        */
  561.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  562.  
  563. /* Set_Conversation_Security_Password */
  564. CM_ENTRY cmscsp(unsigned char CM_PTR,               /* conversation_ID       */
  565.                 unsigned char CM_PTR,               /* password              */
  566.                 CM_INT32 CM_PTR,                    /* password_length       */
  567.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  568.  
  569. /* Set_Conversation_Security_Type */
  570. CM_ENTRY cmscst(unsigned char CM_PTR,               /* conversation_ID       */
  571.                 XC_CONVERSATION_SECURITY_TYPE CM_PTR, /* conversation_sec... */
  572.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  573.  
  574. /* Set_Conversation_Security_User_ID */
  575. CM_ENTRY cmscsu(unsigned char CM_PTR,               /* conversation_ID       */
  576.                 unsigned char CM_PTR,               /* user_ID               */
  577.                 CM_INT32 CM_PTR,                    /* user_ID_length        */
  578.                 CM_RETURN_CODE CM_PTR);             /* return_code           */
  579.  
  580. #ifdef WINSNA
  581. /* Specify_Windows_Handle */
  582. CM_ENTRY xchwnd(HWND,                               /* Window HWND     *WSNA1*/
  583.                 CM_INT32 CM_PTR);                   /* return_code           */
  584. #endif
  585.  
  586. /*****************************************************************************/
  587. /* Function prototypes for undocumented NS/2 compatible call routines.  As   */
  588. /* these routines are undocumented the prototypes do not include any         */
  589. /* parameters.  These are needed to allow binary compatibility with NS/2     */
  590. /* CPI-C applications, with the proviso that only documented calls are       */
  591. /* actually used.                                                            */
  592. /*****************************************************************************/
  593.  
  594. CM_ENTRY allocate_memory();
  595. CM_ENTRY free_cpic_memory();
  596. CM_ENTRY icmssi();
  597.  
  598.  
  599. #ifdef WINSNA
  600. /*---------------------------------------------------------------------------*/
  601. /* Windows CPI-C Extention Return Codes.                                     */
  602. /*---------------------------------------------------------------------------*/
  603.  
  604. #define WCPICALREADY         0xF000   /* An async call is already outstanding */
  605. #define WCPICINVALID         0xF001   /* Async Task Id is invalid             */
  606. #define WCPICCANCEL          0xF002   /* Blocking call was cancelled          */
  607. #define WCPICSYSNOTREADY     0xF003   /* Underlying subsystem not started     */
  608. #define WCPICVERNOTSUPPORTED 0xF004   /* Application version not supported    */
  609.  
  610.  
  611. /*----------------------------------------------------------------------------*/
  612. /* Api structre definitions                                                   */
  613. /*----------------------------------------------------------------------------*/
  614. #define WCPICDESCRIPTION_LEN    127
  615.  
  616. typedef struct tagWCPICDATA {
  617.         WORD    wVersion;
  618.         char    szDescription[WCPICDESCRIPTION_LEN+1];
  619. } WCPICDATA, * PWCPICDATA, FAR * LPWCPICDATA;
  620.  
  621. /*****************************************************************************/
  622. /* ------------- Windows CPI-C function prototypes ------------------------- */
  623. /*****************************************************************************/
  624.  
  625. extern BOOL WINAPI    WinCPICCleanup(void);
  626. extern BOOL WINAPI    WinCPICIsBlocking(void);
  627. extern int WINAPI     WinCPICStartup(WORD, LPWCPICDATA );
  628. extern FARPROC WINAPI WinCPICSetBlockingHook( FARPROC );
  629. extern BOOL WINAPI    WinCPICUnhookBlockingHook(void);
  630. #ifdef WIN32
  631. extern VOID WINAPI    WinCPICSetEvent(unsigned char   CM_PTR,
  632.                                       CM_EVENT_HANDLE CM_PTR,
  633.                                       CM_RETURN_CODE CM_PTR);
  634. extern VOID WINAPI    WinCPICExtractEvent(unsigned char   CM_PTR,
  635.                                           CM_EVENT_HANDLE CM_PTR,
  636.                                           CM_RETURN_CODE CM_PTR);
  637. #endif
  638.  
  639. #define WIN_CPIC_ASYNC_COMPLETE_MESSAGE "WinAsyncCPI-C"
  640.  
  641. #endif
  642.  
  643. /*
  644.  * These macros allow you to write programs that are easier to read, since
  645.  * you can use the full name of the CPI-C call rather than its 6 character
  646.  * entry point.
  647.  *
  648.  * When porting code that uses these macros, you will have to ensure that
  649.  * the macros are defined on the target platform.
  650.  */
  651.  
  652. #ifdef READABLE_MACROS
  653.  
  654. #define Accept_Conversation(v1,v2)            cmaccp(v1,v2)
  655. #define Allocate(v1,v2)                       cmallc(v1,v2)
  656. #define Cancel_Conversation(v1,v2)            cmcanc(v1,v2)
  657. #define Confirm(v1,v2,v3)                     cmcfm(v1,v2,v3)
  658. #define Confirmed(v1,v2)                      cmcfmd(v1,v2)
  659. #define Convert_Incoming(v1,v2,v3)            cmcnvi(v1,v2,v3)
  660. #define Convert_Outgoing(v1,v2,v3)            cmcnvo(v1,v2,v3)
  661. #define Deallocate(v1,v2)                     cmdeal(v1,v2)
  662. #define Extract_Conversation_Security_User_ID(v1,v2,v3,v4)  cmecsu(v1,v2,v3,v4)
  663. #define Extract_Conversation_Security_Type(v1,v2,v3) cmecst(v1,v2,v3)
  664. #define Extract_Mode_Name(v1,v2,v3,v4)        cmemn(v1,v2,v3,v4)
  665. #define Extract_Partner_LU_Name(v1,v2,v3,v4)  cmepln(v1,v2,v3,v4)
  666. #define Extract_Sync_Level(v1,v2,v3)          cmesl(v1,v2,v3)
  667. #define Extract_TP_Name(v1,v2,v3,v4)          cmetpn(v1,v2,v3,v4)
  668. #define Flush(v1,v2)                          cmflus(v1,v2)
  669. #define Initialize_Conversation(v1,v2,v3)     cminit(v1,v2,v3)
  670. #define Prepare_To_Receive(v1,v2)             cmptr(v1,v2)
  671. #define Receive(v1,v2,v3,v4,v5,v6,v7,v8)      cmrcv(v1,v2,v3,v4,v5,v6,v7,v8)
  672. #define Request_To_Send(v1,v2)                cmrts(v1,v2)
  673. #define Send_Error(v1,v2,v3)                  cmserr(v1,v2,v3)
  674. #define Set_Conversation_Type(v1,v2,v3)       cmsct(v1,v2,v3)
  675. #define Set_Deallocate_Type(v1,v2,v3)         cmsdt(v1,v2,v3)
  676. #define Set_Error_Direction(v1,v2,v3)         cmsed(v1,v2,v3)
  677. #define Send_Data(v1,v2,v3,v4,v5)             cmsend(v1,v2,v3,v4,v5)
  678. #define Set_Fill(v1,v2,v3)                    cmsf(v1,v2,v3)
  679. #define Set_Log_Data(v1,v2,v3,v4)             cmsld(v1,v2,v3,v4)
  680. #define Set_Mode_Name(v1,v2,v3,v4)            cmsmn(v1,v2,v3,v4)
  681. #define Set_Partner_LU_Name(v1,v2,v3,v4)      cmspln(v1,v2,v3,v4)
  682. #define Set_Prepare_To_Receive_Type(v1,v2,v3) cmsptr(v1,v2,v3)
  683. #define Set_Processing_Mode(v1,v2,v3)         cmspm(v1,v2,v3)
  684. #define Set_Receive_Type(v1,v2,v3)            cmsrt(v1,v2,v3)
  685. #define Set_Return_Control(v1,v2,v3)          cmsrc(v1,v2,v3)
  686. #define Set_Send_Type(v1,v2,v3)               cmsst(v1,v2,v3)
  687. #define Set_Sync_Level(v1,v2,v3)              cmssl(v1,v2,v3)
  688. #define Set_TP_Name(v1,v2,v3,v4)              cmstpn(v1,v2,v3,v4)
  689. #define Specify_Local_TP_Name(v1,v2,v3)       cmsltp(v1,v2,v3)
  690. #define Set_Conversation_Security_Password(v1,v2,v3,v4) cmscsp(v1,v2,v3,v4)
  691. #define Set_Conversation_Security_Type(v1,v2,v3) cmscst(v1,v2,v3)
  692. #define Set_Conversation_Security_User_ID(v1,v2,v3,v4) cmscsu(v1,v2,v3,v4)
  693. #define Test_Request_To_Send_Received(v1,v2,v3) cmtrts(v1,v2,v3)
  694. #define Wait_For_Conversation(v1,v2,v3)       cmwait(v1,v2,v3)
  695. #define Specify_Windows_Handle(v1,v2)         xchwnd(v1,v2)
  696.  
  697. #endif
  698.  
  699. #ifdef __cplusplus
  700. }
  701. #endif
  702.  
  703. /*****************************************************************************/
  704. /* Restore to default packing of structures                                  */
  705. /*****************************************************************************/
  706. #ifdef WIN32
  707.   #pragma pack()
  708. #endif
  709.  
  710. #pragma option pop /*P_O_Pop*/
  711. #endif
  712.  
  713.