Original Publication Date: 1996-Apr-01
Included in the Prior Art Database: 2005-Mar-31
Programs running under Windows Subsystem within OS/2* (WIN-OS/2 may occasionally want to call services implemented under OS/2 typically to access the programming interface for an existing OS/2 product, or to use OS/2 services that would be prohibitively expensive to reimplement in the WIN-OS/2 programming environment.
Programs running under Windows Subsystem within OS/2*
occasionally want to call services implemented under OS/2 typically
to access the programming interface for an existing OS/2 product, or
to use OS/2 services that would be prohibitively expensive to
reimplement in the WIN-OS/2 programming environment.
example is the communication of a WIN-OS/2 program
via Advanced-Program-to-Program-Communication (APPC. IBM* offers two
APPC platform products for Windows programs: Networking Services/DOS
and Networking Services/Windows. Both platforms are running under
native Windows, but Networking Services (NS/DOS is not guaranteed to
work under WIN-OS/2 and Networking Services/Windows (NS/WIN does not
run at all in the WIN-OS/2 environment.
program could use the APPC Application Program
Interface (API provided by the OS/2 Communication Manager, but this
requires interprocess communication across the operating system
boundary between WIN-OS/2 and OS/2. Several vehicles for communicating
between WIN-OS/2 and OS/2 programs exist, e.g., virtual device drivers,
Dynamic Data Exchange (DDE and named pipes. Using either of these
Interprocess Communication (IPC vehicles involves considerable
programming effort and distracts the programmer from the problem to
be solved (e.g., calling the APPC API).
CALLOS2W is a
method for calling OS/2 services from a WIN-OS/2
program with very little programming effort. It unburdens the
programmer from the details of communication between WIN-OS/2 and
OS/2, thus allowing him to focus on the interface to be called.
Overview - CALLOS2W is a client/server application:
the client runs under WIN-OS/2 and provides an API interface for
WIN-OS/2 applications to call OS/2 functions. The server is an OS/2
program responsible for loading and calling the desired OS/2 function
on behalf of the client.
client and the OS/2 server cooperate by passing
parameter data and status information in both directions. Client
and server negotiate connection details, timeout situations, and
chunking of large data blocks transparently.
implementation of CALLOS2W uses Dynamic Data
Exchange (DDE as the underlying communication vehicle, because DDE
is part of the retail versions of both WIN-OS/2 and OS/2. Named
pipes could be used as well to implement the CALLOS2W interface, but
they are not part of the Windows retail version (Microsoft (MS) Lan
Manager would be required).
server is implemented using the C programming
language under OS/2. Since it is difficult to call dynamically loaded
functions with arbitrary parameter signatures on the fly without
resorting to assembly language (to build custom-fit call stacks, a
flexible but standardized interface was chosen for functions that
can be called by the server directly.
that the user writes a piece of intermediate OS/2
code acting as...