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

Windows编程

开发平台:

Visual C++

  1. /*+==========================================================================
  2.   File:      README.TXT
  3.   Summary:   This directory and those in the branch below contain the COM
  4.              Tutorial Samples. These code samples include an integrated
  5.              tutorial narrative that covers the foundations of COM
  6.              technology. All source for these samples is in C++. MFC is
  7.              not used. The series is for advanced programmers using their
  8.              proficiency in C++ Win32 programming to code COM and ActiveX
  9.              applications.
  10.              You can start the tutorial by executing TUTORIAL.EXE in this
  11.              directory (ie, the main directory of the installed COM
  12.              Tutorial Samples). Within the tutorial you can jump to Web
  13.              pages containing the individual lessons associated with each
  14.              sample. You can also jump to view pages covering how to set
  15.              up your computer environment to build and run the code
  16.              samples,
  17.              You must have a Web browser installed for TUTORIAL.EXE to
  18.              work. The Web browser must have a file association with the
  19.              .HTM file extension. The tutorial starts in the TUTORIAL.HTM
  20.              file.
  21.   Origin:    9-9-97: atrent - Revised for COM Tutorial Sample series.
  22. ----------------------------------------------------------------------------
  23.   This file is part of the Microsoft COM Tutorial Code Samples.
  24.   Copyright (C) Microsoft Corporation, 1997. All rights reserved.
  25.   This source code is intended only as a supplement to Microsoft
  26.   Development Tools and/or online documentation. See these other
  27.   materials for detailed information regarding Microsoft code samples.
  28.   THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  29.   KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  30.   IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  31.   PARTICULAR PURPOSE.
  32. ==========================================================================+*/
  33. COM Tutorial Programming Samples
  34. ================================
  35. The COM (Component Object Model) technology is the primary foundation for
  36. Microsoft's component software technology. OLE technology is built upon COM
  37. and all ActiveX controls are COM Component Objects.
  38. This tutorial sample series is directed to serve advanced programmers who
  39. are using their proficiency in C++ Win32 programming to develop or modify
  40. systems-level software using COM (Component Object Model) technology.
  41. These advanced samples show how to program components at the foundation
  42. level of COM. Neither MFC nor ATL is used in the samples.
  43. If you are developing internet Web applications with ActiveX controls and
  44. an integrated development environment like Microsoft Developer Studio,
  45. then you have the benefit of tools and abstractions that hide most of the
  46. technical detail covered in this series. The series exposes much of the
  47. infastructure that is now being increasingly hidden by MFC (Microsoft
  48. Foundation Classes) and ATL (Active Template Library). This series can
  49. help when you need to drop below the convenient abstractions in MFC or ATL
  50. to perform COM-compliant modifications. Of course, it can also help if you
  51. are working directly at this foundation level of COM programming to
  52. develop the highest performance professional applications.
  53. These source code samples are the same as those currently found as branch
  54. MSSDKSAMPLESCOMTUTSAMP of the installed Microsoft Win32 Platform SDK.
  55. All source for these code samples is in C++. MFC is not used.
  56. Each code sample has an associated description of the sample's external
  57. operation and a narrative code tour of the internal construction (based on
  58. the specific goal of the tutorial lesson). This tutorial narrative resides
  59. in a <lesson>.HTM Web page file--where <lesson> is the name of the
  60. lesson/code sample. There is one of these narrative HTML files for each
  61. tutorial code sample. All of these HTML files are located in the main
  62. directory of the tutorial samples branch. The complete tutorial is thus
  63. made up of many HTML files located in the parent directory of all the
  64. sample directories. This single parent directory is the main tutorial
  65. directory. Additional details on the internal mechanisms of each sample
  66. can be found in code comments in each source file located in the sample's
  67. directory.
  68. The tutorial HTML files for the tutorial samples are linked together into
  69. a Web that can be viewed with a Web browser. You can start browsing this
  70. tutorial by executing the TUTORIAL.EXE command in the main directory. You
  71. must have a Web browser installed for TUTORIAL.EXE to work.
  72. The COM tutorial samples reside in the following directory tree, organized
  73. in a graduated sequence of tutorial lessons. The numbered order of lessons
  74. is the sequence we recommend that you follow in the tutorial. Each lesson
  75. illustrates a major feature of COM technology. Most lessons build on the
  76. ones that came earlier in the sequence.
  77.   TUTSAMP    - This file, TUTORIAL.EXE, MAKEALL.BAT, *.HTM, etc.
  78.     INC      - Common include directory used by the code samples
  79.     LIB      - Common library directory used by the code samples
  80.     APPUTIL  - Lesson  0: Win32 Basics: Application Utility Library
  81.     READTUT  - Lesson  1: Win32 Basics: Tutorial Reader and Linking to APPUTIL
  82.     EXESKEL  - Lesson  2: Win32 Basics: Win32 EXE Skeleton Application
  83.     DLLSKEL  - Lesson  3: Win32 Basics: Win32 DLL Skeleton
  84.     DLLUSER  - Lesson  4: Win32 Basics: EXE User of a DLL
  85.     COMOBJ   - Lesson  5: COM Objects: Containment and Aggregation in a DLL
  86.     COMUSER  - Lesson  6: COM Objects: Nested Aggregation in EXE User
  87.     REGISTER - Lesson  7: COM Components: Component Registration
  88.     DLLSERVE - Lesson  8: COM Components: Component DLL Server
  89.     DLLCLIEN - Lesson  9: COM Components: Client Application of DLL Server
  90.     LICSERVE - Lesson 10: COM Components: DLL Licensed Server
  91.     LICCLIEN - Lesson 11: COM Components: Client App of Licensed Server
  92.     MARSHAL  - Lesson 12: COM Components: Custom Interface Standard Marshaling
  93.     MARSHAL2 - Lesson 13: COM Components: Marshaling DLL Self-Registration
  94.     LOCSERVE - Lesson 14: COM Components: Local Server
  95.     LOCCLIEN - Lesson 15: COM Components: Client App of Local Server
  96.     APTSERVE - Lesson 16: COM Components: Local Server with Multiple Apartments
  97.     APTCLIEN - Lesson 17: COM Components: Client of Multiple Apartment Server
  98.     REMCLIEN - Lesson 18: COM Components: DCOM Remote Client
  99.     FRESERVE - Lesson 19: COM Components: Free-threaded Server
  100.     FRECLIEN - Lesson 20: COM Components: Client of Free-threaded Server
  101.     CONSERVE - Lesson 21: COM Components: Connectable Object Server
  102.     CONCLIEN - Lesson 22: COM Components: Client of Connectable Object Server
  103.     STOSERVE - Lesson 23: COM Components: Structured Storage Server
  104.     STOCLIEN - Lesson 24: COM Components: Client of Structored Storage Server
  105.     PERSERVE - Lesson 25: COM Components: IPersistStream Persistence Server
  106.     PERTEXT  - Lesson 26: COM Components: IPersistStreamInit Persistence Server
  107.     PERDRAW  - Lesson 27: COM Components: IPersistStorage Persistence Server
  108.     PERCLIEN - Lesson 28: COM Components: Client of Persistent Components
  109.     DCDMARSH - Lesson 29: COM Components: Standard Marshaling for DCOM
  110.     DCDSERVE - Lesson 30: COM Components: DCOM Server Using Security
  111.     DCOMDRAW - Lesson 31: COM Components: DCOM Client Using Security.
  112. Throughout the sample sequence a clear differentiation is maintained
  113. between client and server, with a separate lesson sample for each.
  114. Usually, each client/server pair covers an area of COM technology. Here is
  115. an overview of the technologies covered by the lessons.
  116. Basic Win32 application programming is covered in the APPUTIL, READTUT,
  117. EXESKEL, DLLSKEL, and DLLUSER lessons. APPUTIL provides a utility
  118. framework for building Win32 applications. It also contains some tools
  119. needed for tutorial purposes. READTUT is a very simple EXE application
  120. that shows how to link to the APPUTIL static library and call utility
  121. functions in it. READTUT also shows how to invoke the COM tutorial Web
  122. page reader that is used throughout the sample series. EXESKEL shows a
  123. basic Win32 skeleton EXE application built using APPUTIL. DLLSKEL and
  124. DLLUSER simularly show a basic Win32 DLL (Dynamic Link Library) skeleton
  125. and how to access it from an EXE user application.
  126. Basic COM object construction, custom interfaces, and techniques for
  127. coding their reuse using aggregation and containment are covered in COMOBJ
  128. and COMUSER. The implementation and use of the standard IUnknown interface
  129. is covered. The implementation and use of the custom ICar, IUtility, and
  130. ICruise interfaces is covered.
  131. Basic COM component construction, class factories, component object
  132. registration, and techniques for housing COM objects in COM component
  133. servers are covered in REGISTER, DLLSERVE, and DLLCLIEN. The
  134. implementation and use of the standard IClassFactory interface is covered.
  135. COM component Licensing is covered in LICSERVE and LICCLIEN. The
  136. implementation and use of the standard IClassFactory2 interface is
  137. covered.
  138. Out-of-Process local servers and the standard marshaling of custom
  139. interfaces are covered in MARSHAL, LOCSERVE, and LOCCLIEN. Explicit
  140. self-registration in the standard marshaling DLL is covered in MARSHAL2.
  141. The use of the MIDL language to specify custom interfaces is covered. The
  142. use of the MIDL compiler to produce proxy/stub marshaling servers is also
  143. covered.
  144. Apartment model server and client construction are covered in APTSERVE and
  145. APTCLIEN. Construction of multiple single-threaded apartments (STA) in the
  146. same process is covered.
  147. DCOM (Distributed COM) with custom interfaces operating between client and
  148. server across machine boundaries is covered in REMCLIEN. Specifying the
  149. remote machine name in the COSERVERINFO structure is covered. Detailed
  150. DCOM security issues are not covered.
  151. Free-threaded COM components and their access by free-threaded clients are
  152. covered in FRESERVE and FRECLIEN. The use several client worker threads in
  153. the multi-threaded apartment (MTA) is covered. The implementation and use
  154. of a custom IBall interface is covered.
  155. Connectable COM object technology is covered in CONSERVE and CONCLIEN.
  156. Event source and sink construction is covered. Implementation and use of
  157. the IConnectionPointContainer, IConnectionPoint, IEnumConnectionPoints,
  158. and IEnumConnections standard interfaces are covered. The implementation
  159. and use of the custom IBall and IBallSink interfaces is covered.
  160. Structured storage using COM's compound file technology is covered in
  161. STOSERVE and STOCLIEN. A COM-based scribble drawing application is used.
  162. Use of the IStorage and IStream standard interfaces is covered. The
  163. implementation and use of the custom IPaper and IPaperSink interfaces is
  164. covered.
  165. Persistent COM objects are covered in PERSERVE, PERTEXT, PERDRAW, and
  166. PERCLIEN. IPersistStream is covered in the PERSERVE components.
  167. IPersistStreamInit is covered in the PERTEXT components. IPersistStorage
  168. is covered in the PERDRAW components. The PERCLIEN client functions these
  169. various persistent objects and manages storage for all of them in various
  170. substorages and streams within one structured storage compound file. The
  171. implementation and use of the custom IPageList, ITextPage, IDrawPage,
  172. IPageListSink, ITextPageSink, and IDrawPageSink interfaces is covered.
  173. DCOM (Distributed COM) Security is covered in DCDMARSH, DCDSERVE, and
  174. DCOMDRAW. The use of CoInitializeSecurity is shown in the DCDSERVE and
  175. DCOMDRAW samples. Multiple clients accessing a shared single COM object
  176. across machine boundaries is shown in a simple network shared-drawing
  177. application. Process and activation security within NT network domains is
  178. discussed. Registry AppIDs and their LaunchPermission, AccessPermission,
  179. and RunAs named values are discussed. The use of the DCOMCNFG utility is
  180. covered.
  181. FILES in the Main TUTSAMP Tutorial Directory
  182. ============================================
  183. File          Description
  184. ----          -----------
  185. README.TXT    This file. Short introduction to the COM Tutorial Samples.
  186. MAKEALL.BAT   Main batch file for building the entire samples branch
  187.                 regardless of branch's location. Use this one.
  188. LOGMALL.BAT   Same as MAKEALL.BAT except that all build output is logged
  189.                 to file ERRORLOG.TXT and viewed in NOTEPAD.
  190. REGALL.BAT    Batch file for registering all sample COM servers.
  191. UNREGALL.BAT  Batch file for unregistering all sample COM servers.
  192. CLEANALL.BAT  Batch file for performing CLEANALL on all the samples.
  193. MAKEFILE      Makefile for all samples. Use ONLY if building the entire
  194.                 samples branch WITHIN an installed Win32 Platform SDK.
  195. TUTORIAL.EXE  The main executable entry to the Web-based tutorial.
  196. TUTORIAL.HTM  Tutorial Web page. Main overview of COM Tutorial Samples.
  197. LESSONS.HTM   Tutorial Web page. Main Tutorial lesson list (with links).
  198. USING.HTM     Tutorial Web page. Details about using the code samples.
  199. APPUTIL.HTM   Tutorial Web page covering the APPUTIL sample.
  200. READTUT.HTM   Tutorial Web page covering the READTUT sample.
  201. EXESKEL.HTM   Tutorial Web page covering the EXESKEL sample.
  202. DLLSKEL.HTM   Tutorial Web page covering the DLLSKEL sample.
  203. DLLUSER.HTM   Tutorial Web page covering the DLLUSER sample.
  204. COMOBJ.HTM    Tutorial Web page covering the COMOBJ sample.
  205. COMUSER.HTM   Tutorial Web page covering the COMUSER sample.
  206. REGISTER.HTM  Tutorial Web page covering the REGISTER sample.
  207. DLLSERVE.HTM  Tutorial Web page covering the DLLSERVE sample.
  208. DLLCLIEN.HTM  Tutorial Web page covering the DLLCLIEN sample.
  209. LICSERVE.HTM  Tutorial Web page covering the LICSERVE sample.
  210. LICCLIEN.HTM  Tutorial Web page covering the LICCLIEN sample.
  211. MARSHAL.HTM   Tutorial Web page covering the MARSHAL sample.
  212. MARSHAL2.HTM  Tutorial Web page covering the MARSHAL2 sample.
  213. LOCSERVE.HTM  Tutorial Web page covering the LOCSERVE sample.
  214. LOCCLIEN.HTM  Tutorial Web page covering the LOCCLIEN sample.
  215. APTSERVE.HTM  Tutorial Web page covering the APTSERVE sample.
  216. APTCLIEN.HTM  Tutorial Web page covering the APTCLIEN sample.
  217. REMCLIEN.HTM  Tutorial Web page covering the REMCLIEN sample.
  218. CONSERVE.HTM  Tutorial Web page covering the CONSERVE sample.
  219. CONCLIEN.HTM  Tutorial Web page covering the CONCLIEN sample.
  220. FRESERVE.HTM  Tutorial Web page covering the FRESERVE sample.
  221. FRECLIEN.HTM  Tutorial Web page covering the FRECLIEN sample.
  222. STOSERVE.HTM  Tutorial Web page covering the STOSERVE sample.
  223. STOCLIEN.HTM  Tutorial Web page covering the STOCLIEN sample.
  224. PERSERVE.HTM  Tutorial Web page covering the PERSERVE sample.
  225. PERTEXT.HTM   Tutorial Web page covering the PERTEXT sample.
  226. PERDRAW.HTM   Tutorial Web page covering the PERDRAW sample.
  227. PERCLIEN.HTM  Tutorial Web page covering the PERCLIEN sample.
  228. DCDMARSH.HTM  Tutorial Web page covering the DCDMARSH sample.
  229. DCDSERVE.HTM  Tutorial Web page covering the DCDSERVE sample.
  230. DCOMDRAW.HTM  Tutorial Web page covering the DCOMDRAW sample.
  231. LOGO.GIF      Logo graphic used by the Tutorial. COM Logo.
  232. BULLET.GIF    Small graphic used by the Tutorial. General Bullet.
  233. PAGETOP.GIF   Small graphic used by the Tutorial. Top-of-page button.
  234. NAVBTN.GIF    Small graphic used by the Tutorial. General Button.
  235. NEXT.GIF      Small graphic used by the Tutorial. Next Arrow Button.
  236. PREV.GIF      Small graphic used by the Tutorial. Previous Arrow Button.