Article ID: 147952 - Last Review: August 5, 2004 - Revision: 4.2 Two-Way Communication Using IDispatch in MFCThis article was previously published under Q147952 2.00 2.10 2.20 4.00 4.10 WINDOWS NT kbfile NOTE: Microsoft Visual C++ .NET (2002) supports both the managed code
model that is provided by the Microsoft .NET Framework and the unmanaged native
Microsoft Windows code model. The information in this article applies to
unmanaged Visual C++ code only. SUMMARY Although there may be several ways to implement
communication between two executables, this sample illustrates a simple way a
server and a client application can communicate using IDispatch interfaces.
This may not be the best method, but it is straight forward to implement. Using
dual interfaces may provide a better solution, however. The sample consists of two executables. One, GENERAT.EXE, is a local server, and the other, GENCLNT.EXE, is a client of the server. Both client and server are automation servers in that they both support automation interfaces. The client application starts the server via CreateDispatch and thus obtains the servers IDispatch interface. The client then passes its IDispatch interface to the server using one of the server's interface methods. At this point, two-way communication between the client and the server is possible. Be sure to run the server stand-alone once before running it from the client. This will register the server and enable the client to start it dynamically. The following files are available for download from the Microsoft Download Center: Visual C++ 6.0Collapse this image ![]() 119591
(http://support.microsoft.com/kb/119591/EN-US/
)
How to Obtain Microsoft Support Files from Online Services
Microsoft scanned this file for viruses. Microsoft used the most
current virus-detection software that was available on the date that the file
was posted. The file is stored on security-enhanced servers that help to
prevent any unauthorized changes to the file.
Visual C++ .NETThe following file is available for download from the Microsoft Download Center:Collapse this image ![]() For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base: 119591
(http://support.microsoft.com/kb/119591/EN-US/
)
How to Obtain Microsoft Support Files from Online Services
Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.
NOTE: Use the -d option when running Dispcom.exe to decompress the
file and recreate the proper directory structure. MORE INFORMATION The GENERAT.EXE local server generates and displays random
colors. It can either generate one color each time as it is requested, or it
can continuously generate colors in response to a WM_TIMER message. The
GENERAT.EXE server can run either stand-alone or it can be controlled by a
client (in this case the GENCLNT.EXE application). In either case, the server
will be visible, and the server's user interface will be active. This means the
client and the server will need to communicate with each other to keep the user
interface of the client and server synchronized and to process requests from
the other. Below is a list of relavent methods from GENERAT.EXE and GENCLNT.EXE and a description of each method. GENERAT.EXE methods:
The client starts the server via CreateDispatch and thus obtains the
IDispatch pointer of the server. Once the client has the server's
IDispatch pointer, it can call this method in the server sending
its own IDispatch pointer. At this point, two-way communication is
possible between the client and the server.
Called by the client to tell the server to release the
IDispatch pointer of the client.
Called by the client to request that the server generate colors in
response to WM_TIMER messages.
Called by the client to request that the server generate a single
new color.
GENCLNT.EXE methods:
Called by the server when Animate Colors is chosen via the server
user interface. This keeps the Animate Colors menu choice of the client
synchronized with that of the server.
Called by the server when a color is generated. Called regardless
of whether the color was requested by the client or the server.
REFERENCESFor additional information about the
necessity of calling AddRef on an IDispatchpointer passed across process
boundaries, click the article number below to view the article in the Microsoft
Knowledge Base: 133042
(http://support.microsoft.com/kb/133042/EN-US/
)
How to Pass IDispatch Pointer & Avoid an Application
APPLIES TO
| Article Translations
|

Back to the top
