Enumerating Event Registrations for a Folder
Enumerating Event Registrations for a Folder
This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.
The following code opens an event registration item and lists the events it is registering.
Visual Basic
Public Sub Enum_Event(Server As String) On Error Resume Next Dim Query Dim fld Dim rs As New ADODB.Recordset Dim strParentFolder Dim strEventRegistrationName Dim aPropNames aPropNames = Array( _ "DAV:contentclass", _ "https://schemas.microsoft.com/exchange/events/Criteria", _ "https://schemas.microsoft.com/exchange/events/Enabled", _ "https://schemas.microsoft.com/exchange/events/EventMethod", _ "https://schemas.microsoft.com/exchange/events/MatchScope", _ "https://schemas.microsoft.com/exchange/events/Priority", _ "https://schemas.microsoft.com/exchange/events/ScriptUrl", _ "https://schemas.microsoft.com/exchange/events/SinkClass", _ "https://schemas.microsoft.com/exchange/events/TimerExpiryTime", _ "https://schemas.microsoft.com/exchange/events/TimerInterval", _ "https://schemas.microsoft.com/exchange/events/TimerStartTime") ' Specify the event folder and the event registration name strParentFolder = "file://./backofficestorage/" + _ Server + "/mbx/user1/inbox" strEventRegistrationName = "evtreg1" 'If you want to enum all the events, then leave this blank 'Build the sql query to get the events 'This section gets all event types so that you don't have to change this per event type 'To limit the event types, remove the unwanted event types from aPropNames Dim i Query = "SELECT " For i = LBound(aPropNames) To UBound(aPropNames) Query = Query + Chr(34) + aPropNames(i) + Chr(34) If i <> UBound(aPropNames) Then Query = Query + ", " End If Next Query = Query + " FROM SCOPE('shallow traversal of " + Chr(34) + strParentFolder + Chr(34) + "')" Query = Query + " WHERE " + Chr(34) + "DAV:contentclass" + Chr(34) + " = 'urn:content-class:storeeventreg'" If strEventRegistrationName <> "" Then 'event folder name specified Query = Query + " AND " + Chr(34) + "DAV:displayname" + Chr(34) + " = '" + strEventRegistrationName + "'" End If Dim rec As New ADODB.Record rec.Open strParentFolder 'root binder will select the correct provider If Err.Number <> 0 Then Debug.Print "Error Executing Query : " & Err.Number & " " & Err.Description & vbCrLf Exit Sub End If rs.Open Query, rec.ActiveConnection If Err.Number <> 0 Then Debug.Print "Error Executing Query : " & Err.Number & " " & Err.Description & vbCrLf Exit Sub End If ' Go thru each entry in the recordset Do While (rs.BOF <> True And rs.EOF <> True) For Each fld In rs.Fields If fld.Value <> vbNull Then Debug.Print fld.Name & ", " & fld.Value & vbCrLf End If Next Debug.Print "***********************************************" & vbCrLf rs.MoveNext If Err.Number <> 0 Then Debug.Print "Error Moving To Next Record : " & Err.Number & " " & Err.Description & vbCrLf Exit Sub End If Loop Set rs = Nothing End Sub
Send us your feedback about the Microsoft Exchange Server 2003 SDK.
Build: June 2007 (2007.618.1)
© 2003-2006 Microsoft Corporation. All rights reserved. Terms of use.