home *** CD-ROM | disk | FTP | other *** search
- ===========================================================
- INSIDE OLE BY KRAIG BROCKSCHMIDT
- COMPANION DISC
- COPYRIGHT (C) 1995 BY KRAIG BROCKSCHMIDT
- ===========================================================
-
- This file describes the contents of the directories found on the
- sample CD. For complete information about individual source
- code files, consult the comments in the files themselves.
-
-
- ROOT DIRECTORY ON CD
- ----------------------
-
- CODE\*.* Contains the sample code tree, which should
- be copied to C:\INOLE.
-
- 16BITOLE.WRI "Notes Concerning 16-Bit OLE" describing
- 16BITOLE.RTF differences between the book text, which is
- written for 32-bit OLE, and 16-bit OLE.
-
- APPA.WRI Appendix A, "An Introduction to C++"
- APPA.RTF Which supplements Chapters 1 and 2 for C
- programmers who need a familiarity with C++
- to read this book effectively.
-
- APPB.WRI "The Details of Standard Marshaling," a
- APPB.RTF supplement to Chapter 6.
-
-
- BUILD.TXT Details about the sample code build process.
- CONTENTS.TXT This file you are now reading.
- ERRATA.TXT Corrections to the printed text.
- README.TXT Read this first!
-
- SETUP.EXE The setup program that will copy the sample
- SETUP.INI code to your machine from the CD.
- SETUP.TXT
-
-
-
- INSTALLATION DIRECTORY FOR SAMPLE CODE:
- ----------------------------------------
-
- COMMON FILES THAT OCCUR IN MANY DIRECTORIES
-
-
- File Description
- --------------------------------------------
- about.dlg Dialog template for About box
-
- client.cpp Client-area object code for samples based on
- CLASSLIB (primarily Cosmo, Component Cosmo,
- and Patron)
-
- <sample>.ico Program icon
- <sample>.rc Resources for the sample
-
- document.cpp Document window object code for all samples based on
- CLASSLIB (primariliy Cosmo, Component Cosmo,
- and Patron)
-
- document.ico Document window icon for MDI samples based on
- CLASSLIB (primariliy Cosmo, Component Cosmo,
- and Patron)
-
- gizmo120.bmp Toolbar images for 120dpi
- gizmo72.bmp Toolbar images for 72dpi
- gizmo96.bmp Toolbar images for 96dpi
-
- makeall.bat Build script for everything in the given
- directory and in all subdirectories.
- makefile Makefile
-
- precomp.cpp Source file to pull in the right header file
- for making a precompiled header.
-
- resource.h Definitions of resource identifiers.
-
- win16.def 16-bit module definitions
- win16.def 16-bit registry information
-
- win32.def 32-bit module definitions
- win32.def 32-bit registry information
-
-
-
-
- ROOT DIRECTORY
-
- File Description
- --------------------------------------------
- inole-a.mak Definitions of symbols, compiler flags,
- linker flags, and makefile rules.
- inole-b.mak Linker scripts
- makeall.bat Global build script
- mksamp1.bat Default script for building an MDI or SDI
- sample, depending on the SDI environment variable.
- mksamp2.bat Default script for building a simple sample
- mksamp3.bat Default script for building a simple sample in
- a second-level directory (one deeper than mksamp2.bat)
-
-
-
- BUILD DIRECTORY
-
- Binary EXE and DLL files for all the samples. INOLE.DLL is
- the most important, which should be in your PATH when attempting
- to run most of the book's samples.
-
-
-
- COSMO SAMPLES IN VARIOUS DIRECTORIES
-
- Cosmo is a sample intended to show how you can convert
- Windows API-based application features into OLE-based
- features, and serves as the primary example for compound
- document content objects. It evolves throughout the book
- as decsribed below:
-
- Directory Description
- --------------------------------------
- CHAP01\COSMO Fully functional version of Cosmo written
- entirely with the Windows API using no OLE
- whatsoever.
-
- CHAP07\COSMO File I/O is convered to use Compound Files.
-
- CHAP12\COSMO Clipboard code is converted to use the OLE
- clipboard protocol and data objects.
-
- CHAP13\COSMO Adds OLE Drag & Drop
-
- CHAP14\COSMO Adds OLE Automation support to the entire
- application (this chapter's sample is based on
- Chapter 12's version)
-
- CHAP18\COSMO Adds OLE Documents support for embedding,
- using Chapter 13's version as a base (to avoid
- complicating the scene with OLE Automation).
- Cosmo is a server for a gaphical "Figure" type
- of content.
-
- CHAP21\COSMO Adds OLE Documents support for linking,
- improving on Chapter 18's sample.
-
- CHAP23\COSMO Adds in-place activation support to the
- Chapter 21 sample
-
-
- CHAP18\COSMO1.0 Cosmo's 1.0 version, which supported
- OLE Documents using OLE version 1. Not
- fully supported under 32-bit. Provided
- only as an example for conversion and
- emulation as described in OLE1.WRI.
-
-
-
- COSMO SOURCE FILES
- ------------------
-
- This table lists Cosmo's specific files (excluding those
- that were listed as "common" above), the chapter where the
- file first appears, and the purpose of that file.
-
- Appears
- File in chapter: Description
- ----------------------------------------------------------
- cosmo.cpp 1 Frame window handling for cosmo.
- Also receives the IOleInPlaceFrame
- code in Chapter 23.
- cosmo.h 1 Main header file
-
- document.cpp 1 Document object code, implements
- IOleInPlaceUIWindow in Chapter 23.
-
- polyline.cpp 1 Object code for Polyline window
- class, where the figure is drawn
- polyline.h 1 Polyline's header file
- polywin.cpp 1 Polyline's window procedure
-
- dropsrc.cpp 13 Implementation of drop source object
- for OLE Drag & Drop
- droptgt.cpp 13 Implementation of drop target object
- for OLE Drag & Drop
-
- iclassf.cpp 14,18 Implementation of Cosmo's class factory
- object. It appears in Chapter 14 for
- OLE Automation. A different one appears
- in Chapters 18 and beyond for OLE Documents.
-
- cosmole.h 18 Header file for OLE Documents specifics.
-
- figure.cpp 18 The "embedded" or "linked" content object
- implementatation that wraps the Polyline
- code into a "Figure" content object.
-
- idataobj.cpp 18 IDataObject implementation for the Figure.
- ioleobj.cpp 18 IOleObject implementation for the Figure.
- iperstor.cpp 18 IPersistStorage implementation for the
- Figure.
-
- iperfile.cpp 21 IPersistFile implementation for the Figure
- to support linking.
-
- iipaobj.cpp 23 IOleInPlaceActiveObject implementation for
- the Figure's in-place activation.
- iipobj.cpp 23 IOleInPlaceObject implementation for
- the Figure's in-place activation.
-
-
- These appear only in Chapter 14:
- -----------------------------------
- autoapp.cpp "Application" object code for OLE Automation
- autobase.cpp Base class implementation used for all OLE Automation
- objects in autoapp.cpp, autofig.cpp, and autofigs.cpp.
- autofig.cpp "Figure" object code for OLE Automation
- autofigs.cpp "Figures" collection object code for OLE Automation
- cosmo000.odl Cosmo's ODL script defining its OLE Automation
- interfaces.
-
-
-
-
- COMPONENT COSMO SAMPLES IN VARIOUS DIRECTORIES
-
- Component Cosmo is a variation of Cosmo which uses a
- COM-based version of a Polyline object, which is an internal
- C++ class in Cosmo. It evolves in a similar vein to
- Cosmo throughout the early part of the book as decsribed below:
-
- Directory Description
- --------------------------------------
- CHAP05\COCOSMO First manifestration of Component Cosmo
- in the chapter where Polyline is first made
- a COM component. Communication between
- CoCosmo and Polyline happens through a
- custom interface as well as connection points.
-
- CHAP08\COCOSMO Uses IPersist* interfaces to save and load
- Polyline data instead of custom interface
- members.
-
- CHAP10\COCOSMO Uses IDataObject to exchange data with the
- Polyline object instead of custom interface
- members.
-
- CHAP12\COCOSMO Converts existing clipboard support to use
- the OLE Clipboard.
-
- CHAP13\COCOSMO Adds OLE Drag & Drop.
-
- There are no revisions of Component Cosmo after this, although
- a README.TXT in the COCOSMO directory of chapters 19, 21, 23,
- and 24 describe simple modifications to make CoCosmo work with
- later versions of Polyline.
-
-
- COCOSMO SOURCE FILES
- --------------------
-
- This table lists Component Cosmo's specific files (excluding those
- that were listed as "common" above), the chapter where the
- file first appears, and the purpose of that file.
-
- Appears
- File in chapter: Description
- ----------------------------------------------------------
- cocosmo.cpp 5 Frame object code
- cocosmo.h 5 Main application header file
- iadvsink.cpp 10 Implementation of a simple object
- with IAdviseSink to receive data
- change notifications from the Polyline.
-
- dropsrc.cpp 13 Implementation of drop source object
- for OLE Drag & Drop
- droptgt.cpp 13 Implementation of drop target object
- for OLE Drag & Drop
-
-
-
-
- POLYLINE SAMPLES IN VARIOUS DIRECTORIES
-
- Polyline begins life in Chapter 5 as a COM object that is
- broken out of Cosmo. Instead of being an internal C++ object,
- Polyline becomes a COM object with a custom interface, and
- over time we add more interfaces to the object, eventually
- making it into a compound document content object and a
- partial OLE Control. Various manifestations of Component
- Cosmo use versions of this sample, which evolves as described
- in the table below:
-
-
- Directory Description
- --------------------------------------
- CHAP05\POLYLINE First manifestation of Polyline which implements
- a custom interface IPolyline5, as well as
- connection point support for its own notification
- set, IPolylineAdviseSink5.
-
- CHAP08\POLYLINE Persistence support removed from IPolyline5
- which now becomes IPolyline8, and added through
- IPersistStorage and IPersistStreamInit.
-
- CHAP10\POLYLINE Data exchange support removed from IPolyline8
- which now becomes IPolyline10, and added through
- IDataObject and support for sending data changes
- through IAdviseSink.
-
- CHAP19\POLYLINE Adds support for OLE Documents embedding with
- the interfaces IOleObject, IRunnableObject,
- IViewObject2, and those necessary for caching.
-
- CHAP21\POLYLINE Adds support for a container's linking to
- embedding feature, which means handling
- monikers and implementing IExternalConnection.
-
- CHAP23\POLYLINE Adds in-place activation support with
- IOleInPlaceObject and IOleInPlaceActive object,
- and is marked OLEMISC_ACTIVATEWHENVISIBLE.
-
- CHAP24\POLYLINE Becomes a partial OLE Control with IOleControl
- and IDispatch, and supports its own property page.
-
-
- POLYLINE SOURCE FILES
- ----------------------
-
- This table lists Polyline's specific files (excluding those
- that were listed as "common" above), the chapter where the
- file first appears, and the purpose of that file.
-
-
- Appears
- File in chapter: Description
- ----------------------------------------------------------
- dllpoly.cpp 5 LibMain[32] and initialization code.
- iconnpt.cpp 5 Connection point support
- ipolylin.cpp 5 Implementation of custom IPolyline*
- interfaces
- polyline.cpp 5 Core of object code
- polyline.h 5 Main header file
- polywin.cpp 5 Window procedure for the Polyline
- editing window
- iperstmi.cpp 8 Implementation of IPersistStreamInit
- iperstor.cpp 8 Implementation of IPersistStorage
- idataobj.cpp 10 Implementation of IDataObject
- irunobj.cpp 19 Implementation of IRunnableObject
- iviewobj.cpp 19 Implementation of IViewObject2
- ioleobj.cpp 19 Implementation of IOleObject
- iextconn.cpp 21 Implementation of IExternalConnection
- iipaobj.cpp 23 Implementation of IOleInPlaceActiveObject
- iipobj.cpp 23 Implementation of IOleInPlaceObject
- control.cpp 24 Code related to being an OLE Control,
- including IOleControl and IDispatch
- interfaces.
- ipoly.h 24 MKTYPLIB-generated header for interfaces
- needed for being an OLE Control, including
- Polyline's event set.
- polyline.odl 24 ODL script for all interfaces including the
- event set.
-
-
-
-
- PATRON SAMPLES IN VARIOUS DIRECTORIES
-
- Patron is a sample intended to show how you can build a new
- application entirely with OLE features, serving to show new
- OLE code (instead of converted Windows API code), and becomes
- the primary example of a container for compound document
- content objects and OLE Controls. It evolves throughout the
- book as decsribed below:
-
- Directory Description
- --------------------------------------
- CHAP01\PATRON Skeletal version of Patron that does almost
- nothing useful whatsoever.
-
- CHAP07\PATRON Adds file I/O capabilities using Compound Files.
-
- CHAP12\PATRON Adds clipboard handling and support for static
- content on a page using the OLE Clipboard and
- the OLE data cache.
-
- CHAP13\PATRON Adds OLE Drag & Drop
-
- CHAP17\PATRON Adds OLE Documents container support for
- embedding.
-
- CHAP20\PATRON Adds OLE Documents container support for
- linking.
-
- CHAP21\PATRON Adds OLE Documents support for linking
- to embeddings, where Patron becomes a
- server for embedded objects within it,
- demonstrating complex moniker binding.
-
- CHAP22\PATRON Adds in-place activation container support.
-
- CHAP24\PATRON Adds partial support for OLE Controls,
- specifically support for event handling.
-
-
-
- PATRON SOURCE FILES
- ------------------
-
- This table lists Patron's specific files (excluding those
- that were listed as "common" above), the chapter where the
- file first appears, and the purpose of that file.
-
- Appears
- File in chapter: Description
- ----------------------------------------------------------
- page.cpp 1 Code for a single "page" object.
- pagemous.cpp 1 Mouse-event handlers for a page.
- pages.cpp 1 Manages the collection of pages
- in a document.
- pages.h 1 Definitions of the pages collection and
- the page object class.
- pagewin.cpp 1 Windows procedure for the pages
- collection.
- patron.cpp 1 Frame object code, also IOleInPlaceFrame
- implementation in Chapter 23.
- patron.h 1 Main application header file.
- print.cpp 1 Printer-specific code, kept out of the
- way from everything else.
- print.dlg 1 Print dialog template.
-
- tenant.cpp 12 "Tenant" class implenentation, where each
- tenant is one piece of content or object
- on a page. This becomes the site object
- for OLE Documents and OLE Controls.
-
- dragdrop.cpp 13 Internal helper functions for Drag & Drop.
- dropsrc.cpp 13 Implementation of drop source object
- for OLE Drag & Drop
- droptgt.cpp 13 Implementation of drop target object
- for OLE Drag & Drop
-
- iadvsink.cpp 17 Implementation of IAdviseSink for tenants.
- iclisite.cpp 17 Implementation of IOleClientSite for tenants.
- tenant.h 17 Header information for tenants, broken
- out from pages.h
-
- iuilink.cpp 20 Implementation of IOleUILinkContainer for
- use with the Links dialog.
-
- iclassf.cpp 21 Class factory object for linking to
- embeddings.
- iolecont.cpp 21 Implementation of IOleItemContainer
- for both the document and the page objects,
- needed to support linking.
- iperfile.cpp 21 Implementation of IPersistFile for linking.
-
- iipsite.cpp 22 Implementation of IOleInPlaceSite for
- the tenant and in-place activation
- iipuiwin.cpp 22 Implementation of IOleInPlaceUIWindow for
- the document and in-place activation
-
- ambients.cpp 24 Implementation of IDispatch for
- ambient properties.
- connect.cpp 24 Code to connect to a control's event
- set and retrieve its type information
- events.cpp 24 Code for handling arbitrary events and
- the events dialog.
- events.dlg 24 Dialog template for assigning actions
- to events.
- iconsite.cpp 24 Implementation of IOleControlSite
-
-
-
-
-
- CHAPTER BY CHAPTER DIRECTORIES
-
- Specific descriptions of many source files are not given for the
- simple samples, as those are described in the book text in detail.
-
-
- CHAPTER 1 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COSMO See above
- PATRON See above
-
-
-
- CHAPTER 2 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- ENUMRECT Demonstration of enumerator objects
- MALLOC1 C program demonstrating OLE's memory allocation service
- MALLOC2 C++ program demonstrating OLE's memory allocation service
- QUERY Demonstration of the implementation of IUnknown and
- three techniques for implementing multiple interfaces.
- REUSE Demonstraton of object reusability through
- containment and aggregation.
-
-
-
- CHAPTER 3 DIRECTORIES
-
- Has no samples
-
-
-
- CHAPTER 4 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- CONNECT Demonstration of connection points
-
-
-
-
- CHAPTER 5 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COCOSMO See above
- POLYLINE See above
- DKOALA1 Demonstration of a simple in-process component
- DKOALA2 Demonstration of a simple in-process component
- that supports self-registration
- DKOALA3 Demonstration of a simple in-process component
- that supports licensing
-
- EKOALA1 Demonstration of a simple out-of-process component
- EKOALA2 Demonstration of a simple out-of-process component
- that supports self-registration
-
- OBJUSER Client for DKoala1 and EKoala1
- LICUSER Client for DKoala3
- SELFREG Driver for self-registering components, for use
- with DKoala2 and EKoala2
-
-
- CHAPTER 6 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- EKOALA3 Simple out-of-process component that demonstrates
- message handling.
- EKOALA4 Simple component that implements two custom
- interfaces, IAnimal and IKoala, using standard
- marshaling.
-
- EKOALA5 Simple component that implements custom interfaces
- using custom marshaling.
- KOALAPRX Custom marshaling proxy object for EKoala5
-
- IANIMAL Standard marshaling interface for IAnimal
- IKOALA Standard marshaling interface for IKoala
-
- OBJUSER2 Client for EKoala3 that demonstrates message
- handling and the Busy dialog.
-
- OBJUSER3 Client for EKoala4 and EKoala5 to prove that
- a client doesn't care about how marshaling is
- carried out.
-
-
-
- CHAPTER 7 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COSMO See above
- FRAGMENT Demonstration of the built-in defragmentation
- capabilities of Compound Files.
- PATRON See above
-
-
- CHAPTER 8 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COCOSMO See above
- POLYLINE See above
-
-
- CHAPTER 9 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- IDESCRIP Standard marshaling interface for IDescription
- LINKSRC A source for linked data that demonstrates
- complex moniker binding, using IDescription to
- communicate with LinkUser.
- LINKUSER A client for LinkSource that binds monikers to
- an IDescription interface and displays text.
-
-
-
- CHAPTER 10 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COCOSMO See above
- POLYLINE See above
-
- DATAUSER Client for DDataObj and EDataObj, demonstrating
- data retrieval and handling of data change
- notifications.
-
- DDATAOBJ In-process data object implementation
- EDATAOBJ Out-of-process data object implementation identical
- to DDataObj useful for comparing performance.
-
- RES Resources shared between DDataObj and EDataObj.
- TARGDEV Sample source file for target device structure
- handling in OLE's DVTARGETDEVICE and FORMATETC
- structures.
-
- CHAPTER 11 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- FREELOAD Demonstration of using OLE's Data Cache to display,
- store, and retrieve bitmaps and metafiles.
-
-
- CHAPTER 12 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COSMO See above
- COCOSMO See above
-
- DATATRAN A "Data Transfer" Component that is used in the
- Cosmo and Patron samples from here through the end
- of the book. It acts as a data store for use with
- data exchange protocols like the cliboard and
- OLE Drag & Drop.
-
- PATRON See above
-
-
-
- CHAPTER 13 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COSMO See above
- COCOSMO See above
- PATRON See above
-
-
- CHAPTER 14 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- BEEPER1 Variation I on a simple automation object
-
- BEEPER2 Variation II on a simple automation object,
- with support for type information
-
- BEEPER3 Variation III on a simple automation object,
- with support for error objects
- BEEPER3A A correction to Beeper3, see ERRATA.TXT
-
- BEEPER4 Variation III on a simple automation object,
- demonstrating dual interfaces.
-
- BEEPER5 Variation III on a simple automation object,
- demonstrating OLE's standard dispatch object.
-
- BEEPHELP Shared help files in English and German for
- all the Beeper objects
-
- BEEPTEST
- DISPTEST DispTest/VB3 test script for Beeper objects
- NEWVB Same test script for later versios of VB
-
- COSMO See above
- COSMOTST
- DISPTEST DispTest/VB3 test script for Cosmo's Automation
- implementation
- NEWVB Same test script for later versios of VB
-
-
-
- CHAPTER 15 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- AUTOCLI OLE Automation controller for the Beeper objects
- of Chapter 14.
-
- SQUARE Another demonstration OLE Automation object called
- the SphereSquare.
- VBSQUARE
- NEWVB Script to drive SphereSquare, for versions of
- VB after 3.0.
-
-
- CHAPTER 16 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- AUTOCLI2 OLE Automation controller for Beeper6 that will
- display property pages and implements
- IPropertyNotifySink.
-
- BEEPER6 A Beeper object that supports a property page
- (BEEPPROP) and IPropertyNotifySink as an outgoing
- interface.
-
- BEEPPROP The property page for Beeper6
-
- CHAPTER 17 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- PATRON See above
-
-
- CHAPTER 18 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COSMO See above
- COSMO1.0 OLE 1.0 version of Cosmo for demonstration of
- conversion and emulation.
-
-
- CHAPTER 19 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COCOSMO Contains a README.TXT
- HCOSMO An in-process handler for Chapter 18's Cosmo.
- POLYLINE See above
-
-
- CHAPTER 20 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- LNKASSIS Helper component for a container's dealings with
- the Links dialog
- PATRON See above
-
-
- CHAPTER 21 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COSMO See above
- COCOSMO Contains a README.TXT
- POLYLINE See above
- PATRON See above
-
-
- CHAPTER 22 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- PATRON See above
-
-
- CHAPTER 23 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COCOSMO Contains a README.TXT
- POLYLINE See above
- COSMO See above
-
-
- CHAPTER 24 DIRECTORIES
-
- Sample Description
- -----------------------------------------
- COCOSMO Contains a README.TXT
- PATRON See above
- POLYLINE See above
- POLYPROP Property page implementation for Polyline
-
-
- CHAPTER 25 DIRECTORIES
-
- Has no samples
-
-
-
-
-
- CLASSLIB DIRECTORY
-
- CLASSLIB is a framework for the Patron, Cosmo, Component Cosmo,
- and Freeloader samples, as well as a library of classes used
- by the Polyline samples. This is not a very robust or well
- tested framework and should not be used for your own development
- efforts. It is primarily used to keep the various samples
- clean of Windows code, so you can concentrate on more OLE code.
-
- CLASSLIB is statically linked.
-
-
- File Description
- -----------------------------------------
- about.dlg Default dialog template for About box
- app.ico Defaul program icon
- cclient.cpp Client are object base class implementation
- cdocumnt.cpp Document object base class implementation
- cframe.cpp Frame object base class implementation
- chatch.cpp Hatch window class used for in-place activation
- samples.
- chourgls.cpp CHourglass class to control the hourglass cursor.
- classlib.h Library header file.
- classlib.rc Default resources
- classres.h Resource identifiers
- cstatlin.cpp Framework wrapper for the status line control
- in INOLE.DLL (see below)
- cstrtabl.cpp String table class for managing resource strings.
- ctoolbar.cpp Framework wrapper for the toolbar control
- in INOLE.DLL (see below)
- cwindow.cpp Base window class for other classes
- document.ico Default document icon
- docwin.cpp Document window procedure
- framewin.cpp Frame window procedure
- stdgz120.bmp Default 120dpi toolbar images
- stdgz72.bmp Default 72dpi toolbar images
- stdgz96.bmp Default 96dpi toolbar images
-
-
- SKEL DIRECTORY
-
- Test program for CLASSLIB that contains only a WinMain.
-
-
-
- INC DIRECTORY
-
- Common header files used by multiple samples
-
-
- File Description
- --------------------------------------------
- book1632.h Macros to hide 16/32 bit differences
- bookguid.h Definition of GUIDs used in chapter samples
- bttncur.h Used by INOLE.H
- classlib.h Definition of CLASSLIB classes
- classres.h Default resource identifiers for CLASSLIB samples
- dbgout.h Debugging output macros
- gizmobar.h Used by INOLE.H
- ianim16.h 16-bit header for IAnimal interface used by
- Chapter 6 samples
- ianimal.h 32-bit header for IAnimal interface used by
- Chapter 6 samples
- idescrip.h 32-bit header for IDescription interface used
- by Chapter 9 samples
- ikoala.h 16-bit header for IKoala interface used by
- Chapter 6 samples
- ikoala16.h 32-bit header for IKoala interface used by
- Chapter 6 samples
- inole.h Header file used by nearly all samples that
- includes book1632.h, bookguid.h, classlib.h
- and classres.h (on demand), windows.h, ole2.h
- (and others, on demand), and oledlh.h or ole2ui.h
- (on demand).
- ipoly5.h Definition of IPolyline5 interface for Chapter 5
- ipoly8.h Definition of IPolyline8 interface for Chapter 8
- ipoly10.h Definition of IPolyline10 interface for Chapter 10
- as well as Chapters 12, 13, 19, 21, 23, and 24.
- stastrip.h Used by INOLE.H
-
-
-
- INOLE DIRECTORY
-
- Utilities and helper function library for various samples.
- This code builds INOLE.DLL.
-
- File Description
- --------------------------------------------
- ansi.cpp ANSI to Unicode wrappers for OLE APIs
- bttncur.c Code for handling toolbar images
- bttncuri.h Internal header for bttncur.c
- cursors.c Code for handling extra cursors
- gizmo.c Code for handling a toolbar
- gizmoapi.c Code for handling a toolbar
- gizmobar.c Code for handling a toolbar
- gizmoint.h Internal header for gizmo*.*
- helpers.cpp Miscellaneous helper functions for the samples
- inole.cpp LibMain[32] and library initialization
- inole.rc Library resources
- inoledll.h Internal header for INOLE.DLL
- stastrip.c Code for handling a status line control
- statint.h Internal header for the status line
- uieffect.cpp Functions for generating UI effects
- such as shading and hatching.
- xform.cpp Functions to transforms between HIMETRIC and other
- coordinate systems.
-
- RES DIRECTORY
- Contains standard cursor and toolbar bitmap resources
- for the INOLE library.
-
-
-
- INTERFAC DIRECTORY
-
- Template interface implementations for those you may need in
- your work. Those interfaces that are normally not implemented
- on custom objects are not included.
-
-
- Files Interface
- ---------------------------------------------
- iadvsink.* IAdviseSink
- iadvsnk2.* IAdviseSink2
- iclassf.* IClassFactory
- iclassf2.* IClassFactory2
- iclisite.* IOleClientSite
- iconnpt.* IConnectionPoint
- iconnptc.* IConnectionPointContainer
- iconsite.* IOleControlSite
- icontrol.* IOleControl
- idataobj.* IDataObject
- idispat.* IDispatch
- idropsrc.* IDropSource
- idroptgt.* IDropTarget
- ienumcon.* IEnumConnections
- ienumcp.* IEnumConnectionPoints
- ienumfe.* IEnumFORMATETC
- ienumstr.* IEnumString
- ienumunk.* IEnumUnknown
- ienumvrb.* IEnumOLEVERB
- iextconn.* IExternalConnection
- iipaobj.* IOleInPlaceActiveObject
- iipframe.* IOleInPlaceFrame
- iipobj.* IOleInPlaceObject
- iipsite.* IOleInPlaceSite
- iipuiwin.* IOleInPlaceUIWindow
- ilockbyt.* ILockBytes
- imalloc.* IMalloc
- imarshal.* IMarshal
- imoniker.* IMoniker
- imsgfilt.* IMessageFilter
- iolecont.* IOleContainer
- ioleobj.* IOleObject
- iparsedn.* IParseDisplayName
- iperfile.* IPersistFile
- iperpbro.* IPerPropertyBrowsing
- iperstmi.* IPersistStreamInit
- iperstor.* IPersistStorage
- iperstrm.* IPersistStream
- iproppg.* IPropertyPage
- iproppg2.* IPropertyPage2
- iproppsi.* IPropertyPageSite
- iprovinf.* IProvideClassInfo
- irunobj.* IRunnableObject
- isimpsit.* ISimpleFrameSite
- isppropp.* ISpecifyPropertyPages
- iunknown.* IUnknown
- iviewob2.* IViewObject2
- iviewobj.* IViewObject
-
-
-
- LIB DIRECTORY
-
- Import and link libraries used by the samples.
-
-
- File Description
- --------------------------------------------
- classmdi.lib Compilation of CLASSLIB for MDI
-
- inole.lib Import library for INOLE.DLL
-
- olesvr32.lib Import library for the OLE 1 DLL
- OLESVR32.DLL. This is included because
- the Win32 SDK and Visual C++ no longer
- include this library as OLE 1 on 32-bits
- is not supported. This file is necessary
- to compile CHAP18\COSMO1.0.
-