Gegenstand, der sich verbindet und einbettet

Gegenstand, der sich Verbindet und (OLE) Einbettet, ist eine Technologie, die von Microsoft entwickelt ist, das erlaubt, einzubetten und sich zu Dokumenten und anderen Gegenständen zu verbinden. Für Entwickler hat es OLE-Kontrollerweiterung (OCX), eine Weise gebracht, kundenspezifische Benutzerschnittstelle-Elemente zu entwickeln und zu verwenden. Auf einem technischen Niveau ist ein OLE-Gegenstand jeder Gegenstand, der die Schnittstelle von IOleObject vielleicht zusammen mit einer breiten Reihe anderer Schnittstellen abhängig von den Bedürfnissen des Gegenstands durchführt.

Übersicht

OLE erlaubt einer Redigieren-Anwendung, einen Teil eines Dokumentes zu einer anderen Redigieren-Anwendung zu exportieren und dann es mit dem zusätzlichen Inhalt zu importieren. Zum Beispiel könnte ein Tischveröffentlichen-System einen Text an ein Textverarbeitungsprogramm oder ein Bild einem bitmap Redakteur senden, der OLE verwendet. Der Hauptvorteil von OLE soll verschiedene Arten von Daten zu einem Dokument aus verschiedenen Anwendungen, wie ein Textaufbereiter und ein Bildredakteur hinzufügen. Das schafft ein zusammengesetztes Dokument und eine Master-Datei zu der die Dokumentenverweisungen. Änderungen zu Daten in der Master-Datei betreffen sofort das Dokument, das darin Verweise anbringt. Das wird genannt "sich verbindend" (anstatt "einzubetten").

Sein primärer Gebrauch ist, um zusammengesetzte Dokumente zu führen, aber es wird auch verwendet, um Daten zwischen verschiedenen Anwendungen mit der Schinderei und dem Fall und den Zwischenablage-Operationen zu übertragen. Das Konzept "des Einbettens" ist zur Einschließung von Multimedia in Webseiten, wie Video, Zeichentrickfilm (einschließlich Blitz-Zeichentrickfilme), und Audiodateien innerhalb der Hypertext-Preiserhöhungssprache (wie HTML oder XHTML) oder anderen Strukturpreiserhöhungssprache verwendet (wie XML oder SGML) zentral. Moderne Browser können verschiedene Einbetten-Mechanismen verwenden als OLE.

Geschichte

OLE 1.0

OLE 1.0, veröffentlicht 1990, war die Evolution des ursprünglichen dynamischen Datenaustausches oder DDE, Konzepte, die Microsoft für frühere Versionen von Windows entwickelt hat. Während DDE auf das Übertragen von beschränkten Datenmengen zwischen zwei laufenden Anwendungen beschränkt wurde, war OLE dazu fähig, aktive Verbindungen zwischen zwei Dokumenten aufrechtzuerhalten oder sogar einen Typ des Dokumentes innerhalb eines anderen einzubetten.

OLE Server und Kunden kommunizieren mit Systembibliotheken mit virtuellen Funktionstischen oder VTBLs. Der VTBL besteht aus einer Struktur von Funktionszeigestöcken, die die Systembibliothek verwenden kann, um mit dem Server oder Kunden zu kommunizieren. Der Server und die Kundenbibliotheken, und, wurden ursprünglich entworfen, um zwischen sich mit der Nachricht zu kommunizieren.

OLE 1.0 hat sich später entwickelt, um eine Architektur für Softwarebestandteile bekannt als Component Object Model (COM), und später DCOM zu werden.

Wenn ein OLE-Gegenstand auf der Zwischenablage gelegt oder in einem Dokument, beide eingebettet wird, die eine Sehdarstellung in heimischen Windows-Formaten (wie ein bitmap oder metafile), sowie die zu Grunde liegenden Daten in seinem eigenen Format versorgt wird. Das erlaubt Anwendungen, den Gegenstand zu zeigen, ohne zu laden die Anwendung hat gepflegt, den Gegenstand zu schaffen, während sie auch dem Gegenstand erlaubt hat, editiert zu werden, wenn die passende Anwendung installiert wird.

