You are on page 1of 17

===========================================================

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.

You might also like