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 / tutorial.txt < prev    next >
Text File  |  1997-10-10  |  16KB  |  271 lines

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