Что означает число в конце имени интерфейса? я вижу это IHTMLDocument3-7
нет участников (см. пример для № 5), а также 8
имеет жест связанных членов. Число получено из версии Windows?
Это общая особенность общедоступных COM-интерфейсов.
Если вам нужна обратная совместимость, вы никогда не захотите менять опубликованный интерфейс, потому что это будет означать, что весь код, написанный для, скажем, IE 6, перестает работать с IE 7, и все их клиенты злятся на них, и они злятся на тебя.
Таким образом, если IE 5 добавляет новые функции, которые должны быть выставлены, вместо изменения IHTMLDocument
, вы создаете новый интерфейс и заставляете IE5 поддерживать оба (по наследству, QueryInterface
или какой-то более явный механизм). И когда IE 7.0.2 или IE 8 или Win XP или что-то еще добавляет новые функции, вы создаете еще одну. И так далее.
Хотя MS могла бы придумать описательные суффиксы вместо просто последовательных чисел, это, вероятно, было бы скорее сбивающим с толку, чем полезным. Так, IHTMLDocument2
, IHTMLDocument3
и т. д. являются имена. Они ничего не значат, кроме порядка их добавления.
Что означает число в конце имени интерфейса?
Это стандартное соглашение для управления версиями COM-интерфейсов. IXXX2 расширяет IXXX новыми функциями. IXXX3 расширяет IXXX2 новыми функциями и так далее. Это позволяет клиентам использовать старые функции без перерыва при выпуске новых версий, а также использовать новые функции при желании, даже проверять, доступны ли эти функции, прежде чем пытаться вызвать их.
Я вижу, что у IHTMLDocument3-7 нет участников
Откуда вы взяли эту идею? Посмотрите на их фактические определения. Они открывают множество новых членов от одного интерфейса к другому.
Нет — это просто означает другую версию интерфейса. Это не имеет никакого отношения к версии Windows (и, в этом отношении, мало / ничего не имеет к версии MSHTML):
по состоянию на http://msdn.microsoft.com/en-us/library/aa752541(v=vs.85).aspx
где мы можем увидеть:
Интерфейс IHTMLDocument3 наследуется от IDispatch
интерфейс, но не имеет дополнительных членов.
это может быть немного запутывающим для новичков, чтобы взаимодействовать с миром.