呼び出すCOMサーバ
COMサーバの実装は後で与えることにして、今回はまずクライアントを実装します。
COMサーバは次のように、
EXEサーバ - サンプルCOMサーバの機能とほぼ同じ機能を備えるものとします。
文字列を与えてWrite()メソッドを呼び出すと、ファイルにその文字列を書き出す
固有のCLSIDを持つ
CLSIDに対応するProgIDとしてIchigo3.Logwriterを持つ
ProgIDをレジストリに登録しておくことで、スクリプト言語からProgIDでcoclassを参照できます。
Visual Basic Scriptの呼び出しコード
COMクライアントの機能を持つスクリプト言語として、
ここではWindows標準のVisual Basic Scriptを扱います。
Visual Basic Scriptでは、CreateObject()でcoclassのインスタンスを作成し、
返されたオブジェクトのメソッドをIDispatchを介して呼び出すことができます。
また、拡張子は.vbsになります。
Visual Basic Scriptによる呼び出しコードは次のようになります。
Option Explicit
Dim obj
Set obj = CreateObject("Ichigo3.Logwriter")
obj.Write "ichigopack COM sample 3" & vbLf
このコードは、ProgIDとしてIchigo3.Logwriterを持つcoclassのインスタンスを作成し、
"ichigopack COM sample 3\n"を引数としてメソッドWriteを呼び出しています。
メソッド呼び出しにはIDispatchのGetIDsOfNames()、Invoke()を用いています。
次はこのコードを動作させるための、COMサーバの実装について説明していきます。
関連ページ
COM/ActiveXの解説ページ 目次
前の項目: スクリプト言語への対応方法
次の項目: IDispatchインターフェース