FRESERVE.TXT
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:5k
源码类别:

Windows编程

开发平台:

Visual C++

  1. FRESERVE - Free-threaded COM objects in an in-process server
  2. SUMMARY
  3. =======
  4. The FRESERVE sample shows how to construct a COM object in a free-threaded
  5. in-process server. This sample departs from the sport utility vehicle
  6. metaphor and associated interfaces used in other samples of this series.
  7. FRESERVE introduces a new custom interface, IBall, and a new COM object,
  8. COBall. COBall implements the IBall interface. Both COBall and its
  9. in-process server are coded to support COM free threading in anticipation
  10. of their use by the free-threaded client, FRECLIEN, in the next lesson.
  11. The CThreaded facility in APPUTIL is used to achieve thread safety as it
  12. was in the previous APTSERVE sample. COBall objects are derived from the
  13. CThreaded class and so inherit its OwnThis and UnOwnThis methods. These
  14. methods enforce mutually exclusive access to the FRESERVE server and to
  15. free-threaded COBall objects managed by the server.
  16. FRESERVE works with the FRECLIEN code sample to illustrate FRESERVE's COM
  17. server facilities in a free-threaded server and the subsequent manipulation
  18. of its components by a free-threaded client.
  19. For functional descriptions and a tutorial code tour of FRESERVE, see the
  20. Code Tour section in FRESERVE.HTM. For details on setting up the
  21. programmatic usage of FRESERVE, see the Usage section in FRESERVE.HTM. To
  22. read FRESERVE.HTM, run TUTORIAL.EXE in the main tutorial directory and
  23. click the FRESERVE lesson in the table of lessons. You can also achieve
  24. the same thing by clicking the FRESERVE.HTM file after locating the main
  25. tutorial directory in the Windows Explorer. See also FRECLIEN.HTM in the
  26. main tutorial directory for more details on the FRECLIEN client
  27. application and how it works with FRESERVE.DLL. You must build
  28. FRESERVE.DLL before building or running FRECLIEN.
  29. FRESERVE's makefile automatically registers FRESERVE's DllBall component
  30. in the registry. This component must be registered before FRESERVE is
  31. available to outside COM clients as a server for that component. This
  32. self-registration is done using the REGISTER.EXE utility built in the
  33. previous REGISTER lesson. To build or run FRESERVE, you should build the
  34. REGISTER code sample first.
  35. For details on setting up your system to build and test the code samples
  36. in this COM Tutorial series, see TUTORIAL.HTM. The supplied MAKEFILE
  37. is Microsoft NMAKE-compatible. To create a debug build, issue the NMAKE
  38. command in the Command Prompt window.
  39. Usage
  40. -----
  41. To use FRESERVE, a client program does not need to include FRESERVE.H or
  42. link to FRESERVE.LIB. A COM client of FRESERVE obtains access solely
  43. through its component's CLSID and COM services. For FRESERVE, that CLSID
  44. is CLSID_DllBall (defined in file BALLGUID.H in the INC sibling
  45. directory). The FRECLIEN code sample shows how the client obtains this
  46. access.
  47. FRESERVE is a DLL that is intended primarily as a free-threaded COM
  48. server. Although it can be implicitly loaded by linking to its associated
  49. .LIB file, it is normally used after an explicit LoadLibrary call, usually
  50. from within COM's CoGetClassObject function. FRESERVE is a
  51. self-registering in-process server.
  52. The makefile that builds this sample automatically registers the server in
  53. the registry. You can manually initiate its self-registration by issuing
  54. the following command at the command prompt in the FRESERVE directory:
  55.   nmake register
  56. You can also directly invoke the REGISTER.EXE command at the command prompt
  57. while in the FRESERVE directory.
  58.   ..registerregister.exe freserve.dll
  59. These registration commands require a prior build of the REGISTER sample
  60. in this series, as well as a prior build of FRESERVE.DLL.
  61. In this series, the makefiles use the REGISTER.EXE utility from the
  62. REGISTER sample. Recent releases of the Win32 Platform SDK and Visual C++
  63. include a utility, REGSVR32.EXE, which can be used in a similar fashion to
  64. register in-process servers and marshaling DLLs.
  65. FILES
  66. =====
  67. Files         Description
  68. FRESERVE.TXT  This file.
  69. MAKEFILE      The generic makefile for building the FRESERVE.DLL
  70.               code sample of this lesson.
  71. FRESERVE.H    The include file for declaring as imported or defining as
  72.               exported the service functions in FRESERVE.DLL.
  73. FRESERVE.CPP  The main implementation file for FRESERVE.DLL. Has DllMain
  74.               and the COM server functions (for example, DllGetClassObject).
  75. FRESERVE.DEF  The module definition file. Exports server housing functions.
  76. FRESERVE.RC   The DLL resource definition file for the executable.
  77. FRESERVE.ICO  The icon resource for the executable.
  78. SERVER.H      The include file for the server control C++ object.
  79. SERVER.CPP    The implementation file for the server control object.
  80. FACTORY.H     The include file for the server's class factory COM objects.
  81. FACTORY.CPP   The implementation file for the server's class factories.
  82. BALL.H        The include file for the COBall COM object class.
  83. BALL.CPP      The implementation file for the COBall COM object class.