Der Gegenstand Packager, ein Bestandteil von OLE, sich von Windows 3.1 bis zu Windows einschiffend, XP erlaubt einem Non-OLE-Gegenstand, so "paketiert" zu werden, kann er in einen OLE Kunden eingebettet werden.

OLE 2.0

OLE 2.0 war die folgende Evolution von OLE, viele derselben Absichten wie Version 1.0 teilend, aber wurde oben auf Component Object Model (COM) wiederdurchgeführt, anstatt VTBLs direkt zu verwenden. Neue Eigenschaften waren OLE Automation, Schinderei-Und-Fall, Aktivierung im Platz und haben Lagerung strukturiert. Namen haben von OLE 1 Gegenstand-Namen, und zur Verfügung gestellt ein hierarchischer Gegenstand und Quellennamengeben-System entwickelt, das URL-ADRESSEN oder URIs ähnlich ist, die unabhängig erfunden wurden. Windows hat jetzt die zwei Technologien verschmolzen, die einen Typ URL Moniker und ein Name-URL-ADRESSE-Schema unterstützen. Heute verwendet Internet Explorer des Microsofts die URL-ADRESSE-Namen des Betriebssystems innerlich, um Mittel herunterzuladen. Anwendungen, die so tun, können das geheime Lager von IE teilen. Jedoch meiste (wenn nicht alle) haben konkurrierende Browser eine völlig unabhängige Durchführung von Webprotokollen einschließlich ihres eigenen geheimen Lagers, und verwenden das Name-System nicht.

OLE Gewohnheitssteuerungen

OLE Gewohnheitssteuerungen wurden 1994 als ein Ersatz für die jetzt missbilligten Grundlegenden Seherweiterungssteuerungen eingeführt. Anstatt diese zu befördern, hat die neue Architektur auf OLE basiert. Insbesondere jeder Behälter, der OLE 2.0 unterstützt hat, konnte bereits OLE kundenspezifische Steuerungen einbetten, obwohl diese Steuerungen auf Ereignisse nicht reagieren können, wenn der Behälter das nicht unterstützt. OLE Gewohnheitssteuerungen werden gewöhnlich in der Form einer dynamischen Verbindungsbibliothek mit der.ocx Erweiterung verladen. 1996 wurden alle Schnittstellen für Steuerungen (außer IUnknown) fakultativ gemacht, um die Dateigröße von Steuerungen zu unterdrücken, so würden sie schneller herunterladen; diese wurden dann Steuerungen von ActiveX genannt.

Technische Details

OLE Gegenstände und Behälter werden oben auf dem Teilgegenstand-Modell durchgeführt; sie sind Gegenstände, die Schnittstellen durchführen können, um ihre Funktionalität zu exportieren. Nur die Schnittstelle von IOleObject ist obligatorisch, aber andere Schnittstellen müssen eventuell ebenso durchgeführt werden, wenn die durch jene Schnittstellen exportierte Funktionalität erforderlich ist.

Um das Verstehen dessen zu erleichtern, was folgt, muss ein wenig Fachsprache erklärt werden. Der Ansicht-Status eines Gegenstands ist, ob der Gegenstand durchsichtig, undurchsichtig, oder mit einem festen Hintergrund undurchsichtig ist, und ob es Zeichnung mit einem angegebenen Aspekt unterstützt. Die Seite eines Gegenstands ist ein Gegenstand, der die Position des Gegenstands in seinem Behälter vertritt. Ein Behälter unterstützt einen Seite-Gegenstand für jeden enthaltenen Gegenstand.

Was folgt, ist eine Liste von Schnittstellen, die durch den Gegenstand gruppiert sind, der sie gewöhnlich durchführen muss. Durch den OLE-Gegenstand gewöhnlich durchgeführte Schnittstellen werden gewöhnlich durch den OLE Behälter, und umgekehrt aufgefordert. Bemerken Sie, dass in der folgenden Listeneinrückung Schnittstelle-Erbe anzeigt. Alle nichtausgezackten Schnittstellen sind auf IUnknown zurückzuführen.

OLE Gegenstand

DataObject

