SetAllReplicationClasses
[syntax="ls"]Const wAPIModule = "NNOTES" ' Windows/32
Declare Private Sub IDDestroyTable Lib wAPIModule Alias "IDDestroyTable" _
( Byval hT As Long)
Declare Private Function IDScan Lib wAPIModule Alias "IDScan" _
( Byval hT As Long, Byval F As Integer, ID As Long) As Integer
Declare Private Function NSFDbOpen Lib wAPIModule Alias "NSFDbOpen" _
( Byval P As String, hDB As Long) As Integer
Declare Private Function NSFDbClose Lib wAPIModule Alias "NSFDbClose" _
( Byval hDB As Long) As Integer
Declare Private Function NSFDbGetModifiedNoteTable Lib wAPIModule Alias "NSFDbGetModifiedNoteTable" _
( Byval hDB As Long, Byval C As Integer, Byval S As Currency, U As Currency, hT As Long) As Integer
Declare Private Function OSPathNetConstruct Lib wAPIModule Alias "OSPathNetConstruct" _
( Byval NullPort As Long, Byval Server As String, Byval FIle As String, Byval PathNet As String) As Integer
Declare Private Sub TimeConstant Lib wAPIModule Alias "TimeConstant" _
( Byval C As Integer, T As Currency)
Sub SetAllReplicationClasses(db As NotesDatabase, mask$)
If mask$ = "" Then mask$ = "30719"
With db
np$ = Space(1024)
OSPathNetConstruct 0, db.Server, db.FilePath, np$
End With
Dim hDB As Long
NSFDbOpen np$, hDB
Dim ever As Currency, last As Currency
TimeConstant 2, ever
Dim hT As Long
NSFDbGetModifiedNoteTable hDB, &H0800, ever, last, hT
Dim RRV As Long
found% = 0
changed% = 0
done = (IDScan(hT, True, RRV) = 0)
While Not done
If RRV > 0 Then
Dim doc As NotesDocument
Set doc = db.GetDocumentByID(Hex$(RRV))
A = doc.~$ReplClassMasks
ok = True
For i% = 0 To Ubound(A)
found% = found% + 1
If Not A(i%) = mask$ Then
A(i%) = mask$
changed% = changed% + 1
ok = False
End If
Next
If Not ok Then
doc.~$ReplClassMasks = A
doc.Save True, False
End If
End If
done = (IDScan(hT, False, RRV) = 0)
Wend
IDDestroyTable hT
NSFDbClose hDB
Messagebox "Found " & Cstr(found%) & ", changed " & Cstr(changed%)
End Sub[/syntax]
Declare Private Sub IDDestroyTable Lib wAPIModule Alias "IDDestroyTable" _
( Byval hT As Long)
Declare Private Function IDScan Lib wAPIModule Alias "IDScan" _
( Byval hT As Long, Byval F As Integer, ID As Long) As Integer
Declare Private Function NSFDbOpen Lib wAPIModule Alias "NSFDbOpen" _
( Byval P As String, hDB As Long) As Integer
Declare Private Function NSFDbClose Lib wAPIModule Alias "NSFDbClose" _
( Byval hDB As Long) As Integer
Declare Private Function NSFDbGetModifiedNoteTable Lib wAPIModule Alias "NSFDbGetModifiedNoteTable" _
( Byval hDB As Long, Byval C As Integer, Byval S As Currency, U As Currency, hT As Long) As Integer
Declare Private Function OSPathNetConstruct Lib wAPIModule Alias "OSPathNetConstruct" _
( Byval NullPort As Long, Byval Server As String, Byval FIle As String, Byval PathNet As String) As Integer
Declare Private Sub TimeConstant Lib wAPIModule Alias "TimeConstant" _
( Byval C As Integer, T As Currency)
Sub SetAllReplicationClasses(db As NotesDatabase, mask$)
If mask$ = "" Then mask$ = "30719"
With db
np$ = Space(1024)
OSPathNetConstruct 0, db.Server, db.FilePath, np$
End With
Dim hDB As Long
NSFDbOpen np$, hDB
Dim ever As Currency, last As Currency
TimeConstant 2, ever
Dim hT As Long
NSFDbGetModifiedNoteTable hDB, &H0800, ever, last, hT
Dim RRV As Long
found% = 0
changed% = 0
done = (IDScan(hT, True, RRV) = 0)
While Not done
If RRV > 0 Then
Dim doc As NotesDocument
Set doc = db.GetDocumentByID(Hex$(RRV))
A = doc.~$ReplClassMasks
ok = True
For i% = 0 To Ubound(A)
found% = found% + 1
If Not A(i%) = mask$ Then
A(i%) = mask$
changed% = changed% + 1
ok = False
End If
Next
If Not ok Then
doc.~$ReplClassMasks = A
doc.Save True, False
End If
End If
done = (IDScan(hT, False, RRV) = 0)
Wend
IDDestroyTable hT
NSFDbClose hDB
Messagebox "Found " & Cstr(found%) & ", changed " & Cstr(changed%)
End Sub[/syntax]