Do a View Lookup with the Notes API
Add this to your Declarations section:
' NAMELookup and OSMemFree are used in EnsureUserInNAB.
' NOTE: if you are running this app on a platform other than
' Windows 32 Intel, then you will have to change the name of the
' dll in these two declarations. Look in your Notes executable
' directory for *notes.dll to see what it is called, or for the proper
' form of shared library on your platform.
Declare Sub NAMELookup Lib "nnotes.dll" _
(Byval serverName As Integer, _
Byval flags As Integer, _
Byval numNameSpaces As Integer, _
Byval nameSpaces As String, _
Byval numNames As Integer, _
Byval names As String, _
Byval numItems As Integer, _
Byval items As String, _
rethBuffer As Long _
)
Declare Sub OSMemFree Lib "nnotes.dll" (Byval hBuffer As Long)
Now create a new sub:
' This sub is used to guarantee that the NAB view of users is up-to-date
after adding a new
' user. Domino 1.5 does not force the view to be up-to-date when
authenticating users, so
' we'll do it ourselves so the user can start working right away.
Sub EnsureUserInNAB(Byval fullname As String)
Dim hBuf As Long
Call NAMELookup(0, 0, 1, "$Users", 1, fullname, 1, "HTTPPassword", hBuf)
Call OSMemFree(hBuf)
End Sub
Then, once you have modified all of the documents in the NAB you are going to modify, call EnsureUserInNAB with the user's full name. The NAB will be up-to-date.
This technique is used in Lotus' Domino Registration sample.