Qual è il significato del numero alla fine del nome dell'interfaccia? Vedo che IHTMLDocument3-7
non ha membri (see example for #5) e 8
ha membri relativi ai gesti. Il numero deriva dalla versione di Windows?Perché Microsoft ha IHTMLDocument, IHTMLDocument2, ..., IHTMLDocument8?
risposta
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.
No, indica solo una versione diversa dell'interfaccia. Non ha nulla a che fare con la versione di Windows (e, del resto, poco/niente a che fare con la versione MSHTML):
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.
Infatti. Guardare mshtml.h nell'SDK è spesso divertente e illuminante. –
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.
IHTMLDocument3 ha più membri. La qualità della documentazione di micro $ oft è semplicemente ineffabilmente terribile. – Gammadyne
- 1. Perché Microsoft ha implementato i socket in modo diverso?
- 2. Perché Microsoft ha eliminato Velocity Distributed Cache come prodotto standalone?
- 3. Perché dovrei usare Microsoft Expression Blend?
- 4. Perché microsoft ha reso JavaScriptSerializer obsoleto prima di .net 3.5 SP1 e di nuovo attivo dopo?
- 5. Perché Windows.Forms in System e non Microsoft?
- 6. Microsoft SQL Server: chi ha creato una stored procedure?
- 7. Perché python ha os.path.curdir
- 8. Perché MongoDB ha collezioni
- 9. Perché Ruby ha Numeric.new?
- 10. Perché JTDS è più veloce del driver JDBC di Microsoft?
- 11. Perché __PRETTY_FUNCTION__ ha chiamato __PRETTY_FUNCTION__?
- 12. Perché SLComposeViewController non ha delegato?
- 13. Perché Go ha digitato zero?
- 14. Perché JPA ha un'annotazione @Transient?
- 15. Perché questo ha $ rootcope. $ Nuovo()?
- 16. Perché Rust non ha unioni?
- 17. Perché React.js non ha stateTipi?
- 18. Perché Microsoft sta ancora attaccando alla tecnologia COM
- 19. Perché Direct3D non ha la propria struttura di vertici?
- 20. microsoft facebook sdk
- 21. Microsoft avvertimento _stprintf
- 22. Perché java ha Type quando ha già Object?
- 23. Perché C ha bisogno di matrici se ha puntatori?
- 24. Perché Collections.Generic.Queue non ha il metodo sincronizzato ma Collections.Queue ha?
- 25. Perché "tutti?" ha '?' dove come "alcuni" non ha "?" in Clojure?
- 26. Microsoft ha rimosso i collegamenti di Visual Studio 2012 Express per sempre?
- 27. Riferimento lingua Microsoft C++
- 28. Microsoft Roslyn vs. CodeDom
- 29. Microsoft PEX con NUnit
- 30. NHibernate con Microsoft System.Data.OracleClient
Il bug di nessun membro doc è una regressione che è stata corretta ... –