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