• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

А что там было по изменению 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.

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

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