Notes クライアントは OLE オートメーションコントローラーでありサーバーです。
Notes は OLE オートメーションコントローラーです。LotusScript® の GetObject 関数を使用して OLE オートメーションオブジェクトを開き、CreateObject 関数を使用して OLE オートメーションオブジェクトを作成できます。NotesUIDocument クラスの CreateObject と GetObject の各メソッドも使用できます。
Notes は OLE オートメーションサーバーとして登録されています。次の OLE オートメーションオブジェクトを提供します。
外部アプリケーションはオートメーションオブジェクトを作成し参照できます。さらにオブジェクトの階層にそって処理できます。例えば Visual Basic アプリケーションには次のようなコードを設定できます。
Set workspace = CreateObject("Notes.NotesUIWorkspace")
Set doc = workspace.CurrentDocument
または、
Set session = CreateObject("Notes.NotesSession")
Messagebox session.UserName
Notes クライアントが Visual Basic プログラムと同じコンピュータにインストールされている必要があります。Notes は、OLE オートメーションサーバーとして機能しているときは別のプロセスとして実行されます。
OLE オートメーションはレイトバインディングを使用しています。LotusScript のように、新しい Domino オブジェクトは作成できません。(例えば CreateObject を使用した場合) Notes.NotesUIWorkspace または Notes.NotesSession オブジェクトを作成し、有効なメソッドを使用して階層にそって処理していかなければなりません。例えば、Domino のバックエンドのデータベースを開きたいとします。この場合、まず Notes.NotesSession OLE オートメーションオブジェクトを作成し、次に NotesSession クラスの GetDatabase メソッドを使用して参照変数を設定します。
Visual Basic では、すべての Domino オブジェクトの参照変数を Object 型として宣言します。Domino オブジェクトを使用し終わったら、参照変数に Nothing をセットし、使用していたメモリを開放します。
オブジェクトのプロパティとメソッドにアクセスするには、LotusScript と同じようにドット表記法を使用します。
定数は、名前ではなく実際の数値で指定しなければなりません。LotusScript では表示することで値を取得できます。以下に例を示します。
Messagebox ACLLEVEL_AUTHOR,, "ACLLEVEL_AUTHOR"