                                   DDEWatch 1.0
                             Horizon Technologies Inc.

            Overview:
               DDEWatch is a Microsoft Windows program designed to monitor
               Dynamic Data Exchange (DDE) messages.  It is a useful tool
               to aid in the development of DDE based applications.  'C'
               language programmers, Excel macro developers and others can
               use DDEWatch as both a debugging tool and a way to learn
               DDE.

               DDEWatch displays each DDE message as it occurs.  The
               information displayed contains the window handles of both
               the sender and receiver, the message type and any additional
               parameters.  These parameters include keyword
               representations of flag fields, command strings, data
               format, and data strings.  DDEWatch displays each new DDE
               message below the previous one.  When the screen is full,
               the next message replaces the first.  A line separates the
               first and last messages captured.

               DDEWatch also displays a list of the client-server window
               handles of all active DDE sessions.  DDEWatch maintains this
               list to reflect every new DDE session detected.  When a DDE
               session ends, DDEWatch removes the client-server window
               handles from the list.

            Using DDEWatch:
               After invoking DDEWatch, choose Watch from the File menu.
               DDEWatch now displays all DDE message traffic in real time.
               The DDEWatch display is divided vertically into two
               sections.

               The left section of the display shows a list of active DDE
               sessions.  The hexadecimal numbers are the client and server
               window handles.  The following figure shows two active
               sessions:  Client "630c" communicating with Server "2f30",
               and Client "5f10" communicating with the same server.

	---------------------------------------------------------------------
	| - |                         DDEWatch                    | \/ | /\ |
	---------------------------------------------------------------------
	| File								    |
	---------------------------------------------------------------------
	| Client Server |630c<-2f30 Data	Advise AckReq Release Fmt=Te|
	|---------------|5f10->2f30 Request	Fmt=Text|Position	    |
	|* 630c   2f30  |5f10<-2f30 Data	Response AckReq Release Fmt=|
	|* 5f10   2f30  |5f10->2f30 Ack		App=00|Position		    |
	|		|5f10->2f30 Execute	"[l][d]"		    |
	|		|5f10<-2f30 Ack		App=00|"[l][d]"		    |
	|		|630c->2f30 Ack		App=00|0		    |
	---------------------------------------------------------------------
	|<-| |||							 |->|
	---------------------------------------------------------------------

               The asterisk to the left of the client numbers indicates
               that DDEWatch is displaying messages for that session.  To
               suppress the display for a particular session, position the
               mouse pointer over the client-server pair and click the left
               mouse button.  To resume the display, repeat the procedure.

               The right section of the DDEWatch display shows detailed
               information about each DDE message.  The client's window
               handle is always to the left of the server's.  The arrow
               shows the direction of the message.  A left arrow (<-)
               indicates a message from the server to the client.  A right
               arrow (->) indicates a message from the client to the
               server.

               The type of message and its parameters are shown immediately
               to the right of the window handles.  The parameters are
               dependant on the type of message and are listed in the
               following table:

	 Message Type	  Parameters
	------------------------------------------------------------------------
	|Initiate	| Application Name
	|		| (vertical bar)
	|		| Topic Name
	|---------------+-------------------------------------------------------
	|Terminate	| (nothing)
	|---------------+-------------------------------------------------------
	|Advise		| AckReq (iff the fAckReq bit is set)
	|		| DeferUpd (iff the fDeferUpd bit is set)
	|		| Fmt=format name,* or number for a nonstandard format 
	|		| (vertical bar)
	|		| Item Name
	|---------------+-------------------------------------------------------
	|Unadvise	| Item Name
	|---------------+-------------------------------------------------------
	|Ack (Initiate)	| Application Name
	|		| (vertical bar)
	|		| Topic Name
	|---------------+-------------------------------------------------------
	|Ack (Execute)	| Negative (iff fAck is not set)
	|		| (Busy) (iff fBusy is set)
	|		| App=xx (where xx is the hex value of bAppReturnCode)
	|		| (vertical bar)
	|		| "Command string"
	|---------------+-------------------------------------------------------
	|Ack (Other)	| Negative (iff fAck is not set)
	|		| (Busy) (iff fBusy is set)
	|		| App=xx (where xx is the hex value of bAppReturnCode)
	|		| (vertical bar)
	|		| Item Name
	|---------------+-------------------------------------------------------
	|Data		| Response (iff fResponse is set)
	|		| Advise (iff fResponse is not set)
	|		| AckReq (iff fAckReq is set)
	|		| Release (iff fRelease is set)
	|		| Fmt=format name*, or number for a nonstandard format
	|		| "Data" (iff the format of the data is text)
	|		| (vertical bar)
	|		| Item Name
	|---------------+-------------------------------------------------------
	|Request	| Fmt=format name*, or number if a nonstandard format
	|		| (vertical bar)
	|		| Item Name
	|---------------+-------------------------------------------------------
	|Poke		| Release (iff fRelease is set)
	|		| Fmt=format name*, or number for a nonstandard format
	|		| "Data" (iff the format of the data is text)
	|		| (vertical bar)
	|		| Item Name
	|---------------+-------------------------------------------------------
	|Execute	| "Command string"
	------------------------------------------------------------------------
			* The standard format names that are displayed for the
			  DDE messages Advise, Data, Request and Poke are Text,
			  BitMap, MetaFile, Sylk, Dif, Tiff and OemText

               To pause the displaying of messages for all sessions,
               position the mouse pointer over the right section of the
               DDEWatch display and hold the left mouse button down.  To
               resume, release the button.


DDEWatch - Copyright (C) 1990 Horizon Technologies Inc.  All rights reserved.
				(517) 347-0800
