Table Of ContentObjekte integrieren mit OLE2
Hanns-Martin Meyer Karl Obennayr
Objekte integrieren
mit OLE2
Microsofts Basistechnologie fur
objektorientierte Architekur
Mit 133 Abbildungen
Springer-Verlag
Berlin Heidelberg New York
London Paris Tokyo
Hong Kong Barcelona
Budapest
Hanns-Martin Meyer
iXOS Software GmbH
Bretonischer Ring 12
D-85630 Grasbrunn
Karl Obennayr
Am Miihlthalerfeld 2
D-85567 Grafing
ISBN-13 :978-3-642-78754-6 e-ISBN-13 :978-3-642-78753-9
DOl: 10.1007/978-3-642-78753-9
CIP-Eintrag beantragt
Dieses Werk ist urheberrechtlich geschtitzt. Die dadurch begrilndeten Rechte, insbe
sondere die der Obersetzung, des Nachdrucks, des Vortrags, der Entuahme von
Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der Verviel
fiiltigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen,
bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfiiltigung
dieses Werkes odervon Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen
der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutsch
land yom 9. September 1965 in der jeweils geltenden Fassung zullissig. Sie ist
grundslitzlich vergutungspflichtig. Zuwiderhandlungen unterliegen den Straf
bestimmungen des Urheberrechtsgesetzes.
© Springer-Verlag Berlin Heidelberg 1994
Softcover reprint of the hardcover 1st edition 1994
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in
diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme,
daB solche Namen im Sinne der Warenzeichen-und Markenschutz-Gesetzgebung als
frei zu betrachten wiiren und daher von jedermann benutzt werden diirften.
Umschlaggestaltung: Konzept & Design, Dvesheim
Satzerstellung und reproduktionsfertige Vorlag durch Karl Obermayr mit FrameMaker4
SPIN 10131544 33/3140 - 5432 1 0 - Gedruckt auf sliurefreiem Papier
,
Vorwort
Vorwort
Dokumente beinhalten schon lange nicht mehr nur Text. Sie
werden multimedial, indem sie Grafik, Sprachannotationen,
allgemein Audiokomponenten, Image und Video integrieren.
Sie werden dariiber hinaus nicht mehr nur gelesen sondem
elektronisch prasentiert, und in dieser Form werden sie durch
Funktionalitat wie Recherchemoglichkeiten erganzt. Ein sol
ches multimediales, elektronisches Dokument kann nicht
mehr von einem Anwendungspaket allein erstellt und ge
pflegt werden. Es erfordert spezialisierte Anwendungen, die
die einzelnen Komponenten des Dokumentes mit ausgefeilter
Funktionalitat erstellen und bearbeiten, auch wenn diese
Komponenten schon in das Gesamtdokument integriert sind.
Diese dokumentenorientierte Problemstellung fant zeit
lich zusammen mit einem massiven Vordringen objektorien
tierter Grundsatze. Objektorientierte Architektur revolutio
niert die Softwareszene:
Anwendungsobjekte ersetzen die Anwendungspakete.
Statt kompletter Anwendungspakete (wie ein Desktop Publi- Anwendungsobjekte
shing System) kaufen Anwendungsentwickler - und in Zu- ersetzen
kunft auch Anwender - Anwendungsobjekte, die kleinere, in Anwendungspakete
sich abgeschlossene, funktionale Einheiten realisieren (wie
zum Beispiel eine Rechtschreibpriifung).
Diese Anwendungsobjekte aus verschiedenen Quellen
integrieren sie zu individuellen Anwendungsumgebungen,
die gleich integriert arbeiten wie heutige Anwendungspake
te, gleichzeitig aber umfassender und vor allem individuell
v
auf den einzelnen Anwender abgestimmt sind.
Vorwort
Dabei konnen sowohl frei am Markt verfugbare als auch
individuell entwickelte Anwendungsobjekte miteinander zu
einer individuellen Anwendungsumgebung integriert wer
den. Dieser Umbruch der Softwareszene iibertrifft in seiner
Bedeutung und seinen Auswirkungen die Einfiihrung von
Graphical User Interfaces.
OLE 2 ist gleichzeitig Microsofts Basistechnologie fur
eine solche objektorientierte Architektur und die Losung der
dokumentenorientierten Problemstellung durch multimedia
Ie Komponenten.
derzeit wichtigste OLE 2 ist die derzeit wichtigste Software-Basistechnolo
Basistechnologie in der gie in der Microsoft-Welt - durch sie wird die Entwicklung
Microsoft-Welt neuer Betriebssysteme und neuer Applikationen wesentlich
bestimmt. In OLE 2 sind alle grundlegenden Definitionen
und Technologien enthalten, auf denen bei Microsoft die ob
jektorientierten Betriebssysteme aufbauen, nach denen auch
aIle zukiinftigen Applikationen der Windows-Welt imple
mentiert werden. Softwareentwicklungen, die zumindest im
Microsoft-Umfeld erfolgreich sein wollen, miissen OLE-2-fii
hig sein.
Die zweifache Zielsetzung von OLE 2, Integration von
spezialisierten Dokumententeilen und Basis fur eine tragfahi
ge, objektorientierte Architektur, hat die bisher umfangreich
ste Technologie in der Windows-Umgebung entstehen lassen.
Deshalb war es den Autoren ein Anliegen, relativ friih ei
nen Wegweiser durch die Vielfalt der Komponenten, Inter
faces und Definitionen dieser Basistechnologie zu geben. Die
Ausfiihrungen basieren auf der Version 2.0 von OLE. Die Ab
rundung der Version und Fehlerbehebung durch die Version
2.01 wurde nicht abgewartet.
Dieses Buch versetzt den Leser in die Lage, Bedeutung
und Einsetzbarkeit von OLE 2 in Softwareentwicklungen si
cher zu beurteilen. Es erliiutert Umfang, Leistungsfahigkeit
und Komponenten von OLE 2 und ermoglicht, OLE-fahige
Programme zu konzipieren. Die grundlegenden Konzepte
und Komponenten von OLE 2 (Component Object Model
und Windows Objects, Structered Storage, Automation, Visu
al Editing und Aspekte der Benutzerschnittstelle) werden de
VI tailliert beschrieben. Daneben wird versucht, OLE 2 in den
Vorwort
Mainstream der objektorientierten Ansatze wie Objektmodell
und Object Request Broker der Object Management Group
einzuordnen, und OLE 2 mit angekiindigten Entwicklungen
gleicher StoBrichtung wie OpenDoc zu vergleichen. Nach der
Lektiire dieses Buches kann ein Entwickler anhand der Origi
naldokumentation OLE-fiihige Software programmieren.
Beinahe zwangsweise werden in diesem Buch objektori-
entierte Prinzipien und Grundgedanken mitbehandelt. Be- Grund/agen der
sonderer Wert wird dabei auf den Ansatz einer objektorien- objektorientierten
tierten Softwarearchitektur gelegt, den die Autoren fur die Softwarearchitektur
nutzbringendste Komponente der Objektorientierung halten.
Die einschlagigen Begriffe fUr eine solche Architektur und
das Zusammenwirken von Objekten werden erlautert und in
Beziehung zu OLE 2 gestellt.
In dies em Buch werden an vielen Stellen Produkte er
wahnt. Die Namen dieser Produkte sind haufig Trademarks,
was an dieser Stelle einmal betont werden solI. Die Erwm
nung eines Produktes stellt keine Wertung gegeniiber ande
ren, hier nicht erwahnten Produkten dar.
Zu besonderem Dank sind die Autoren der iXOS Soft
ware GmbH verpflichtet. Sie hat den fruchtbaren Boden fUr
die intensive Beschaftigung und Erfahrung mit objektorien
tierten Technologien und mit OLE selbst gelegt, ohne dabei je
wells den Nutzen fUr die Softwareentwicklung und insbeson
dere fUr den Anwender aus den Augen zu verlieren.
Hanns-Martin Meyer
Karl Obermayr
Grafing/Miinchen, 8. Januar 1994
VII
Inhaltsverzeichnis
I
Inhaltsverzeichnis
,
Warum OLE? 1
1.1 Phase 1 der Dokumentenerstellung:
Spezialisierung . . . . . . . . . . . . .3
OLE ..... . ...... . ... . .. .3
1.2 Phase 2 der Dokumentenerstellung:
Reintegration . . . . .4
1.3 Objektorientierung . . . . .5
Modularisierung . . . . . .5
1.4 Persistenz von Objekten . . 7
1.5 Zusammenfassung . . . . . 9
Grundlagen objektorientierterArchitektur 11
2.1 Bereiche der Objektorientierung .. . 12
Programmentwicklung. . . . . . . . . 12
Objektorientierte Softwarearchitektur 13
Objektorientierte Benutzerschnittstelle. 14
2.2 Grundbegriffe . . . . . . 16
.......... . . ..
Objekt 16
Klassen und Instanzen . . . . . 18
Objekte: Methoden und Daten 20
Kapselung .. 22
Vererbung ..... 22
Nachrichten .. . . 23
Polymorphismus . 24
Objektmodell . . . 24
2.3 Object Request Broker 25 IX
Inhaltsverzeichnis
Oberblick: Konzepte und Architektur yon OLE 2 27
3.1 Dokumenten-vs. Applikationszentrierung . .28
. . ... ... .. .
3.2 OLE 1 .30
Linking (Verkniipfung) .32
Embedding (Einbettung) .32
Applikationen ... .. . .33
Rollen . ... . ... . .. .34
Objektdarstellung im Container:
Standardaktivierung . .36
Rollenbeschri:inkung. . . . .37
Einsatzbeispiel . . . . . . . .38
Zusammenfassung OLE 1 . .40
Ziele und Forderungen .41
3.3 OLE2 . . ... ... . .43
Heutige Situation .. .. .44
Weitere Entwicklung. . .45
Oberblick Einzelkomponenten . .46
Entwicklungsschritte .48
Installation . . . . . . . . . . . . .49
Konzepte des Objektmanagement 51
4.1 Objektmodell . . . . . . .52
4.2 Object Request Broker . .54
CORBA ........ . .56
DSOM .. .... . .. . .58
OLE-Automation als Object Request Broker . 60
Client-Server-Architektur: Distributed OLE . 63
4.3 OpenDoc .... .. . ... .. . ...... . .65
Aspekte der Benutzeroberflache 67
5.1 Benutzermodell. . . .68
Beispieldokument . .69
5.2 Objektdarstellung .72
x
Show Objects . . . . .72
Inhaltsverzeichnis
I
5.3 Objektzustande . 74
,
Inactiv .. . .. . 74
Selected . ... . 75
Standardkommandos. 75
5.4 Editierzustande . 76
active .... . 77
Aktivierung . . 78
Bedeutung ... 78
Ladeverhalten . 79
Beenden ... . 79
5.5 open .... . . 80
Zwei unterschiedliche Formen 80
open (selected) . .. 80
Open (not selected) . 81
Aktivierung . . . 82
Sichtweise . . . . . . 82
5.6 Statustibergange . . 83
5.7 Obersicht: Objektmarkierungen. 85
5.8 Vorgehensweise zur Objektintegration . 86
5.9 Objektintegration tiber »Insert Object ... « . 87
ResultBox .. . 89
CreateNew . . . 90
Display as Icon . 91
Create from File. 93
Kopie ... .. . . 94
Link. ...... . 94
Dokumentenzentrierte Applikationserweiterung. 95
5.10 Objektintegration tiber das Clipboard 96
»Paste Special ... « 98
Formate ... . 99
Quellenangabe . . 99
Link ........ . .100
5.11 Objektintegration tiber Drag & Drop .101
Beispiel ........ . .101
Virtueller Schreibtisch .102
Quelle und Ziel . .103
Selektion .. .103
Modifier .. .103
Mauszeiger .104 XI
Inhaltsverzeichnis
Drop Situationen. . . . . . . . . . . . . · .. 105
Drag Scrolling . . . . . . . . . . . . . · .. 106
Systembedienung iiber Drag & Drop . · . . 107
5.12 Konsistenz von Verkniipfungen · . 107
»Links . .. « . . . . . . . . . · . 109
5.13 Konvertierung, Emulation . . . . 111
Konstellationen. . . . . 112
Bei der Installation. . . . . . . 113
Bei der Aktivierung . . . . . . 114
Explizites Kommando. . . . . 116
5.14 Zusammenfassung ...... . 117
Editieren von Objekten 119
6.1 Problem des Paradigmenwechsel · 119
6.2 Neue Darstellungstechnik. . . · 120
Bezeichnung . . . . . . . . . . · 122
Zwei Seiten beteiligt. . . . . . · 122
Effektivitat und Ergonomie. . · . 122
6.3 Editier-Moglichkeiten . · . 123
6.4 VIsual Editing. . . . . . . . . . · . 124
Objekt aktivieren. . . . . . . . · . 126
Graphikobjekt aktivieren . · . 127
Unauffalliger Wechsel . . . · . 128
Probleme ..... . .. .. · .128
Meniikategorien ..... . · .. 129
Einbettung vs. Verkniipfung . · .. 131
Zukiinftige Rolle . · . 133
6.5 Open Editing . . . . .' . · . 134
Aufruf ... . .. . · .135
Real TIme Update · . 138
Aktualitat bei Links · . 139
6.6 Zusammenfassung. · . 139
XII