Durchgeführter:When, ermöglicht die Übertragung von Daten und Ankündigung von Datenänderungen. Es muss durch Gegenstände durchgeführt werden, die sind, Schinderei-Und-Fall zu unterstützen, zu oder aufgeklebt aus der Zwischenablage kopiert, oder verbunden, oder eingebettet in, Dokument enthaltend.

ObjectWithSite

:Allows der Anrufer, um den OLE Gegenstand seiner Seite zu informieren. Diese Funktionalität wird auch von OleObject zur Verfügung gestellt, aber ObjectWithSite, kann wenn unterstützt, verwendet werden, wenn OleObject für andere Sachen nicht verwendet wird.

OleCache

:Allows Sehpräsentationen von zu versteckendem DataObject. Das erlaubt einem eingebetteten Gegenstand, seine Sehdarstellung zu versorgen, so ihm ermöglichend, später gezeigt zu werden, ohne die Anwendung anfangen zu müssen, die verwendet wurde, um den Gegenstand zu schaffen.

:Usually die Aktiendurchführung wird verwendet.

:; OleCache2

:: Stellt mehr feinkörnige Kontrolle über das Verstecken zur Verfügung.

:: Gewöhnlich wird die Aktiendurchführung verwendet.

OleCacheControl

:This-Schnittstelle wird durch den Behälter, aber innerlich durch den Gegenstand nicht genannt, ihm zu erlauben, Ankündigungen dessen zu erhalten, wenn sein DataObject läuft, dadurch ihm erlaubend, Ankündigungen von Datenänderungen dieses Gegenstands und so des Erlaubens davon zu unterschreiben, die versteckte Präsentation richtig zu aktualisieren.

:Usually die Aktiendurchführung wird verwendet.

OleDocument

:Allows der OLE protestieren, um vielfache Ansichten von seinen Daten, sowie einige zusammenhängende Funktionen zu unterstützen.

OleDocumentView

:A-Dokumentengegenstand (ein Gegenstand, der OleDocument durchführt) führt diese Schnittstelle für jede Ansicht durch. Es erlaubt dem Anrufer, die Seite des Gegenstands, der Abfrage zu setzen und die Größe des Gegenstands zu setzen und es, sowie einige zusammenhängende Funktionen zu zeigen und zu aktivieren.

OleWindow

:; OleInPlaceActiveObject

:: Genannt durch den äußersten Behälter eines Gegenstands, damit aufeinander zu wirken, während es aktiv ist, um z.B Gaspedal-Schlüssel in der Nachrichtenwarteschlange des Behälters zu bearbeiten, die für den enthaltenen Gegenstand gemeint werden.

:; OleInPlaceObject

:: Genannt durch den Behälter, um den Gegenstand zu aktivieren oder auszuschalten.

::; IOleInPlaceObjectWindowless

::: Ein fensterloser Gegenstand ist ein Gegenstand, der sein eigenes Fenster nicht hat, aber er hat stattdessen im Fenster seines Behälters gezeigt. Es wird durch den Behälter verwendet, um durch das Fenster des Behälters erhaltene Nachrichten weiterzugeben, die für den enthaltenen Gegenstand beabsichtigt sind. Zum Beispiel, wenn die Maus ein Fenster zur Seite gerückt wird, legt Windows eine Maus-Bewegungsnachricht zusammen mit den Maus-Koordinaten in der Nachrichtenwarteschlange des Fensters. Wenn dieses Fenster fensterlose eingebettete Gegenstände enthält, kann die Nachricht zu solch einem Gegenstand weitergegeben werden müssen, wenn die Koordinaten des Maus-Zeigestocks über diesen Gegenstand sind. Aus ähnlichen Gründen stellt diese Schnittstelle auch Zugang zur Schnittstelle von DropTarget des Gegenstands zur Verfügung.

OleLink

:Allows der Gegenstand, Verbindung z.B zu unterstützen, indem es dem Behälter erlaubt wird, die Quelle eines verbundenen Gegenstands zu setzen.

:Usually die Aktiendurchführung wird verwendet.

OleObject

