|
|
|
Зоопарк в MSHTML
|
|||
|---|---|---|---|
|
#18+
В билиотеки MSHTML есть (в числе прочего!) набор объектов, имена которых начинаются с буквы I. Эти объекты дублируют такие же, но с перламутровыми пуговицами ... сорри, - без оной буквы I. Вопрос: кто-нибудь понимает, в чем смысл этого зоопарка, в чем квинтэссенция этого дублирования? Верно ли такое предположение: все, что можно сделать, используя "I-объекты", можно сделать и используя "без-I-объекты", и наоборот? Только СТИЛЬ ПРОГРАММИРОВАНИЯ в этих случаях потребуется разный?? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 13:45:49 |
|
||
|
Зоопарк в MSHTML
|
|||
|---|---|---|---|
|
#18+
Верно ли такое предположение: все, что можно сделать, используя "I-объекты", можно сделать и используя "без-I-объекты", и наоборот? "I-объекты" это интерфейсы. Полностью избавиться от этого зоопарка не удастся. например MSHTML.HTMLDocument допускает WithEvents, а MSHTML.IHTMLDocument - нет, но при этом (точно не помню) HTMLDocument не поддерживает метод write. Так что приходится использовать обоих. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 14:19:17 |
|
||
|
Зоопарк в MSHTML
|
|||
|---|---|---|---|
|
#18+
Спасибо за интерпретацию буквы "I" ... "Интерфейсы" - означает, что ВНУТРИ них прикопаны соответсвующие без-I-объекты, я правильно понимаю? А как такое возможно, чтобы у "интерфейса" появлялся некоторый СОДЕРЖАТЕЛЬНЫЙ метод, который отсутствует у соответсвующего ... ммм ... не-интерфейса? Я понимаю (заметил), что I-объекты не имеют событий ... но если написать, например: Код: plaintext Гипотеза, котрую мне хотелось бы или принять, или опровергнуть, состоит в том, что вся функциональность, которая доступна при помощи WithEvents (применительно к без-I-объектам), - доступна каким-то образом и БЕЗ декларации WithEvents, ... но с использованием объекта MSHTML.CEventObj или какого-то другого "объекта event" (как мне посоветовали в http://sql.ru/forum/actualthread.aspx?tid=142374 ). А декларации WithEvents - это я и называю "СТИЛЬ ПРОГРАММИРОВАНИЯ"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 14:52:48 |
|
||
|
Зоопарк в MSHTML
|
|||
|---|---|---|---|
|
#18+
Иван FXSСпасибо за интерпретацию буквы "I" ... "Интерфейсы" - означает, что ВНУТРИ них прикопаны соответсвующие без-I-объекты, я правильно понимаю? Нет не правильно. Есть интерфейсы. А есть классы. И это принципиально не оно и тоже. Классы имплементируют интерфейсы. Один класс может имплементировать много интерфейсов. И это не зоопарк, это просто разные вещи. Про интерфейсы и классы можно почитать в MSDN или в любой книге по ООП А пока вот: http://www.header.km.ru/ Так вот об интерфейсах - идеология COM подразумевает, что: Либо ты знаешь, какой интерфейс ты держишь. Либо ты просишь у интерфейса другой, который тебе нужен. Тут могу привести такую вот аллегорию: Допустим, есть некое животное, например - осел. У него есть всякие ослиные наросты: уши, ноги, хвост. У самцов всякие там прочие ослиные достоинства. У ослиц имеются ихние, ослиные, титьки. Дело происходит днем. Ты подходишь к ослу и хватаешь его, скажем, за уши. Ты видишь, что это уши. И ты знаешь что с ними делать. Ты прислоняешься к ним и что есть мочи, орешь. Осел, естественно, пучит глаза и убегает. Это был вполне ожидаемый результат, и ты, радостно улыбаясь, идешь по своим делам, удовлетворенный решением поставленной задачи. Теперь ситуация другая. Дело происходит ночью. Ты идешь и натыкаешься на что-то теплое. Ты протягиваешь руки и кого-то за что-то хватаешь. И ты хочешь узнать, кого и за что ты схватил. Это и есть ситуация номер два. По технологии, аналогичной COM, ты можешь попросить того, кого ты схватил, подставить тебе уши. Он подставляет, ты хватаешь, орешь, и, опять-же, удовлетворенный, уходишь. Зачем тебе знать - что держат твои руки, если ты пришел с определенной целью? Иными словами, для решения задачи "наорать и уйти" нет нужды знать - за что ты держишься. Задачу можно решить только двумя способами: Придти днем, схватить осла за уши, и сделать свое дело. Придти ночью, схватить осла за что придется, попросить подставить уши, и опять-же сделать свое дело. Только так осел уйдет ошеломленный, а ты - удовлетворенный. P.S. Осел - это компонент. Уши, хвост, ноги и пр. части осла - это интерфейсы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2004, 15:49:28 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=347&tid=2168519]: |
0ms |
get settings: |
12ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
831ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
27ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 1143ms |

| 0 / 0 |
