/*+========================================================================== File: TUTORIAL.TXT Summary: This directory and those in the branch below contain the ActiveX Tutorial Samples. These code samples include an integrated tutorial narrative that covers the foundations of ActiveX(tm) technology. All source for these samples is in C++. MFC is not used. The series is for programmers using their proficiency in C++ Win32 programming to code ActiveX web applications. You can start the tutorial by executing TUTORIAL.EXE in this directory (ie, the main directory of the installed ActiveX Tutorial Samples). Within the tutorial you can jump to web pages containing the individual lessons associated with each sample. You can also jump to view pages covering how to set up your computer environment to build and run the code samples, Origin: 1-6-97: atrent - Revised for ActiveX Tutorial Sample series. ---------------------------------------------------------------------------- This file is part of the Microsoft ActiveX Tutorial Code Samples. Copyright (C) Microsoft Corporation, 1997. All rights reserved. This source code is intended only as a supplement to Microsoft Development Tools and/or online documentation. See these other materials for detailed information regarding Microsoft code samples. THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. ==========================================================================+*/ ActiveX Tutorial Samples ======================== These ActiveX Tutorial Samples cover the foundations of ActiveX technology. COM (Component Object Model) technology is the primary foundation for ActiveX(tm) technology. For example, all ActiveX controls are COM Component Objects. These tutorial samples concentrate on COM technology early in the sequence and progress to cover ActiveX components in the context of web applications. This tutorial sample series is directed to serve foundation-level ActiveX programmers who are developing web applications using their proficiency in C++ Win32 programming. If you are developing internet web applications with ActiveX controls and an integrated development environment like Microsoft Developer Studio, then you have the benefit of tools and abstractions that hide most of the technical detail covered in this series. The series exposes much of the infastructure that is now being increasingly hidden by MFC (Microsoft Foundation Classes) and ATL (ActiveX Template Library). This series can help when you need to drop below the convenient abstractions in MFC or ATL to perform ActiveX/COM-compliant modifications. Of course, it can also help if you are working directly at this foundation level of ActiveX programming to develop the highest performance professional web applications. These source code samples are the same as those currently found as branch \MSSDK\SAMPLES\OLE\COM of the installed Microsoft Win32 Platform SDK. All source for these code samples is in C++. Neither MFC nor ATL is used. Each code sample has an associated description of the sample's external operation and a narrative code tour of the internal construction (based on the specific goal of the tutorial lesson). This tutorial narrative resides in a .HTM web page file--where is the name of the lesson/code sample. There is one of these narrative HTML files for each tutorial code sample. All of these HTML files are located in the main directory of the tutorial samples branch. The complete tutorial is thus made up of many HTML files located in the parent directory of all the sample directories. This single parent directory is the main tutorial directory. Additional details on the internal mechanisms of each sample can be found in code comments in each source file located in the sample's directory. The tutorial HTML files for the tutorial samples are linked together into a web that can be viewed with a web browser. You can start browsing this tutorial by executing the TUTORIAL.EXE command in the main directory. You must have a web browser compatible with Microsoft Internet Explorer installed for TUTORIAL.EXE to work. The ActiveX tutorial samples reside in the following directory tree, organized in a graduated sequence of tutorial lessons. The numbered order of lessons is the sequence we recommend that you follow in the tutorial. Each lesson illustrates a major feature of COM and ActiveX technology. Most lessons build on the ones that came earlier in the sequence. COM - This file, TUTORIAL.EXE, MAKEALL.BAT, etc. INC - Common include directory used by the code samples LIB - Common library directory used by the code samples APPUTIL - Lesson 0: Win32 Basics: Application Utility Library READTUT - Lesson 1: Win32 Basics: Tutorial Reader and Linking to APPUTIL EXESKEL - Lesson 2: Win32 Basics: Win32 EXE Skeleton Application DLLSKEL - Lesson 3: Win32 Basics: Win32 DLL Skeleton DLLUSER - Lesson 4: Win32 Basics: EXE User of a DLL COMOBJ - Lesson 5: COM Objects: Containment and Aggregation in a DLL COMUSER - Lesson 6: COM Objects: Nested Aggregation in EXE User REGISTER - Lesson 7: COM Components: Component Registration DLLSERVE - Lesson 8: COM Components: Component DLL Server DLLCLIEN - Lesson 9: COM Components: Client Application of DLL Server LICSERVE - Lesson 10: COM Components: DLL Licensed Server LICCLIEN - Lesson 11: COM Components: Client App of Licensed Server MARSHAL - Lesson 12: COM Components: Standard Marshaling LOCSERVE - Lesson 13: COM Components: Local Server LOCCLIEN - Lesson 14: COM Components: Client App of Local Server APTSERVE - Lesson 15: COM Components: Local Server with Multiple Apartments APTCLIEN - Lesson 16: COM Components: Client of Multiple Apartment Server REMCLIEN - Lesson 17: COM Components: DCOM Remote Client FRESERVE - Lesson 18: COM Components: Free-threaded Server FRECLIEN - Lesson 19: COM Components: Client of Free-threaded Server CONSERVE - Lesson 20: COM Components: Connectable Object Server CONCLIEN - Lesson 21: COM Components: Client of Connectable Object Server STOSERVE - Lesson 22: COM Components: Structured Storage Server STOCLIEN - Lesson 23: COM Components: Client of Structored Storage Server Throughout the sample sequence a clear differentiation is maintained between client and server, with a separate lesson sample for each. Usually, each client/server pair covers an area of COM/ActiveX technology. Here is an overview of the technologies covered by the lessons. Basic Win32 application programming is covered in the APPUTIL, READTUT, EXESKEL, DLLSKEL, and DLLUSER lessons. APPUTIL provides a utility framework for building Win32 applications. It also contains some tools needed for tutorial purposes. READTUT is a very simple EXE application that shows how to link to the APPUTIL static library and call utility functions in it. READTUT also shows how to invoke the ActiveX tutorial web page reader that is used throughout the sample series. EXESKEL shows a basic Win32 skeleton EXE application built using APPUTIL. DLLSKEL and DLLUSER simularly show a basic Win32 DLL (Dynamic Link Library) skeleton and how to access it from an EXE user application. Basic COM object construction, custom interfaces, and techniques for coding their reuse using aggregation and containment are covered in COMOBJ and COMUSER. Basic COM component construction, class factories, and techniques for housing COM objects in COM component servers are covered in REGISTER, DLLSERVE, and DLLCLIEN. COM component Licensing using IClassFactory2 is covered in LICSERVE and LICCLIEN. Out-of-Process local servers and the standard marshaling of custom interfaces are covered in MARSHAL, LOCSERVE, and LOCCLIEN. Multi-threaded apartment model server and client construction are covered in APTSERVE and APTCLIEN. Multiple single-threaded apartments are used. DCOM (Distributed COM) with custom interfaces operating between client and server across machine boundaries is covered in REMCLIEN. Free-threaded COM components and their access by free-threaded clients are covered in FRESERVE and FRECLIEN. The multi-threaded apartment is used. Connectable COM object technology is covered in CONSERVE and CONCLIEN. Event source and sink construction is covered. Structured storage using COM's compound file technology is covered in STOSERVE and STOCLIEN. A COM-based scribble drawing application is used. FILES in the Main Tutorial Directory ==================================== File Description ---- ----------- TUTORIAL.TXT Short introduction to the ActiveX Tutorial Samples. This file. MAKEFILE Makefile for all samples. Use only if building the entire samples branch WITHIN an installed Win32 Platform SDK. MAKEALL.BAT Main batch file for building the entire samples branch regardless of branch's location. Use this one. REGALL.BAT Batch file for registering all sample COM servers. UNREGALL.BAT Batch file for unregistering all sample COM servers. CLEANALL.BAT Batch file for cleaning all samples. TUTORIAL.EXE The main executable entry to the web-based tutorial. TUTORIAL.HTM Tutorial web page. Main overview of ActiveX Tutorial Samples. LESSONS.HTM Tutorial web page. Main Tutorial lesson list (with links). ABOUT.HTM Tutorial web page. Details about building the samples. APPUTIL.HTM Tutorial web page covering the APPUTIL sample. APTCLIEN.HTM Tutorial web page covering the APTCLIEN sample. APTSERVE.HTM Tutorial web page covering the APTSERVE sample. COMOBJ.HTM Tutorial web page covering the COMOBJ sample. COMUSER.HTM Tutorial web page covering the COMUSER sample. CONCLIEN.HTM Tutorial web page covering the CONCLIEN sample. CONSERVE.HTM Tutorial web page covering the CONSERVE sample. DLLCLIEN.HTM Tutorial web page covering the DLLCLIEN sample. DLLSERVE.HTM Tutorial web page covering the DLLSERVE sample. DLLSKEL.HTM Tutorial web page covering the DLLSKEL sample. DLLUSER.HTM Tutorial web page covering the DLLUSER sample. EXESKEL.HTM Tutorial web page covering the EXESKEL sample. FRECLIEN.HTM Tutorial web page covering the FRECLIEN sample. FRESERVE.HTM Tutorial web page covering the FRESERVE sample. LICCLIEN.HTM Tutorial web page covering the LICCLIEN sample. LICSERVE.HTM Tutorial web page covering the LICSERVE sample. LOCCLIEN.HTM Tutorial web page covering the LOCCLIEN sample. LOCSERVE.HTM Tutorial web page covering the LOCSERVE sample. MARSHAL.HTM Tutorial web page covering the MARSHAL sample. REGISTER.HTM Tutorial web page covering the REGISTER sample. REMCLIEN.HTM Tutorial web page covering the REMCLIEN sample. READTUT.HTM Tutorial web page covering the READTUT sample. STOCLIEN.HTM Tutorial web page covering the STOCLIEN sample. STOSERVE.HTM Tutorial web page covering the STOSERVE sample. ACTIVEX.GIF Animated ActiveX graphic used by the Tutorial. NEXT.GIF Small graphic used by the Tutorial. PREV.GIF Small graphic used by the Tutorial. UPARROW.GIF Small graphic used by the Tutorial. BULLET.GIF Small graphic used by the Tutorial.