:Arguably die wichtigste Schnittstelle für einen OLE-Gegenstand. Zum Beispiel erlaubt es dem Behälter, den Gegenstand seiner Seite zu informieren, den Gegenstand von Daten zu initialisieren, es zu öffnen und zu schließen, die Größe des Gegenstands zu fragen und zu setzen, um Ankündigungen auf AdviseSink des Behälters zu bitten und Gegenstände durchzuführen, die als "Verben" auf dem Gegenstand definiert sind. Diese Verben schließen häufig "Offen" ein oder "Editieren", aber können auch andere Verben einschließen. Eines der Verben wird definiert, um das Hauptverb zu sein, und es wird durchgeführt, wenn der Benutzer auf einen Gegenstand doppelklickt.

ViewObject

:Allows ein Gegenstand, sich direkt zu ziehen, ohne DataObject zum Behälter zu passieren. Für Gegenstände, die sowohl DataObject als auch diese Schnittstelle unterstützen, wird die zu Grunde liegende Durchführung gewöhnlich geteilt.

:; ViewObject2

:: Zusätzlich erlaubt dem Anrufer, die Größe des Gegenstands zu fragen.

::; ViewObjectEx

::: Trägt die Unterstützung für die Zeichnung ohne Flackern von durchsichtigen Gegenständen, Erfolg-Prüfung für Gegenstände mit unregelmäßigen Gestalten und dem Setzen der Größe eines Gegenstands bei.

OLE Behälter

IAdviseSink

:Allows der implementer, um Ankündigungen zu erhalten, wenn der Gegenstand gespart wird, hat umbenannt geschlossen, oder wenn sich seine Daten oder Sehpräsentation ändern.

:; IAdviseSink2

:: Zusätzlich erlaubt dem implementer, Ankündigungen zu erhalten, wenn die Verbindungsquelle des OLE Änderungen einwendet.

:; IAdviseSinkEx

:: Zusätzlich erlaubt dem implementer, Ankündigungen zu erhalten, wenn der Ansicht-Status des OLE Änderungen einwendet.

IOleClientSite

:This-Schnittstelle erlaubt dem Anrufer, Information über den Behälter und die Position eines Gegenstands zu erhalten, ebenso dass der Gegenstand bittend, in der Größe angepasste, gezeigte, verborgene und so weiter gespart werden.

IOleDocumentSite

:Allows der Anrufer, um um den Gegenstand auf dieser sofort zu aktivierenden Seite zu bitten. Wenn diese Schnittstelle durchgeführt wird, müssen IOleClientSite, IOleInPlaceSite und IAdviseSink ebenso durchgeführt werden.

IOleContainer

:This-Schnittstelle erlaubt dem Anrufer, eingebettete Gegenstände in einem Behälter aufzuzählen, oder solche Gegenstände namentlich zu finden. Es ist in erster Linie nützlich, wenn der Behälter Verbindungen zu eingebetteten Gegenständen unterstützen möchte.

IOleWindow

:; IOleInPlaceUIWindow

:: Ermöglicht eingebetteten Gegenständen, Raum über Werkzeugleisten auf dem Fenster des Behälters zu verhandeln.

::; IOleInPlaceFrame

::: Erlaubt dem Anrufer, den Behälter zu bitten, seine Menüpunkte in ein leeres Menü einzufügen, das das kooperative Menü werden wird. Auch erlaubt dem Anrufer, den Behälter zu bitten, dieses Menü zu zeigen oder zu verbergen, Dialog-Kästen zu zeigen oder zu verbergen, und Gaspedal-Schlüssel zu bearbeiten, die durch den enthaltenen für den Behälter beabsichtigten Gegenstand erhalten sind.

:; IOleInPlaceSite

:: Wenn ein Behälter diese Schnittstelle durchführt, erlaubt er eingebetteten Gegenständen, im Platz aktiviert zu werden, d. h. ohne sich in einem getrennten Fenster zu öffnen. Es stellt Zugang zu IOleInPlaceUIWindow des Behälters zur Verfügung.

::; IOleInPlaceSiteEx

::: Wenn ein Behälter diese Schnittstelle durchführt, erlaubt er eingebetteten Gegenständen zu überprüfen, ob sie auf der Aktivierung oder Deaktivierung neu entwerfen müssen. Es erlaubt ihnen auch, ihren UI zu bitten, zu aktivieren.

