А что там было по изменению Icon Note при Nsfdbinfomodify

Omh

Lotus team
04.07.2007
2 210
1
#1
Я тут персамтривал код, и заметил, что про апдейте пропертей базы на API я не обновляю ICON NOTE (код закомметирован).
Помню тут было хорошее обсуждение этого дела, но я, не нашёл, то ли благодаря поиску, то ли благодаря кривизне рук.

У меня примерно такой код:
<!--shcode--><pre><code class='vb'>Function cNSFDbInfoModify(Parse As Integer, NewValue As String) As Integer
If Me.handle = 0 Then Exit Function

If (Parse = INFOPARSE_TITLE) Or _
(Parse = INFOPARSE_CATEGORIES) Or _
(Parse = INFOPARSE_CLASS) Or _
(Parse = INFOPARSE_DESIGN_CLASS) Then
Dim dbInfoBuffer As String
dbInfoBuffer = String(NSF_INFO_SIZE, 0)

Call NSFDbInfoGet(Me.handle, dbInfoBuffer)
Call NSFDbInfoModify(dbInfoBuffer, Parse, NewValue)
Call NSFDbInfoSet(Me.handle, dbInfoBuffer)

cNSFDbInfoModify = NOERROR

Dim IconDoc As NotesDocument
If GetDocByNoteID(Me.Db, IconDoc, NOTEID_ICON) Then
Dim dbInfoBuffer2 As String
dbInfoBuffer2 = toLMBCS(dbInfoBuffer)
Dim IconNoteHandle As Long
IconNoteHandle = IconDoc.Handle
Call NSFItemSetText(IconNoteHandle, "$TITLE", dbInfoBuffer, Len(dbInfoBuffer2))
Call NSFNoteUpdate(IconNoteHandle, 0)
End If
End If
End Function[/CODE]

У меня вопрос по кусочку, который апдейтит ICON NOTE.
Там всё правильно? Что-то мне так не кажется.
 

TIA

:-)
Lotus team
15.05.2009
790
3
#2
ICON NOTE надо обязательно менять.

Да вроде нормально, если параметр у NSFItemSetText задекларен как LMBCS.

Declare Public Function NSFItemSetText Lib "nnotes.dll" Alias "NSFItemSetText" (Byval hNote As Long,Byval Item As Lmbcs String, Byval Text As Lmbcs String, Byval TextLen As Long) As Integer

Ксатати, можно не париться с вычислением длины dbInfoBuffer2, а просто передать последним параметром &hFFFF.

Вообще, для таких вопросов надо обязательно декларации внешних методов прикладывать, т.к. обычно ошибки в них.