2013-01-01 9 views

risposta

17

Questa è una caratteristica generale di interfacce COM pubblici.

Se volete la compatibilità a ritroso, non si vuole cambiare un'interfaccia pubblicato, perché ciò significherebbe tutto il codice persone hanno scritto per, diciamo, IE 6 smette di funzionare con IE 7, e tutti i loro clienti a ottenere arrabbiato con loro, e si arrabbiano con te.

Quindi, se IE 5 aggiunge nuove funzionalità che devono essere esposte, invece di modificare IHTMLDocument, si crea una nuova interfaccia e si supporta IE5 (per ereditarietà, QueryInterface o un altro meccanismo esplicito). E quando IE 7.0.2 o IE 8 o Win XP o qualsiasi altra cosa aggiunge ancora nuove funzionalità, ne crei un'altra. E così via.

Mentre MS avrebbe potuto trovare suffissi descrittivi invece di numeri sequenziali, sarebbe probabilmente più confuso che utile. Quindi, IHTMLDocument2, IHTMLDocument3, ecc. Sono i nomi. Non significano nulla, tranne l'ordine in cui sono stati aggiunti.

3

Qual è il significato del numero alla fine del nome dell'interfaccia?

Questa è la convenzione standard per il controllo delle versioni delle interfacce COM. IXXX2 estende IXXX con nuove funzioni. IXXX3 estende IXXX2 con nuove funzioni e così via. Ciò consente ai client di utilizzare funzioni meno recenti senza interruzioni quando vengono rilasciate nuove versioni e, se lo si desidera, utilizzare funzioni più nuove, anche controllare se tali funzioni sono disponibili prima di provare a chiamarle.

vedo che IHTMLDocument3-7 hanno nessun membro

Dove hai preso l'idea da? Guarda le loro definizioni attuali. Espongono molti nuovi membri da un'interfaccia all'altra.

+1

Infatti. Guardare mshtml.h nell'SDK è spesso divertente e illuminante. –

1

come di http://msdn.microsoft.com/en-us/library/aa752541(v=vs.85).aspx

dove possiamo vedere:

L'interfaccia IHTMLDocument3 eredita dall'interfaccia IDispatch ma non ha membri aggiuntivi.

può essere un po 'di confusione per i nuovi arrivati ​​per interfacciare il mondo.

+0

IHTMLDocument3 ha più membri. La qualità della documentazione di micro $ oft è semplicemente ineffabilmente terribile. – Gammadyne

Problemi correlati