Declare Function SECKFMChangePassword Lib "c:\lotus\notes\nnotes.dll" (Byval IDFile$,Byval OldPassword$,Byval NewPassword$)As Integer
Declare Function SECKFMSwitchToIDFile Lib "c:\lotus\notes\nnotes.dll" (Byval IDFile$,Byval Password$,Byval UserName$, Byval MaxUserNameLength%,Byval ReservedFlag&,Byval flag&)As Integer
Declare Function OSLoadString Lib "c:\lotus\notes\nlib.dll" (Byval hModule&, Byval Status%, Byval retBuffer$, Byval BufferLength%) As Integer
Const MAXUSERNAME=256
Type ID_INFO
Name As String
Password As String
End Type
Function APICheckError(Error%) As String
Dim s$, x%
If Error% <> 0 Then
s$ = Space$(254)
x% = OSLoadString(0, Error%, s$, 254)
If x% = 0 Then
s$ = "General Notes Error"
Else
s$ = Left$(s$,x%)
End If
APICheckError= s$
End If
End Function
Sub APISwitchID(filepath$, passwordlist, id As ID_Info, s$)
Dim Status%
Dim Flag%
Dim UserName As String * MAXUSERNAME
ID.Name="NA"
ID.Password= "NA"
Flag%=False
Forall x In PasswordList
pword$=Cstr(x)
Print s & " Checking Password ......" & Pword$ ,filepath$
Status%=SECKFMSwitchToIDFile(filepath$,pword$,UserName,MAXUSERNAME,0,0)
If Status% =0 Then
Print Now " Change Password SUCCESS <" & IDFile$ & ">"
' Call CreateIDDoc(filepath$,UserName,pword$,filepath$)
Flag%=True
ID.Name=UserName
ID.Password= Cstr(x)
Exit Forall
Else
Print "Error " & APICheckError(status%)
Print" Change Password ERROR <" & IDFile$ & ">"
Print" ERROR <" & APICheckError(status%)& ">"
End If
Status%=0
Yield
End Forall
If Flag%=False Then
Print Now & " ERROR Could Not Add file <" & IDFile$ & ">"
End If
End Sub
Function APIChangePword(IDFile$, OldPword$, NewPword$)As Integer
Dim Status%
Status%=SECKFMChangePassword(IDFile$,OldPword$,NewPword$)
If Status% =0 Then
Print"Change Password SUCCESS <" & IDFile$ & ">"
APIChangePword=True
Else
Print"Change Password ERROR <" & IDFile$ & ">"
Print"ERROR <" & APICheckError(status%)& ">"
APIChangePword=False
End If
End Function