Page 1 sur 1

SetReplicationCutoff

MessagePublié: 01 Août 2005 à 12:35
par Stephane Maillard
[syntax="ls"]Const APIModule = "NNOTES" ' Windows/32 only

Type ReplicaInfo
ID(1) As Long
Flags As Integer
CutoffDays As Integer
CutoffDate(1) As Long
End Type

Declare Function NSFDbOpen Lib APIModule Alias "NSFDbOpen" _
( Byval P As String, H As Long) As Integer
Declare Function NSFDbClose Lib APIModule Alias "NSFDbClose" _
( Byval H As Long) As Integer
Declare Function OSPathNetConstruct Lib APIModule Alias "OSPathNetConstruct" _
( Byval Z As Long, Byval S As String, Byval F As String, Byval P As String) As Integer
Declare Function NSFDbReplicaInfoGet Lib APIModule Alias "NSFDbReplicaInfoGet" _
( Byval H As Long, R As ReplicaInfo) As Integer
Declare Function NSFDbReplicaInfoSet Lib APIModule Alias "NSFDbReplicaInfoSet" _
( Byval H As Long, R As ReplicaInfo) As Integer

Declare Function ConvertTextToTIMEDATE Lib APIModule Alias "ConvertTextToTIMEDATE" _
( Byval zF As Long, Byval zT As Long, P As Long, Byval N As Integer, T As Long) As Integer

Declare Function OSMemAlloc Lib APIModule Alias "OSMemAlloc" _
( Byval T As Integer, Byval S As Long, hM As Long) As Integer
Declare Function OSMemFree Lib APIModule Alias "OSMemFree" _
( Byval hM As Long) As Integer
Declare Function OSLockObject Lib APIModule Alias "OSLockObject" _
( Byval H As Long) As Long
Declare Sub OSUnlockObject Lib APIModule Alias "OSUnlockObject" _
( Byval H As Long)

Declare Sub PokeString Lib "KERNEL32" Alias "RtlMoveMemory" _
( Byval P As Long, Byval S As String, Byval N As Long)


Sub SetReplicationCutoff(db As NotesDatabase, cutoff As String)
Dim hDB As Long
n$ = String(1024, " ")
OSPathNetConstruct 0, db.Server, db.FilePath, n$
NSFDbOpen n$, hDB
If hDB = 0 Then Exit Sub

Dim R As ReplicaInfo
NSFDbReplicaInfoGet hDB, R

If cutoff = "" Then
R.CutOffDate(0) = 0
R.CutOffDate(1) = 0
s% = 0
Else
Dim hM As Long
OSMemAlloc 1, 81, hM
p& = OSLockObject(hM)
PokeString p&, cutoff, Len(cutoff) + 1
s% = ConvertTextToTIMEDATE(0, 0, p&, 81, R.CutOffDate(0))
If Not s% = 0 Then Messagebox {Can't convert "} & cutoff & {" to TIMEDATE}
OSUnlockObject hM
OSMemFree hM
End If

If s% = 0 Then NSFDbReplicaInfoSet hDB, R
NSFDbClose hDB
End Sub[/syntax]