Папка:
01. Технические вопросы, 06. Разработка Notes-приложений, 99. Разное
Тип сообщения:
Мне лень заполнять это поле
Сообщение:
08.12.2005 16:31:24 Dmitry Akulov написал:
> dim com_session as variant
> set com_session=CreateObject("lotus.notesSession")
> ну и т.д.
>
> или я неправильно Вас понял? если же понял Вас правильно понял, то вопрос: есть
> работающие приложения, которые юзают в скрипте такую конструкцию?
1. не вижу причин почему нельзя использовать данную конструкцию, с "notes.notesSession" - работает "на ура"... c "lotus.notesSession" - думаю тоже прокатит, правда наверняка я получу не текущую сессию, а ее новый инстанс со всеми вытекающими...
например, данная конструкция вполне работоспособна , правда использовать ее необходимо ДОВОЛЬНО осторожно...
2. я имел ввиду, что в коде:
Dim ses As New NotesSession
Dim tst As Variant
Dim doc As notesDocument
Set tst = CreateObject("DCN_Obj.ObjCollection")
Set doc = New NotesDocument(ses.CurrentDatabase)
Call tst.Add(doc, "NoSave")
я создаю внутренний объект doc класса notesDocument, но когда я передаю внутренний объект doc во внеший COM(OLE) объект ("DCN_Obj.ObjCollection"), Нотес преобразует внутренний объект doc в COM(OLE) объект и передает его (вернее создает объект одноименного COM(OLE) класса и связывает(внутренней реализацией) с внутренним объектом doc ) - такого рода приведение типов... т.е. во внешнем COM(OLE) приложении(объекте) я получу объект не внутреннего класса Нотса, а его COM(OLE) реализацию.
Соответственно в "DCN_Obj.ObjCollection" в коллекции у меня хранятся COM(OLE) объекты позденого связывания, и если я забираю объект из коллекции обратно в Нотес, то получу COM(OLE) реализацию внутреннего объекта (Variant c типом [OBJECT]), а не сам объект doc внутреннего класса notesDocument. Но так как он связан с внутренним объектом, то я могу получать данные из этого внутреннего объекта и передовать их в него, т.е работать почти как с внутренним объектом.
и так же, если я забираю объект в третье приложение, то забираю COM(OLE) объект и соответственно могу его использовать, вплодь до момента закрытия Нотса (правда необходимо забрать и всех Parent'ов). При этом закрытие UI базы/вида/документа ни как не повлияет на жизнь объекта.