:::; IOleInPlaceSiteWindowless

:::: Wenn ein Behälter fensterlose eingebettete Gegenstände unterstützen möchte, muss er Funktionalität eingebetteten Gegenständen zur Verfügung stellen, die durch ein Fenster eines eingebetteten Gegenstands normalerweise zur Verfügung gestellte Funktionalität zu ersetzen. Zum Beispiel stellt diese Schnittstelle eine Weise zur Verfügung, auf den Gerät-Zusammenhang des Fensters des Behälters zuzugreifen, dadurch dem eingebetteten Gegenstand ermöglichend, im Fenster des Behälters zu ziehen.

IOleUILinkContainer

:Contains die Methoden dass die OLE Standarddialog-Kästen, die verbundenen Gegenstand-Gebrauch führen, um verbundene Gegenstände in einem Behälter zu aktualisieren, oder ihre Quellen zu fragen und zu ändern. Verwendet durch die "Verbindungen", "Änderungsquelle" "Verbindet sich Aktualisierung" und "Gegenstand Eigenschaften" Dialog-Kästen.

:; IOleUILinkInfo

:: Zusätzlich erlaubt den Dialog-Kästen zu fragen, als verbundene Gegenstände aktualisiert letzt waren, und ob das automatisch oder manuell getan wurde.

:; IOleUIObjInfo

:: Enthält die durch das Dialogfeld "Object properties" erforderlichen Methoden. Zum Beispiel, wenn der Benutzer das Dialogfeld "Object properties" öffnet und um den Gegenstand bittet, zu einem anderen Typ umgewandelt zu werden, wird eine Methode auf dieser Schnittstelle genannt.

IOleUndoManager

:Provides ein zentralisierter machen Dienst sowohl zum Behälter selbst als auch zu eingebetteten Gegenständen auf. Wenn eine unmachbare Handlung durchgeführt wird, wird IOleUndoUnit geschaffen und zu IOleUndoManager hinzugefügt.

Anderer

IDataAdviseHolder

:The-Methoden von IDataObject, die Daten gehören, ändern sich Ankündigungen können durch das Benennen der Methoden dieser Schnittstelle durchgeführt werden.

:Usually die Aktiendurchführung wird verwendet.

IOleAdviseHolder

:The-Methoden von IOleObject, die notifcations gehören, können durch das Benennen der Methoden dieser Schnittstelle durchgeführt werden.

:Usually die Aktiendurchführung wird verwendet.

IDropSource

:Implemented durch Gegenstände, die geschleppt werden können, d. h. kann das die Quelle einer Schinderei-Und-Falls Operationen sein. Wenn durchgeführt, erlaubt es dem Gegenstand, Effekten der Schinderei-Und-Falls zu ziehen und anzugeben, wenn der Gegenstand fallen gelassen ist, oder die Operation der Schinderei-Und-Falls annulliert wird.

IDropTarget

:Implemented durch Gegenstände, die fallen gelassene Gegenstände akzeptieren, d. h. kann das das Ziel von Operationen der Schinderei-Und-Falls sein. Wenn durchgeführt, erlaubt es dem Ziel anzugeben, ob ein fallen gelassener Gegenstand akzeptiert wird, und was mit einem Gegenstand geschieht, nachdem es fallen gelassen ist.

IOleCommandTarget

:Can, durch Gegenstände (OLE Gegenstände, OLE Behälter und andere Gegenstände) dass Wunsch durchgeführt werden, bestimmte Standardbefehle zu unterstützen. Es erlaubt Anrufern zu fragen, ob Befehle unterstützt werden, und Befehle durchzuführen. Befehle, die ein Gegenstand normalerweise könnte durchführen wollen, können Dinge einschließen mögen "löschen", "schneiden", "kopieren", "kleben auf", "machen auf", "finden", "drucken", "sparen", "surren" und so weiter. Zurzeit sind 58 Standardbefehle definiert worden, und sie schließen Befehle ein, die allgemein durch die Bürosoftware, WWW-Browser und ähnlichen Anwendungen verwendet sind.

IOleUndoUnit

