次の方法で共有


TypeLibrary 宣言

タイプ ライブラリとは、COM コンポーネントでサポートされるオブジェクトと型に関する情報のあるファイルです。通常 COM コンポーネントでは、コンポーネントがサポートする定数をタイプ ライブラリに記述します。Web アプリケーションで使用する COM オブジェクトが、タイプ ライブラリにデータ型を宣言している場合、タイプ ライブラリを Global.asa に宣言できます。このように宣言すると、アプリケーションの範囲内にある任意のスクリプトから、タイプ ライブラリに宣言された定数を参照できるようになります。

ASP での定数の使用の詳細については、「変数と定数を使用する」を参照してください。

構文

<!--METADATA TYPE="TypeLib"

FILE="file"

UUID="typelibraryuuid"

VERSION="majorversionnumber.minorversionnumber"

LCID="localeid"

-->

パラメータ
  • file
    タイプ ライブラリの絶対パスです。このパラメータと typelibraryuuid を両方指定した場合、file が優先されます。file または typelibraryuuid を必ず指定します。
  • typelibraryuuid
    タイプ ライブラリの汎用一意識別子です。file または typelibraryuuid を必ず指定します。
  • majorversionnumber
    バージョンの選択に使用されます。要求したバージョンが見つからない場合、最新のバージョンが使用されます (省略可能)。
  • minorversionnumber
    バージョンの選択に使用されます。要求したバージョンが見つからない場合、最新のバージョンが使用されます (省略可能)。
  • localeid
    タイプ ライブラリに使用されるロケール識別子です。要求したロケールが見つからない場合、システム ロケール識別子が使用されます (省略可能)。
エラー値

サーバーから次のようなエラー メッセージが生成されます。

エラー 説明
ASP 0222 無効な TypeLib の指定です。METADATA タグが無効なタイプ ライブラリの指定を含んでいます。
ASP 0223 TypeLib が見つかりません。METADATA タグがどのレジストリ エントリにも一致しないタイプ ライブラリの指定を含んでいます。
ASP 0224 TypeLib を読み込めません。METADATA タグで指定されたタイプ ライブラリを読み込めません。
ASP 0225 TypeLib をラップできません。METADATA タグで指定されたタイプ ライブラリから、タイプ ライブラリのラップ オブジェクトを作成できません。
解説

METADATA タグは、Global.asa ファイルの先頭近くに指定することをお勧めします。ただし、これらのタグは、Global.asa ファイルの内部ならどこにでも指定できます。SCRIPT タグの内側でも外側でもかまいません。

定数のプレフィックスとしてタイプ ライブラリ名を付けると、定数へのあいまいな参照を避けることができます。たとえば、adErrItemNotFound と短く指定する代わりに、ADODB.adErrItemNotFound と指定すると、より明確になります。

Microsoft Visual InterDev を使用して Global.asa ファイルを作った場合は、METADATA タグはオプションの STARTSPAN キーワードおよび ENDSPAN キーワードを含みます。これらのキーワードは IIS によって無視されます。

タイプ ライブラリのロケール識別子を指定しない場合は、システム用の既定のロケール識別子が使用されます。システム ロケール識別子が使用できない場合に、ロケール識別子がほかに指定されていないときは、タイプ ライブラリのロケール識別子は 0 に設定されます。

下記の例の MyComponent は Visual Basic 5.0 で開発されています。MyComponent では、次のステートメントを使用して定数 MyError を定義しています。

  Public Const MyError = "You are not using MyComponent correctly."

タイプ ライブラリは、次のディレクトリにインストールされた MyComponent.lib に含まれています。

  C:\MyComponent

次の METADATA タグは、MyApp アプリケーション用の Global.asa ファイルに含まれます。

  <!--METADATA TYPE="TypeLib"
FILE="MyComponent.tlb"
-->
 

MyApp アプリケーションの任意の .asp ファイルに、次のスクリプトを入れることができるようになります。

  <%
  Dim MyVar
  Set MyVar = Server.CreateObject("MyComponent.MyClass")
  Currentreturn = MyVar.MyMethod
  If Currentreturn = False
    Response.Write(MyError)
  End If
%>