• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы Omh
  • Дата начала
O

Omh

Я тут персамтривал код, и заметил, что про апдейте пропертей базы на 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.
Там всё правильно? Что-то мне так не кажется.
 
T

TIA

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.

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!