List 14 Event Sinkのサンプル
1: Implements IExStoreSyncEvents
2:
3: Private Sub IExStoreSyncEvents_OnSyncSave(ByVal pEventInfo As Exoledb._
IExStoreEventInfo, _
ByVal bstrURLItem As String, _
ByVal lFlags As Long)
4: ' アイテムが保存されようとしているときの処理
5: Dim DispEvtInfo As IExStoreDispEventInfo
6: Dim objRec As ADODB.Record
7: Dim filelength As Long
8:
9: ' IExStoreDispEventInfoインタフェースを取得する
10: Set DispEvtInfo = pEventInfo
11:
12: ' イベントの種類を判定する
13: If lFlags And EVT_SYNC_BEGIN Then
14: ' イベントが始まったときの処理
15: ' ファイルサイズを取得する
16: ' まずは,IExStoreDispEventInfoインタフェースから
17: ' ADODB.Recordオブジェクトを得る
18: Set objRec = DispEvtInfo.EventRecord
19: filelength = objRec.Fields("DAV:getcontentlength").Value
20: If filelength > 10000 Then
21: ' 10000バイト以上のときには,メールを送信する
22: Dim objMsg As CDO.Message
23: Set objMsg = CreateObject("CDO.Message")
24: objMsg.To = "Administrator"
25: objMsg.From = "Administrator"
26: objMsg.Subject = "[管理]大きなメッセージ"
27: objMsg.TextBody = objRec.Fields("DAV:href") & "に" & filelength & _
"バイトのメッセージが登録されようとしています"
28: objMsg.Send
29: Set objMsg = Nothing
30: End If
31: If filelength > 20000 Then
32: ' 20000バイト以上のときには,拒否する
33: DispEvtInfo.AbortChange
34: End If
35: Set objRec = Nothing
36: End If
37:
38: Set DispEvtInfo = Nothing
39: End Sub
40:
41: Private Sub IExStoreSyncEvents_OnSyncDelete(ByVal pEventInfo As Exoledb._
IExStoreEventInfo, _
ByVal bstrURLItem As String, _
ByVal lFlags As Long)
42: ' アイテムが削除されようとしているときの処理
43: ' ここでは何もしない
44: End Sub