Common Programming Interface for Communications (CPI-C)

Microsoft® Windows® Common Programming Interface for Communications (CPI-C) was developed to provide one common API to port applications from various operating environments to Microsoft® Windows NT® and Microsoft Windows version 3.x operating systems. The CPI-C information contained in the Microsoft® SNA Server SDK represents an evolving Windows CPI-C that is composed of CPI-C version 1.2 and a set of Windows extensions that provide asynchronous call completion and support multiple application instances.

CPI-C version 1.0 was introduced to provide a mechanism for two applications to effectively communicate using the concept of conversation. A conversation is the logical connection between two programs that allows the programs to communicate with each other. Programs using CPI-C converse by making program calls. CPI-C version 1.1 was extended to include four new areas of function: support for resource recovery (not supported in Windows CPI-C), automatic parameter conversion, support for communicating with non–CPI-C programs, and local/remote transparency. Built upon CPI-C version 1.1, X/Open CPI-C provided support for nonblocking calls, the ability to accept multiple conversations, support for data conversion (beyond parameters), and support for security parameters.

CPI-C version 1.2 consolidated CPI-C version 1.1 and X/Open CPI-C by providing functionality in all the areas described above. Windows CPI-C further adds to this functionality by providing a set of extensions for asynchronous communication in addition to the full complement of supported features in CPI-C version 1.2 (with the exception of resource recovery).

CPI-C concepts are closely related to many of the concepts relevant to APPC programming and application development (for example, transaction programs and Windows extensions) and a greater understanding of CPI-C can be gleaned from these concepts. However, several development issues are unique to CPI-C. These issues are presented in the following topics.

For more information about these topics, see the Microsoft SNA Server documentation in the "Internet, Networking, and Distributed Services" section of the Microsoft Platform SDK.