登録情報の作成

ホスト アプリケーションが登録情報を必要とする場合は、Regsvr32.exe などのプログラムを使用して、Windows® スクリプト コンポーネントを COM コンポーネントとして登録します。登録すると、COM コンポーネントについての情報が、ほかのプログラムからアクセスできる場所に保存されます (Windows では、登録情報が Windows レジストリに格納されます)。アプリケーションは、この登録情報を読み取ることによって COM コンポーネントを検索し、ロードすることができます。

メモ   スクリプト コンポーネントによっては、登録する必要がない場合もあります。たとえば、Internet Explorer 5.0 では、ページ上でビヘイビアが検出されたとき、ビヘイビアのインスタンスを直接生成するので、DHTML Behavior インターフェイス ハンドラを実装しているスクリプト コンポーネントは、登録する必要がありません。ビヘイビアの使用の詳細については、Microsoft Site Builder Network (SBN) Web サイトの「Using DHTML Behaviors」を参照してください。ホスト アプリケーションがモニカをサポートしている場合は、登録しないでスクリプト コンポーネントのインスタンスを作成できます。

登録を指定する際に最も重要な情報を次に示します。

  • プログラム ID (prog ID) は、スクリプト コンポーネントのインスタンスを作成するときに、ホスト アプリケーションで使用される名前です。たとえば、スクリプト コンポーネントのプログラム ID が Component.MyComponent である場合、Microsoft® Visual Basic® では、次のようなステートメントを使ってそのスクリプト コンポーネントのインスタンスを作成します。

    Set Component = CreateObject("Component.MyComponent")
    
  • GUID (Globally Unique ID) であるクラス ID を使用して、スクリプト コンポーネントを一意に識別します。GUID は、Uuidgen.exe などのプログラムを使って生成できます。

    メモ   Script Component Wizard を使用してスクリプト コンポーネントを作成した場合、ウィザードはプログラム ID およびクラス ID を自動的に作成します。詳細については、「Script Component Wizard の使用」を参照してください。

登録情報には、説明とバージョン番号も含まれています。

スクリプト コンポーネントを登録するときに、登録プログラムを使用してスクリプト コンポーネントのクラス ID を作成することができます。しかし、スクリプト コンポーネントが登録されるすべてのコンピュータ上で同じクラス ID を持つことを保証するために、スクリプト コンポーネント用のクラス ID は自分で作成することをお勧めします。クラス ID を保存する開発ツールと共にスクリプト コンポーネントを使用する場合、登録プログラムでクラス ID を作成することができると、問題が発生する可能性があります。登録するたびに新しいクラス ID が作成されると、アプリケーションが保存している ID と一致しなくなります。

スクリプト コンポーネント用の登録情報を作成するには

  • 次のコードは、少なくともプログラム ID を含み、必要に応じて、クラス ID、解説、およびバージョンを含む <registration> 要素を作成する例です。

    <registration
    description="My Test Component"
    progid="Component.TestScript"
    version="1"
    classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"/>
    

    メモ   <registration> の属性は、<registration> 要素の中で任意の順序で指定できます。

登録時にスクリプトを実行する

スクリプト コンポーネントの <registration> 要素には、スクリプト コンポーネントが登録されるときと、登録が解除されているときに実行されるスクリプトを含めることもできます。たとえば、スクリプト コンポーネントが登録されている間にメッセージをポストできます。

登録時および登録の解除時にスクリプトを実行するには

  • <registration> 要素の中に <script> 要素を記述します。登録する間にスクリプトを実行するには、register( ) 関数を記述します。スクリプト コンポーネントの登録が解除される間にスクリプトを実行するには、unregister( ) 関数を記述します。

    次のコードは、スクリプト コンポーネントが登録されるときと、登録が解除されるときにメッセージをポストする例です。

    メモ   <script> 要素内のスクリプトを隠蔽するには、CDATA セクションが必要です。詳細については、「スクリプト コンポーネント ファイルと XML 適合性」を参照してください。

    <registration
       description="My Test Component"
       progid="Component.TestScript"
       version="1"
       classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}">
    
       <script language="VBScript">
       <![CDATA[
          Function register()
             MsgBox "コンポーネント 'My Test Component' が登録されました。
          End Function
          Function unregister()
             MsgBox "コンポーネント 'My Test Component' が登録されました。"
          End Function
       ]]>
       </script>
    </registration>
    

リモート アクセス用に登録する

スクリプト コンポーネントを分散環境で配布する場合、リモートでスクリプト コンポーネントのインスタンスを作成するように指定することができます。たとえば、スクリプト コンポーネントをサーバー上で実行し、クライアント上のコードから呼び出されるように設計します。クライアントおよびサーバー コンピュータを DCOM と共に正しく構成すれば、リモートでアクセスできるようになります。DCOM は、サーバーからクライアントにオブジェクト ポインタを渡すメカニズムを提供します。

リモート アクセス用にスクリプト コンポーネントを登録するには

  • 次の例で示すように、<registration> 要素内に remotable 属性を含めます。

    <registration
       description="My Test Component"
       progid="Component.TestScript"
       version="1"
       classid="{2154c700-9253-11d1-a3ac-0aa0044eb5f}"
       remotable=true/>
    

スクリプト コンポーネントのインスタンスをリモートで作成する方法の詳細については、「アプリケーションでのスクリプト コンポーネントの使用」を参照してください。

参照

スクリプト コンポーネント ファイルの内容 | Script Component Wizard の使用 | スクリプト コンポーネント タイプ ライブラリの作成 | スクリプト コンポーネント ファイルのエラー チェック | スクリプト コンポーネント ファイルと XML 適合性