INTRODUCTION
DELPHI, COM AND THE OBJECT MODEL
WHY DOES DELPHI SUPPORT COM?
COM/DCOM AS AN ENTERPRISE TECHNOLOGY
IS COM THE ONLY DISTRIBUTED OBJECT SOLUTION?
CORBA
Server-Side Java/RMI
WHY DO WE NEED COM?
INTERACTION WITH OTHER COM BASED PRODUCTS
EXPANDING OUR COMPONENT MARKET (VB, POWERBUILDER, IE)
INTEGRATION/JUNCTION BETWEEN COM/CORBA == OPPORTUNITY
STILL CONFUSED ABOUT COM? A WORD ABOUT MICROSOFT MARKETING...
COM - COMPONENT OBJECT MODEL
DCOM - DISTRIBUTED COMPONENT OBJECT MODEL
A HIERARCHICAL VIEW
COM IN A NUTSHELL
A DIFFERENT OBJECT TECHNOLOGY BASED ON BINARY COMPATIBILITY
COM: A SET OF OVERLAPPING TECHNOLOGIES
OLE AUTOMATION
OLE DOCUMENTS
ACTIVEX
DCOM
COM: A DEEPER LOOK
INTERFACES
Interfaces Under The Hood
Interfaces: Contracts Between Clients and Objects
Multiple Interfaces
Extending COM Objects via New Interfaces
STANDARD INTERFACES
IUnknown
IDispatch
VTABLES
DISPATCH INTERFACES
DUAL INTERFACES
GUIDS
CLASS FACTORY
MARSHALING
TYPE LIBRARIES
GUIDS & THE REGISTRY
COM-MON TOOLS OF THE TRADE
DELPHI'S COM TOOLS
TYPE LIBRARY EDITOR
TLIBIMP UTILITY
DELPHI COM/ACTIVEX WIZARDS
Automation Object Wizard
ActiveX Control Wizard
ActiveX Library Wizard
ActiveForm Wizard
Property Page Wizard
Type Library Wizard
DELPHI'S COM LANGUAGE EXTENSIONS
INTERFACE KEYWORD
DISPINTERFACE KEYWORD
DISPID KEYWORD
DELPHI'S COM-RELATED CLASSES
TAutoObject
TActiveXControl
TOleContainer
DELPHI COM COMPATIBLE DATA TYPES
OLE AUTOMATION SERVERS
TYPES OF SERVERS
USING AN EXISTING SERVER: EXCEL FROM INSIDE DELPHI
Excel Exposed Methods and Properties
Using Variants
Using TLIBIMP.EXE To Create a Type Library
HANDS ON: A SIMPLE OLE AUTOMATION SERVER EXAMPLE
Visual vs. Non Visual Servers
Creating the server Project
Using the OLE Automation Wizard
The Generated OLE Server Code
The Generated Type Library Object Pascal Code
Creating the Client
A MORE COMPLEX EXAMPLE: AN APPLICATION LOGIN LICENSE COUNT SERVER MANAGER
The Specification
Writing the server
ClearMessage(username:Widestring)
USING ACTIVEX CONTROLS
CREATING ACTIVEX CONTROLS
PRE-REQUISITES: UNDERSTANDING DELPHI VCL CUSTOM COMPONENTS
CREATING A NEW ACTIVEX COMPONENT USING THE ACTIVEX WIZARD
Selecting from VCL Base Class
Include Design Time License
Include Version Information
Include About Box
Creating the component.
WALKING THROUGH THE GENERATED SOURCE
The Type Library Unit (DateTimePickerXControl.Pas)
The Implementation Unit (DateTimePickerImpl1.Pas)
EXPLORING WITH THE TYPE LIBRARY EDITOR
Exploring The Exposed Properties and Events
Surfacing A New Property
COMPILING TO OCX CONTROLS
REGISTERING THE CONTROL
TESTING THE COMPONENTS
DISTRIBUTING THE ACTIVEX CONTROL
PROPERTY PAGES
INTERNET EXPLORER/HTML ISSUES WITH DELPHI ACTIVEX CONTROLS
USING ACTIVEX CONTROLS IN INTERNET EXPLORER
SPECIAL CASE: USING OBJECT PARAM TAGS
ACTIVEFORMS
A SPECIALIZED TYPE OF ACTIVEX CONTROL: TACTIVEFORM
DATABASE BDE ISSUES
INTRANETS, NOT INTERNETS
A SIMPLE EXAMPLE: ANIMALS.DBF ON THE WEB
DCOM WITH OLE AUTOMATION
FURTHER READING AND EXPLORATION
BOOKS
ARTICLES
ONLINE RESOURCES
BORLAND/INPRISE USERNET NEWSGROUPS