Implementing an OnSyncDelete Event Sink

Topic Last Modified: 2006-06-12

The following example handles the OnSyncDelete event. See Store Event Sink Bit Flags for more information.

Example

Visual Basic

Private Sub IExStoreSyncEvents_OnSyncDelete(ByVal pEventInfo As Exoledb.IExStoreEventInfo, ByVal bstrURLItem As String, ByVal lFlags As Long)

    Dim FSO         As Object
    Dim EvtLog      As String
    Dim EvtFile

'Log file
    EvtLog = Environ("SystemDrive") & "\OnSyncDelete.log"

'Creates new log file %SystemDrive%\OnSyncDelete.log or opens it if exists
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set EvtFile = FSO.OpenTextFile(EvtLog, 8, True)

'Append incoming event info into log file
    EvtFile.WriteLine ("[VB Event Sink]          OnSyncDelete()")
    EvtFile.WriteLine ("  URL Item:              " & bstrURLItem)
    EvtFile.WriteLine ("  lFlags:                " & "0x" & Hex(lFlags))

'To determine type of incoming OnSyncDelete notifications:

    'Case 1: EVT_SYNC_BEGIN
    If lFlags And EVT_SYNC_BEGIN Then
        'Perform your tasks
        'Begin phase of OnSyncDelete
        EvtFile.WriteLine ("  Flag contains EVT_SYNC_BEGIN bit set")

    'Case 2: EVT_SYNC_COMMITTED
    ElseIf lFlags And EVT_SYNC_COMMITTED Then
        'Perform your tasks
        'Commit phase of OnSyncDelete
        EvtFile.WriteLine ("  Flag contains EVT_SYNC_COMMITTED bit set")

    'Case 3: EVT_SYNC_ABORTED
    ElseIf lFlags And EVT_SYNC_ABORTED Then
        'Perform your tasks
        'Abort phase of OnSyncDelete
        EvtFile.WriteLine ("  Flag contains EVT_SYNC_ABORTED bit set")

    End If

'To determine type of OnSyncDelete

    'EVT_SOFTDELETE
    If lFlags And EVT_SOFTDELETE Then
        'Perform your tasks
        EvtFile.WriteLine ("  Flag contains EVT_SOFTDELETE bit set")
    End If

    'EVT_HARDDELETE
    If lFlags And EVT_HARDDELETE Then
        'Perform your tasks
        EvtFile.WriteLine ("  Flag contains EVT_HARDDELETE bit set")
    End If

     'Check if it is a folder notification
    If lFlags And EVT_IS_COLLECTION Then
        'Perform your tasks
        'OnSyncDelete for a folder
        EvtFile.WriteLine ("  Flag contains EVT_IS_COLLECTION bit set")
    End If

    EvtFile.WriteBlankLines (1)

'Before Quit
    EvtFile.Close
    Set FSO = Nothing

End Sub