BALLCLI: DDEML Client Demonstrates DDEML with Bouncing
Ball

Revised: November 25, 1992

BALLCLI is a companion program for the BALLSRV sample
application.

BALLSRV and BALLCLI demonstrate the basic concepts of the
dynamic data exchange management library (DDEML) protocol
and the correct method for implementing DDEML in an
application. Although DDEML is a new concept in
Microsoft(R) Windows(TM) version 3.1, a DDEML application
will run without problems in Windows version 3.0 if the
DDEML.DLL file is added to the Windows version 3.0
installation. An application that uses DDEML for DDE can
establish a conversation with an application using the
Windows version 3.0 DDE convention.

BALLSRV and BALLCLI demonstrate DDE by creating a ball and
bouncing it between the server application window and the
client application window. BALLSRV creates a purple ball
and bounces it into the BALLCLI window. BALLCLI creates a
green ball and bounces it into the BALLSRV window. In this
configuration, each application acts as the server for the
ball it creates and the client for the other ball.

BALLSRV acts as server when the purple ball reaches the
 right edge of its window. At this point, BALLSRV advises
BALLCLI that the purple ball will bounce into its window.
(The applications assume that the BALLSRV window is always
on the left and the BALLCLI window is always on the
right.) Similarly, BALLCLI acts as server when the green
ball reaches the left edge of its window. At this point,
BALLCLI advises BALLSRV that the green ball will bounce
into its window. In each case, the application that
receives data acts as the client.
 
BALLCLI and BALLSRV also let the user change the speed at
which the ball bounces. The Speed option on the BALLSRV
window changes the speed of the purple ball, and the Speed
option on the BALLCLI window changes the speed of the
green ball. Whenever the user changes the speed of a ball,
the window containing the ball is notified through a DDEML
transaction. In the same manner, when the size of one
window changes, the size of the other window changes as
well.

BALLCLI was built and tested under Microsoft Windows
version 3.1.

KEYWORDS: DdeClientTransaction; DdeConnect;
DdeCreateStringHandle; DdeDisconnect; DdeFreeStringHandle;
DdeInitialize; DdeNameService; DdePostAdvise;
DdeUninitialize; XTYP_ADVDATA; XTYP_ADVREQ; XTYP_ADVSTART;
XTYP_ADVSTOP; XTYP_CONNECT; XTYP_CONNECT_CONFIRM;
XTYP_DISCONNECT; AppendMenu; BitBlt; CheckMenuItem;
CreateCompatibleDC; DeleteObject; FindWindow;
GetDlgItemText; GetSystemMenu; GetWindowRect; LoadBitmap;
LoadIcon;LoadString;PatBlt;SelectObject;
SetDlgItemText;SetWindowPos;StretchBlt;
WM_GETMINMAXINFO;WM_MOVE; WM_QUERYDRAGICON; WM_SIZE;
WM_SYSCOMMAND; WM_TIMER;


