Option Public
Option Declare
Function InsertSignature( uiMemo As NotesUIDocument, docProfile As NotesDocument ) As Boolean
On Error Goto errHandler
Dim bFuncStatus As Boolean
bFuncStatus = True
Dim strFilterList List As String
strFilterList("JPG") = "JPEG Image"
strFilterList("JPEG") = "JPEG Image"
strFilterList("BMP") = "BMP Image"
strFilterList("GIF") = "GIF Image"
strFilterList("HTM") = "HTML File"
strFilterList("HTML") = "HTML File"
strFilterList("TXT") = "ASCII"
Dim intSigOption As Integer
Dim strSig As String
intSigOption = Cint(docProfile.GetItemValue("SignatureOption")(0))
strSig = docProfile.GetItemValue("Signature")(0)
Dim varFILTER As Variant
Call uiMemo.GotoField("Body")
Select Case intSigOption
Case 1
Call uiMemo.GotoField("Body")
Case 2
varFILTER = Evaluate(|@RightBack("| & strSig & |";".")|)
Dim strFileExt As String
Dim strFilterString As String
If Trim(varFILTER(0)) <> "" Then
strFileExt = Trim(Ucase(varFILTER(0)))
If Iselement(strFilterList(strFileExt)) = True Then
strFilterString = strFilterList(strFileExt)
End If
Else
strFilterString = ""
End If
Call uiMemo.InsertText(Chr(10))
Call uiMemo.InsertText(Chr(10))
Call uiMemo.Import(strFilterString, strSig)
uiMemo.GotoField("Body")
End Select
finally:
InsertSignature = bFuncStatus
Exit Function
errHandler:
bFuncStatus = False
Dim sErrMsg As String
Select Case Err
Case Else
sErrMsg = "Error #" & Err & Chr$(10) & Error$ & Chr$(10) _
& "Line #" & Erl & | in sub/function: "| & Lsi_info(2) & |"|
Msgbox sErrMsg, 16, "Unexpected error"
End Select
Resume finally
End Function
Function createMemoWithLink( doc As NotesDocument ) As Boolean
On Error Goto errHandler
Dim bFuncStatus As Boolean
bFuncStatus = True
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim dbThis As NotesDatabase
Set dbThis = session.CurrentDatabase
Dim dbMail As New NotesDatabase("", "")
Call dbMail.OpenMail
Dim memo As NotesDocument
Set memo = dbMail.CreateDocument
memo.Form = "Memo"
Dim body As New NotesRichTextItem( memo, "Body" )
Call memo.Save( True, True, True )
Dim uiMemo As NotesUIDocument
Set uiMemo = ws.EditDocument(True, memo )
Dim docMailProfile As NotesDocument
Set docMailProfile = dbMail.GetProfileDocument("CalendarProfile")
Dim bSuspendSig As Boolean
Dim varSigOption As Variant
Dim intSigOption As Integer
varSigOption = docMailProfile.GetItemValue("SignatureOption")(0)
intSigOption = Cint(varSigOption)
Dim strSig As String
strSig = docMailProfile.GetItemValue("Signature")(0)
If Trim$(strSig) <> "" Then
Select Case intSigOption
Case 1, 2
bSuspendSig = True
If Not InsertSignature( uiMemo, docMailProfile ) Then Error 1000, ""
docMailProfile.SignatureOption = ""
Case Else
End Select
End If
Dim strMemoUNID As String
strMemoUNID = uiMemo.Document.UniversalID
uiMemo.Document.MailOptions = "0"
Call uiMemo.Save
uiMemo.Document.SaveOptions = "0"
Call uiMemo.Close
Delete uiMemo
Delete memo
Set memo = dbMail.GetDocumentByUNID( strMemoUNID )
Dim rtiSig As NotesRichTextItem
Set rtiSig = memo.GetFirstItem( "Body" )
Dim rtiNew As New NotesRichTextItem( memo, "rtiTemp" )
Call rtiNew.AddNewline( 2 )
Call rtiNew.AppendText( "To open the referenced document, please click here: ")
Call rtiNew.AppendDocLink( doc, dbThis.Title & ": " & doc.title(0) )
Call rtiNew.AppendRTItem( rtiSig )
Set body = New NotesRichTextItem( memo, "Body" )
Call body.AppendRTItem( rtiNew )
Call rtiNew.Remove
Call memo.Save( True, True, True )
Set uiMemo = ws.EditDocument(True, memo )
If bSuspendSig Then
docMailProfile.SignatureOption = varSigOption
End If
finally:
createMemoWithLink = bFuncStatus
Exit Function
errHandler:
bFuncStatus = False
Dim sErrMsg As String
Select Case Err
Case 1000
Case Else
sErrMsg = "Error #" & Err & Chr$(10) & Error$ & Chr$(10) _
& "Line #" & Erl & | in sub/function: "| & Lsi_info(2) & |"|
Msgbox sErrMsg, 16, "Mail memo could not be created"
End Select
Resume finally
End Function
This LotusScript was converted to HTML using the ls2html routine,
provided by Julian Robichaux at nsftools.com.