version-Attribut

Das [version]- Schnittstellenattribute identifiziert eine bestimmte Version zwischen mehreren Versionen einer RPC-Schnittstelle. Mit dem Versionsattribute stellen Sie sicher, dass nur kompatible Versionen von Client- und Serversoftware gebunden werden dürfen.

version ( major-value[[. minor-value]] )

Parameter

Hauptwert

Gibt eine kurze ganze Zahl ohne Vorzeichen zwischen null und 65.535 (einschließlich) an, die die Hauptversionsnummer darstellt.

Nebenwert

Gibt eine kurze ganze Zahl ohne Vorzeichen zwischen null und 65.535 (einschließlich) an, die die Nebenversionsnummer darstellt. Der Nebenversionswert ist optional. Falls vorhanden, wird der Nebenversionswert von der Hauptversionsnummer durch ein Punktzeichen (.) getrennt. Wenn nicht angegeben, ist der Nebenversionswert 0.

Bemerkungen

Der MIDL-Compiler unterstützt nicht mehrere Versionen einer COM-Schnittstelle. Daher kann eine Schnittstellenattributeliste, die das Attribut [object] enthält, das [version] -Attribut nicht enthalten. Verwenden Sie die Schnittstellenvererbung, um eine neue Version einer vorhandenen COM-Schnittstelle zu erstellen. Eine abgeleitete COM-Schnittstelle verfügt über eine andere UUID, erbt aber die Schnittstellenelementfunktionen, status Codes und Schnittstellenattribute der Basisschnittstelle.

In Kombination mit dem Wert [uuid] identifiziert der Wert [version] die Schnittstelle eindeutig. Die Laufzeitbibliothek übergibt die Werte [Version] und [uuid] an den Server, wenn der Client eine Remotefunktion aufruft. Ein Client kann für eine bestimmte Schnittstelle an einen Server gebunden werden, wenn:

  • Der Wert [uuid] ist identisch.
  • Die Hauptversionsnummer ist identisch.
  • Die Nebenversionsnummer des Clients ist kleiner oder gleich der Nebenversionsnummer des Servers.

Es ist zu Ihrem Vorteil und dem Vorteil Ihrer Benutzer, die Aufwärtskompatibilität zwischen den Versionen beizubehalten, d. h. die Schnittstelle so zu ändern, dass sich nur die Nebenversionsnummer ändert. Sie können die Aufwärtskompatibilität beibehalten, wenn Sie neue Datentypen hinzufügen, die nicht von vorhandenen Funktionen verwendet werden, und wenn Sie neue Funktionen hinzufügen, ohne die Schnittstellenspezifikation für vorhandene Funktionen zu ändern.

Ändern Sie die Hauptversionsnummer, wenn eine der folgenden Bedingungen zutrifft:

  • Wenn Sie einen Datentyp ändern, der von einer vorhandenen Funktion verwendet wird.
  • Wenn Sie die Schnittstellenspezifikation für eine vorhandene Funktion ändern (z. B. hinzufügen oder entfernen eines Parameters).
  • Wenn Sie Rückrufe hinzufügen, die von vorhandenen Funktionen aufgerufen werden.

Ändern Sie die Nebenversionsnummer, wenn alle der folgenden Bedingungen gelten:

  • Wenn Sie Typdefinitionen oder Konstanten hinzufügen, die nicht von vorhandenen Funktionen oder Rückrufen verwendet werden.
  • Wenn Sie keine vorhandenen Funktionen ändern und der Schnittstelle neue Funktionen hinzufügen.
  • Wenn Sie Rückrufe hinzufügen, die nicht von vorhandenen Funktionen aufgerufen werden, und die neuen Rückrufe folgen allen vorhandenen Funktionen.

Wenn Ihre Änderungen als aufwärtskompatible Änderung der Schnittstelle gelten, führen Sie das folgende Verfahren aus.

So ändern Sie die IDL-Datei (Interface)

  1. Fügen Sie der Schnittstellendatei neue Konstanten- und Typdefinitionen hinzu.
  2. Fügen Sie am Ende der Schnittstellendatei Rückruffunktionen hinzu.
  3. Fügen Sie am Ende der Schnittstellendatei neue Funktionen hinzu.

Das [version] -Attribut kann höchstens einmal im Schnittstellenheader auftreten.

Wenn das Versionsattribute nicht vorhanden ist, verfügt die Schnittstelle über die Standardversion 0.0.

Das Punktzeichen zwischen den Haupt- und Nebenzahlen ist ein Trennzeichen und stellt kein Dezimalzeichen dar. Die Nebenzahl wird als ganze Zahl behandelt. Führende Nullen sind nicht signifikant. Nachfolgende Nullen sind signifikant.

Beispielsweise stellt die Versionseinstellung 1.11 einen Hauptwert von 1 und einen Nebenwert von elf dar. Version 1.11 stellt keinen Wert zwischen 1.1 und 1.2 dar.

Siehe auch

IDL-Datei (Interface Definition)

Schnittstelle

Objekt

UUID