Exchange 2000徹底解剖
>
開発環境としてのExchange 2000 Server
●イベントの登録
Event Sinkによるイベントを登録するには,イベントを発生させたいフォルダに対して「イベントオブジェクト」という隠しオブジェクトを登録し,
Table 7
| プロパティ | 解説 |
|---|---|
| Criteria | イベントを発生させるときの条件。SQL書式のWHERE句以降を設定する。たとえば,“WHERE "DAV:getcontentlength" > 10000”のように指定すれば,10Kバイトを越えたアイテムに対してだけ同イベントが発生するようになる |
| Enable | イベントを有効にするかどうかのフラグ。trueまたはfalse。falseを設定すると,イベントの発生を一時的に抑制できる |
| EventMethod | 発生させたいイベントの名前。Table 8の組み合わせ(文字列配列)として指定する。ただしTable 8に示すように,イベントは「ストアイベント」「システムイベント」「タイマーイベント」の3つに分類される。イベントを複数指定するときには,同じ種類のイベントしか指定できない(たとえば,ストアイベントに属するOnSaveとタイマーイベントに属するOnTimerを同時に設定することはできない) |
| MatchScope | 非同期イベントならびに同期イベントに対するイベントを定義するとき,サブフォルダに対するアイテム操作を有効にするかどうかを指定する。“ANY”(Web Storage Systemのすべてのフォルダ),“DEEP”(サブディレクトリを含む),“EXACT”(対象フォルダだけ),“SHALLOW”(“EXACT”と同じ)のいずれかを指定する |
| Priority | 同期イベントであるとき,優先順位を指定する。0(高い)〜65535(標準)〜2147483647(低い)までの整数。非同期イベントでは優先順位を設定できない |
| ScriptUrl | スクリプトによってイベントを処理するとき,そのスクリプトのURLを指定する |
| Sinkclass | イベントが発生したときに呼び出すCOMコンポーネントのクラスID(CLSID)またはプログラムID(ProgID)を指定する |
| TimerExpirtTime | 特定の日時になったらタイマーイベントを発生させないという有効期限を設定する。特に指定しないときには無期限 |
| TimerInterval | タイマーイベントを発生させる間隔を分単位で指定する |
| TimerStartTime | タイマーイベントを発生させる日時を指定する |
| 値 | 解説 |
|---|---|
ストアイベント | |
| OnSave | 保存されたとき |
| OnDelete | 削除されたとき |
| OnSyncSave | 保存されようとしているとき |
| OnSyncDelete | 削除されようとしているとき |
システムイベント | |
| OnMDBStartup | ストアが起動したとき |
| OnMDBShutdown | ストアが終了しようとしているとき |
タイマーイベント | |
| OnTimer | 一定時間が経由したとき |
イベントオブジェクトの扱いは,メールやファイルなどのアイテムと同じである。すなわち,登録するためには,WebDAVやADOコンポーネント,CDOコンポーネントなどを使えばよい。とはいえ,わざわざ登録用のプログラムを作るのはやや面倒なので,Exchange 2000 SDKには,RegEvent.vbsというスクリプトが用意されている。RegEvent.vbsはWindows Scripting Hostで動作するVBScriptのプログラムであり,イベントオブジェクトを登録する機能を備える(その使い方は,すぐあとで説明する)。
RegEvent.vbsは,ADOコンポーネントを使ってイベントオブジェクトを登録する。実際にRegEvent.vbsのソースを参照すれば,どのようにイベントオブジェクトを登録すればよいのかがわかるだろう。
| 23/27 |
