Warum hat Microsoft IHTMLDocument, IHTMLDocument2, ..., IHTMLDocument8?

7

Was bedeutet die Nummer am Ende des Schnittstellennamens? Ich sehe, dass IHTMLDocument3-7 keine Mitglieder haben ( siehe Beispiel für # 5 ), und 8 hat gestenbezogene Mitglieder. Ist die Zahl von der Windows-Version abgeleitet?

    
zenpoy 01.01.2013, 07:16
quelle

4 Antworten

17

Dies ist eine allgemeine Funktion öffentlicher COM-Schnittstellen.

Wenn Sie Abwärtskompatibilität wünschen, möchten Sie niemals eine veröffentlichte Schnittstelle ändern, da dies bedeuten würde, dass der Code, für den die Leute geschrieben haben, IE 6 nicht mehr mit IE 7 arbeitet und alle ihre Kunden darauf wütend werden Sie werden wütend auf dich.

Wenn also IE 5 neue Features hinzufügt, die angezeigt werden müssen, anstatt IHTMLDocument zu ändern, erstellen Sie eine neue Schnittstelle und unterstützen IE5 (durch Vererbung, QueryInterface oder einen expliziteren Mechanismus). Und wenn IE 7.0.2 oder IE 8 oder Win XP oder was auch immer neue Funktionen hinzufügt, erstellen Sie eine andere. Und so weiter.

Während MS mit beschreibenden Suffixen anstelle von nur sequenziellen Zahlen kommen könnte, wäre das wahrscheinlich verwirrender als hilfreich. Also, IHTMLDocument2 , IHTMLDocument3 , usw. sind die Namen. Sie bedeuten nichts, außer der Reihenfolge, in der sie hinzugefügt wurden.

    
abarnert 01.01.2013, 07:38
quelle
3
  

Was bedeutet die Zahl am Ende des Schnittstellennamens?

Dies ist die Standardkonvention für die Versionierung von COM-Schnittstellen. IXXX2 erweitert IXXX um neue Funktionen. IXXX3 erweitert IXXX2 um neue Funktionen und so weiter. Dies ermöglicht Clients, ältere Funktionen zu verwenden, ohne zu brechen, wenn neue Versionen veröffentlicht werden, und bei Bedarf neue Funktionen zu verwenden, sogar zu prüfen, ob diese Funktionen verfügbar sind, bevor sie versucht werden, sie aufzurufen.

  

Ich sehe, dass IHTMLDocument3-7 keine Mitglieder

haben

Woher hast du diese Idee? Schau dir ihre tatsächlichen Definitionen an. Sie setzen viele neue Mitglieder von einer Schnittstelle zur nächsten frei.

    
Remy Lebeau 01.01.2013 08:37
quelle
2

Nein - es bedeutet nur eine andere Version der Schnittstelle. Es hat nichts mit der Windows-Version zu tun (und wenig / nichts mit der MSHTML-Version zu tun):

paulsm4 01.01.2013 07:24
quelle
1

ab Ссылка

wo wir sehen können:

  

Die IHTMLDocument3-Schnittstelle erbt von IDispatch   Schnittstelle, aber keine zusätzlichen Mitglieder.

es kann etwas verwirrend für Neulinge sein, die Welt zu interface.

    
Melb 24.06.2013 20:14
quelle

Tags und Links