:Represents eine Handlung, die aufgemacht werden kann. Es enthält die ganze Information, die notwendig ist, um eine Handlung aufzumachen. Es wird durch Gegenstände und Behälter geschaffen, so dass unmachbare Handlungen zu IOleUndoManager des Behälters hinzugefügt werden können.

:; IOleParentUndoUnit

:: Erlaubt einer aufmachen Einheit, anderen zu enthalten, mach Einheiten auf. Hauptsächlich erlaubt das der aufmachen Einheit zu handeln, weil ein aufmachen Stapel, Gruppierung Einheiten zusammen aufmacht. Zum Beispiel, wenn ein Makro geführt wird, können alle unmachbaren durch das Makro durchgeführten Handlungen zusammen darin gruppiert werden man macht Einheit auf.

IOleWindow

:This-Schnittstelle vertritt ein Fenster eines Behälters oder enthaltenen Gegenstands. Es erlaubt Anrufern, den Griff des Fensters, und zum Knebelknopf die Funktion der umgebungsabhängigen Hilfefunktion zu erhalten. Wenn die Funktion der umgebungsabhängigen Hilfefunktion, normalerweise die Änderungen des Maus-Zeigestocks zu einem Pfeil mit einem Fragezeichen angemacht wird, um anzuzeigen, dass das Klicken auf ein Benutzerschnittstelle-Element auf Öffnung eines Hilfsfensters hinauslaufen wird.

Kritik

Es gab eine Technologie, genannt OpenDoc, der versucht hat, sich mit OLE zu bewerben. Wie man betrachtete, war es von interessierten Gesellschaften (Mitbewerber des Microsofts) sowohl leichter zu verwenden als auch robuster als OLE. Jedoch hat OpenDoc wirklich einige bekannte Probleme. OpenDoc hat Benutzern erlaubt, Information über Anwendungen direkt in der Konkurrenz mit dem OLE Eigentumsstandard des Microsofts anzusehen und zu editieren. Das "zeigt" ist an Kosten gekommen. Ein Konsortium hat gerufen die Teilintegrationslaboratorien ("CIL") wurde 1993 von einigen Mitbewerbern von Microsoft gegründet, um OpenDoc als ein Standard "der offenen Quelle" für die Quer-Plattform-Verbindung und das Einbetten zu schaffen.

Microsoft hat einseitig bekannt gegeben, dass seine OLE Eigentumstechnologie direkt in FRAU Windows Betriebssystem vereinigt würde. Microsoft hat dann OLE Vereinbarkeit als eine Bedingung des Zertifikats des Microsofts einer Vereinbarkeit einer Anwendung mit Windows 95 verlangt.

Microsoft hat am Anfang bekannt gegeben, dass das Anwendungsverwenden OpenDoc vereinbar mit OLE gehalten würde, und Zertifikat für Windows 95 erhalten würde. Microsoft hat später bekannt gegeben, dass das Anwendungsverwenden OpenDoc automatisches Zertifikat nicht erhalten würde, und Zertifikat überhaupt nicht erhalten könnte. Microsoft hat Spezifizierungen vorenthalten und hat bei Versionen von OLE die Fehler beseitigt, bis es seine konkurrierenden Anwendungen veröffentlicht hatte.

Zwischenfunktionsfähigkeit

Der Gebrauch von Microsoft Object Linking und (OLE) Einbettend Gegenstände beschränken die Zwischenfunktionsfähigkeit, weil diese Gegenstände in Programmen nicht weit unterstützt werden, um Dateien (z.B das Einbetten anderer Dateien innerhalb der Datei, wie Tabellen oder Karten aus einer Spreadsheet-Anwendung in einem Textdokument oder Präsentationsdatei) anzusehen oder zu editieren. Wenn Software, die einen OLE-Gegenstand versteht, nicht verfügbar ist, wird der Gegenstand gewöhnlich durch ein Bild (bitmap Darstellung des Gegenstands) ersetzt oder überhaupt nicht gezeigt.

Siehe auch

Außenverbindungen

  • ripOLE - Extrakt-Verhaftungen aus OLE Dokumenten

Rockingham County, New Hampshire / Merrimack County, New Hampshire
Impressum & Datenschutz