Система.__ComObject в LotusNotes в VB.net при извлечении вложений
Я хочу получить доступ к базе данных Lotus Notes и получить вложения из документов в ней. Я могу открыть БД и документ и перебрать все элементы. Проблема в том, что я не могу использовать элементы в качестве NotesRichTextItem и, следовательно, не проверять, есть ли item.EmbeddedObject. Я думаю, что это проблема с объявлением предметов. В общем: если я отлаживаю с использованием VS2010, doc, база данных и NotesSession имеют системное "значение".__ComObject, а "тип" - это объект Domino.Notes, которым он и должен быть. например, документ в СМОТРЕТЬ:
Name VALUE TYPE
doc {System.__ComObject} Domino.NotesDocument
но если я использую команду doc.GetType(), результат будет
doc.GetType() = {Name = "__ComObject" FullName = "System.__ComObject"}
Поскольку я не знаю, является ли мой doc.item объектом NotesRichTextItem, я определяю его как объект и впоследствии хочу проверить его тип. Что я не могу, так как возвращаемое значение функций тоже самое, что и для doc. Вот полный код, который я сейчас использую, я загрузил ссылку на Lotus Domino из раздела COM.
Public Sub OpenDocumentLN()
Try
Dim ns As New Domino.NotesSession
Dim db As Domino.NotesDatabase
Dim doc As Domino.NotesDocument
Dim view As Domino.NotesView
If Not (ns Is Nothing) Then
ns.Initialize()
db = ns.GetDatabase("", sLotusNotesPath & sLotusNotesDB, False)
If Not (db Is Nothing) Then
view = db.GetView(sLotusView)
doc = view.GetFirstDocument
While Not doc Is Nothing
Dim lnNextDoc As Domino.NotesDocument = view.GetNextDocument(doc)
For Each item As Domino.NotesItem In doc.Items
Dim rtItem As Object = doc.GetFirstItem(item.Name)
If rtItem Is Nothing Then Continue For
If Not rtItem.GetType() = GetType(Domino.NotesRichTextItem) Then Continue For
' NEVER reach this part of the code since the IF clause prevents it due to the type problem
If rtItem.EmbeddedObjects Is Nothing Then Continue For
For Each o As Domino.NotesEmbeddedObject In rtItem.EmbeddedObjects
o.ExtractFile(sLotusExportPath & o.Source)
Next
Next
doc = lnNextDoc
End While
End If
db = Nothing
ns = Nothing
End If
Catch ex As Exception
End Try
End Sub
Как я могу использовать свой rtitem в качестве NotesRichTextItem, чтобы я мог обработать его соответствующим образом? И почему все объекты обрабатываются как ComObjects?