Datenformate und Medienübertragung

Die meisten Plattformen, einschließlich Windows, definieren ein Standardprotokoll für die Übertragung von Daten zwischen Anwendungen, basierend auf einer Reihe von Funktionen, die als Zwischenablage bezeichnet werden. Anwendungen, die diese Funktionen verwenden, können Daten freigeben, auch wenn sich ihre nativen Datenformate stark unterscheiden. Im Allgemeinen weisen diese Zwischenablage zwei erhebliche Mängel auf, die COM überwunden hat.

Zunächst verwenden Datenbeschreibungen nur einen Formatbezeichner, z. B. den einzelnen 16-Bit-Formatbezeichner für die Zwischenablage unter Windows. Dies bedeutet, dass die Zwischenablage nur die Struktur der Daten beschreiben kann, d. h. die Reihenfolge der Bits. Es kann melden, "Ich habe eine Bitmap" "oder ich habe Text", aber es kann nicht angeben, für welche Zielgeräte die Daten zusammengestellt sind, welche Ansichten oder Aspekte von sich selbst die Daten bereitstellen können oder welche Speichermedien für die Übertragung am besten geeignet sind. Sie kann beispielsweise nicht melden: "Ich habe eine Textzeichenfolge, die im globalen Speicher gespeichert und für die Präsentation entweder auf dem Bildschirm oder auf einem Drucker formatiert ist" oder "Ich habe eine Miniaturskizzen-Bitmap für einen 100-dpi-Dotmatrixdrucker gerendert und als Datenträgerdatei gespeichert."

Zweitens erfolgen alle Datenübertragungen über die Zwischenablage in der Regel über den globalen Speicher. Die Verwendung des globalen Arbeitsspeichers ist für kleine Datenmengen relativ effizient, aber für große Mengen, z. B. ein Multimediaobjekt mit 20 MB, schrecklich ineffizient. Globaler Arbeitsspeicher ist für ein großes Datenobjekt langsam, dessen Größe einen erheblichen Austausch in virtuellen Arbeitsspeicher auf dem Datenträger erfordert. In Fällen, in denen sich die ausgetauschten Daten sowieso größtenteils auf einem Datenträger befinden, ist das Erzwingen dieses Engpasses für virtuelle Speicher sehr ineffizient. Eine bessere Möglichkeit wäre, den globalen Arbeitsspeicher vollständig zu überspringen und die Daten einfach direkt auf den Datenträger zu übertragen.

Um diese Probleme zu beheben, stellt COM zwei Datenstrukturen bereit: FORMATETC und STGMEDIUM. Weitere Informationen finden Sie in den folgenden Themen:

Datenübertragung