Замечание к документу "+некоторые наблюдения..."   >>>   
Тема: Как говорит Дмитрий "мало спал, много думал ;)"... (+)

Создан:Cherepanov; lawdb 12/07/2005 07:33 AM
Модифицирован:Cherepanov 12/07/2005 08:49 AM
Папка:
01. Технические вопросы, 06. Разработка Notes-приложений, 99. Разное
Тип сообщения:
Коментарий

Сообщение:

Помыслил логически, пришел к выводу что данное поведение вполне логично и что это работало и будет работать (оптимист :))...

Начнем с того что, если мы отдем во внешний COM внутренний объект Нотса, и если передовать ссылку на внутренний объект, то что внешнее приложение будет делать с данным адресом, тем более находящимся в чужом адресном пространстве? да и для Нотса, отдавать свой внутренний адрес по крайней мере опасно, поскольку мало ли что туда понапихают в обход всякой логике самого Нотса (Малевичи цветут и пахнут...). Логичным выходом является преобразовать внутренний объект в COM-объект позднего связывания и отдать его внешниму COM серверу, и контролировать поведений объекта свими внутреними средствами. (при этом нового "инстанса" COM-сервера "Lotus.NotesSession" не создается - зачем он ведь уже создан, и имеет доступ ко внутреннему пространнсту адресов(классов), что для нового "истанса" было бы не возможно (у него было бы свое адресное пространнство))

Про COM-объект позденого связывания можно сделать вывод, во-первых потому, что полученный объект работает даже в скрипте написанном для WHS (*.vbs файл), и то что ЕСЛИ во внешнем приложении (в данном случае в VB) создать объект NotesXXXX с ранним связыванием (VB позволяет подключать COM серверы поддерживающих ранее связывание и использовать эти объекты как внутренние обекты VB (точнее там практически все объекты такие)), то при попытке передать этому внешнему NotesXXXX получем не соответствие типов (оно и правильно объект позднего связывания и объект раннего связывания это разные весЧи)...

Становится понятно почему мне не удалось передать таким образом UI-объекты, про них в хелпе прямо сказанно "Note This class is not supported in COM"! мне, было в общем данное выражение не совсем понятно поскольку существует COM-класс "Notes.NotesUIWorkspace", правда считающимся устаревшим как и класс "Notes.NotesSession" и в версиях начиная с 5.0.2 используется "Lotus.NotesSession" (Note This feature is new with Release 5.0.2b; Note This feature is not supported under OS/2, under UNIX, or on the Macintosh)

Про то что это работает в версиях серии >5.x (думаю что для версий >=5.0.2) проверил на "чистой" версии Notes 5.0.8 установленной на Win98... действительно работает...

Исходя из вышеизложенного можно сказать, что данное средство, это ни какая-то не документированная особеность Нотса, а вполне штатное средство, которое можно использовать... (Declare к DLL'кам ведь используем:)) )

Понятно, что данная технология накладывает некоторые ограничения на использование ОС - в данном случае Windows...

А так же необходимо учитывать, что COM-объекты позднего связывания работают гораздо медленнее чем внутренние объекты...


Иерархия документов данной дискуссии:
Передача Notes-объектов между модулями... (Cherepanov; lawdb) (05.12.2005 14:02:54)
.... а Вы проверяли, или только в теории (+) (Dmitry Akulov) (05.12.2005 15:35:58)
........ работает, это я лажанулся. и тем не менее (+) отредактировано (Dmitry Akulov) (05.12.2005 16:02:12)
............ Re... (+) (Cherepanov; lawdb) (06.12.2005 8:32:05)
................ продолжаем разговор (+) (Dmitry Akulov) (06.12.2005 11:20:06)
.................... продолжаем... (+) (Cherepanov; lawdb) (06.12.2005 12:09:04)
.... +некоторые наблюдения... (Cherepanov; lawdb) (06.12.2005 11:56:29)
........ Как говорит Дмитрий "мало спал, много думал ;)"... (+) (Cherepanov; lawdb) (07.12.2005 7:33:45)
............ не уверен , правильна ли такая физкультура :) (Dmitry Akulov) (07.12.2005 22:11:38)
................ а кому легко? (+) (Cherepanov; lawdb) (08.12.2005 7:27:30)
.................... Андрей, я так понял, из Ваших слов, что вы запросто используете из скрипта обращение к COM, т.е. (+) (Dmitry Akulov) (08.12.2005 12:31:24)
........................ а почему нет... (+) (Cherepanov; lawdb) (09.12.2005 6:58:39)
............................ сорри Андрей, мы не понимаем друг-друга (+) (Dmitry Akulov) (09.12.2005 15:22:32)
................................ хм... :) (+) (Cherepanov; lawdb) (12.12.2005 8:20:48)
.................................... сдаюсь (+) (Dmitry Akulov) (12.12.2005 10:28:31)
............ COM Together - with Domino (-) (Denis Samoylovich) (07.12.2005 16:31:12)
........ наблюдения за наблюдателем + (Dmitry Akulov) (06.12.2005 13:26:21)
............ Re... (+) (Andrey N Cherepanov) (06.12.2005 13:53:33)
.... ... а вот с DCOM облом.... :(( (+) (Cherepanov; lawdb) (06.12.2005 9:16:31)


Разработчикам и администраторам: курсы, книги, сертификация