home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / com / tutsamp / freclien / freclien.txt < prev    next >
Text File  |  1997-08-05  |  5KB  |  98 lines

  1.  
  2. FRECLIEN - Free-threaded client of a free-threaded server
  3.  
  4.  
  5. NOTE: FRECLIEN uses CoInitializeEx. CoInitializeEx is implemented only on
  6. Windows NT 4.0 and later versions. It is also implemented in the DCOM95
  7. addition to Win95. This sample will not run on earlier versions of Windows
  8. NT or on Win95 without DCOM95.
  9.  
  10.  
  11. SUMMARY
  12. =======
  13.  
  14. The FRECLIEN sample spawns multiple threads to create and use the COBall
  15. COM object provided by the FRESERVE free-threaded server. COBall object
  16. itself spawns no threads; it passively responds to IBall interface
  17. requests from multiple client threads. The FRECLIEN client creates and
  18. controls one COBall object through the IBall interface that the object
  19. exposes. As three of FRECLIEN's threads move the ball through calls to
  20. IBall::Move, the remaining main thread uses a system timer to obtain timed
  21. updates of the COBall object's position, size, and color. This main thread
  22. uses that data, obtained by calling the IBall::GetBall method, to display
  23. graphical snapshot images of the ball in the client's main window.
  24.  
  25. As explained in the FRESERVE sample, the COBall object internally updates
  26. its color property to reflect the last thread that called the object's
  27. Move method. The display thread uses this data for each ball image it
  28. displays. As the ball moves, it changes color to reflect the changing
  29. threads that move the ball. As the ball moves, it also leaves a trail that
  30. provides a striking visual history of these passing threads. This trail
  31. demonstrates that, with COM's free threading model, all threads that make
  32. interface requests to the same object access the object on the different
  33. calling threads. Each different color of the single ball object represents
  34. a different calling thread. Since the display thread is asynchronous with
  35. respect to the ball-moving threads, there is no guarantee that the display
  36. trail will include a record of every thread that moved the ball. Based on
  37. thread scheduling and on the load of other applications running, not all
  38. threads that move the ball are "caught in the act" by the display thread.
  39.  
  40. This free threading model is in contrast to the apartment model presented
  41. in the APTSERVE and APTCLIEN samples. In apartment model threading, each
  42. COM object is associated with an single-threaded apartment. Calls from
  43. multiple client threads are switched by COM to the thread of the apartment
  44. that owns the object. Only one thread, the object's apartment thread, is
  45. permitted to execute the methods of the object. This provides a
  46. serialization of access to the object's data.
  47.  
  48. For functional descriptions and a tutorial code tour of FRECLIEN, see the
  49. Code Tour section in FRECLIEN.HTM. For details on the external user
  50. operation of FRECLIEN, see both the Usage and Operation sections in
  51. FRECLIEN.HTM. To read FRECLIEN.HTM, run TUTORIAL.EXE in the main tutorial
  52. directory and click the FRECLIEN lesson in the table of lessons. You can
  53. also achieve the same thing by clicking the FRECLIEN.HTM file after
  54. locating the main tutorial directory in the Windows Explorer. See also
  55. FRESERVE.HTM in the main tutorial directory for more details on how
  56. FRESERVE works and exposes its services to FRECLIEN. You must build the
  57. FRESERVE DLL before building FRECLIEN. The makefile for FRESERVE
  58. automatically registers that server in the system registry, so you must
  59. build FRESERVE before attempting to run FRECLIEN.
  60.  
  61. For details on setting up your system to build and test the code samples
  62. in this COM Tutorial series, see TUTORIAL.HTM. The supplied MAKEFILE is
  63. Microsoft NMAKE-compatible. To create a debug build, issue the NMAKE
  64. command in the Command Prompt window.
  65.  
  66. Usage
  67. -----
  68.  
  69. FRECLIEN is an application that you can execute directly from Windows in
  70. the normal manner or from the Command Prompt window. No command line
  71. parameters are recognized by FRECLIEN. FRECLIEN currently requires the
  72. free-threading facilities provided in more recent releases of COM such as
  73. found in version 4.0 and later releases of the Windows NT operating
  74. system. The Windows 95 operating system does not currently support free
  75. threading, so FRECLIEN will not run on it. However, a DCOM95 add-on to
  76. Win95 will permit the FRECLIEN/FRESERVE samples to run on Win95. DCOM95 is
  77. currently nearing release.
  78.  
  79.  
  80. FILES
  81. =====
  82.  
  83. Files          Description
  84.  
  85. FRECLIEN.TXT   This file.
  86. MAKEFILE       The generic makefile for building the code sample
  87.                application of this tutorial lesson.
  88. FRECLIEN.H     The include file for the FRECLIEN application. Contains
  89.                class declarations, function prototypes, and resource
  90.                identifiers.
  91. FRECLIEN.CPP   The main implementation file for FRECLIEN.EXE. Has WinMain
  92.                and CMainWindow implementation, as well as the main menu
  93.                dispatching.
  94. FRECLIEN.RC    The application resource definition file.
  95. FRECLIEN.ICO   The application icon resource.
  96. GUIBALL.H      The class declaration for the CGuiBall C++ class.
  97. GUIBALL.CPP    Implementation file for the CGuiBall C++ class.
  98.