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