Class エレメント

説明
親 Component の為の COM Class 登録。
Windows Installer リファレンス
Class Table, ProgId Table, Registry Table, AppId Table
AppId, Component, File, TypeLib
タグの内部テキスト
なし
エレメントの選択 (最小:0, 最大:無制限)
  • FileTypeMask (最小:0, 最大:無制限)
  • Interface (最小:0, 最大:無制限): これらのインターフェースは (もし存在すれば)親 Class と TypeLib と共に登録されます。
  • ProgId (最小:0, 最大:無制限): Class と結び付けられた ProgId は、Class エレメントの子エレメントでなければなりません。
属性
名前 タイプ 説明 必須
Id Guid COM サーバーの Class 識別子(CLSID)。 Yes
Advertise YesNoType 通常の Class テーブル行を作成する為に この値を "yes" にセットして下さい。 (よく問題のある Windows Installer のアドバタイズ動作無しで)同様の登録を実行する Registry 行を生成する為に この値を "no" にセットして下さい。  
AppId Guid この属性は、Class がアドバタイズされている時にだけ 許されます。 この属性を使う事は、結び付けられたアプリケーション GUID の為の DCOM 情報を含んでいる アプリケーション ID を参照します。 この値は、Fragment, Module, Product エレメントの下にネストされた AppId エレメントの AppId/@Id と一致しなければなりません。 AppId を非アドバタイズド クラスと結び付けるには、親の AppId エレメント内にクラスをネスト させて下さい。  
Argument String このカラムは、Context カラムが "LocalServer" か "LocalServer32" サーバー コンテクストに セットされた時だけのオプションです。 テキストは OLE サーバーに対する引数として登録されて、OLE によってサーバーを起動する為に 使用されます。 Argument フィールド中のプロパティの解決は限られている事に注意して下さい。 このフィールドで [Property] として書式設定されたプロパティは、クラスを所有しているコンポーネントが インストールされている時に プロパティが既に意図された値を持っている場合にだけ 解決され得ます。 例えば 引数 "[#MyDoc.doc]" が適切な値に解決される為には、同じプロセスが MyDoc.doc ファイルと クラスを所有するコンポーネントをインストール中でなければなりません。  
Context List この COM サーバーの為のサーバー コンテクスト。 この属性は、"PublicNotCreateable" とマークを付けられた VB6 ライブラリの為のオプションです。 Advertised とマークを付けられた Class エレメントは、少なくとも 1 つのサーバー コンテクストを 指定しなければなりません。 Context 属性に 1 つだけ値があるのが最も一般的です。 この属性の値は、以下の内の1つ以上を含むスペースで区切られたリストでなければなりません:
LocalServer
16 ビット ローカル サーバー アプリケーション。
LocalServer32
32 ビット ローカル サーバー アプリケーション。
InprocServer
16 ビット in-process サーバー DLL 。
InprocServer32
32 ビット in-process サーバー DLL 。
 
Control YesNoType オブジェクトを ActiveX コントロールとして識別するのに この属性の値を 'yes' にセットして下さい。 デフォルト値は 'no' です。  
Description String Class ID と プログラム ID に結び付けられた ローカライズされた説明。  
ForeignServer String Advertise 属性の値が 'no' で Server が指定されていない場合にだけ 指定されるかもしれません。 加えて、Class エレメントが直接 Component エレメントの下にある時にだけ 使用されるかもしれません。 値は レジストリー タイプ(REG_SZ)のものである事ができます。 この属性は、もし必要なら、mscoree.dll といった 外部サーバーを指定するのに使用されるべきです。  
Handler String デフォルト inproc ハンドラー。 Context = LocalServer か LocalServer32 の為だけに オプションで提供されるかもしれません。 "1" の値は(InprocHandler 値として現れている)16 ビット InprocHandler を作成します。 "2" の値は(InprocHandler32 値として現れている)32 ビット InprocHandler を作成します。 "3" の値は 32 ビット InprocHandler と同様に 16 ビットを作成します。 数で無い値は、(InprocHandler32 値として現れている)32 ビット InprocHandler として働く システム ファイルとして扱われます。  
Icon String この CLSID と結び付けられたアイコンを提供しているファイル。 (Icon エレメントの Id 属性に一致しているべき)Icon エレメントへの参照。 これは現在、Advertise 属性の値が 'no' である場合に サポートされていません。  
IconIndex Integer アイコン ファイル中のアイコン インデックス。  
Insertable YesNoType CLSID が挿入可能であるかもしれないと 指定します。  
Programmable YesNoType CLSID がプログラム可能であるかもしれないと 指定します。  
RelativePath YesNoType 値が "yes" の時、COM サーバーの為にファイル名だけが使用され得ます。 インストーラーは、完全なパスの代わりに ファイル名だけを登録します。 これは カレント ディレクトリーのサーバーが優先権を取ることを可能にして、同じコンポーネントの 多数のコピーを許可します。  
SafeForInitializing YesNoType Advertise 属性の値が 'no' である場合にだけ 指定されるかもしれません。  
SafeForScripting YesNoType Advertise 属性の値が 'no' である場合にだけ 指定されるかもしれません。  
Server String Advertise 属性の値が 'no' で ForeignServer 属性が指定されない場合にだけ 指定されるかも しれません。 COM サーバー ファイルのファイル Id 。 もしこのエレメントが File エレメントの下でネストされているなら、この値は 親の File/@Id の 値が デフォルトになります。  
ShortPath YesNoType COM サーバーの為に短いパスを使うかどうかを 指定します。 これは、Advertise が 'no' にセットされた時にだけ 適用できます。 デフォルトは、COM サーバーの為に長いファイル名を使う事を意味している 'no' です。  
ThreadingModel Enumeration CLSID の為の スレッディング モデル。 この属性の値は以下の内の1つでなければなりません:
apartment
free
both
neutral
single
rental
 
Version String CLSID の為のバージョン。  
Remarks
アドバタイズ解除モードで使用されている時、Class エレメント中の属性は 以下の通りの レジストリーキーになります(オーサリングで指定され得る値は 太字です):
Id/Context/Server
一般に
[HKCR\CLSID\{Id}\Context1]
@="[!Server]"
[HKCR\CLSID\{Id}\Context2]
@="[!Server]"
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer]
@="[!comserv.dll]"
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]
@="[!comserv.dll]"
Id/Context/ForeignServer
一般に
[HKCR\CLSID\{Id}\Context1]
@="ForeignServer"
[HKCR\CLSID\{Id}\Context2]
@="ForeignServer"
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer]
@="mscoree.dll"
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]
@="mscoree.dll"
AppId
一般に
[HKCR\CLSID\{Id}]
AppId="{AppId}"
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
AppId="{00000000-89AB-0000-0123-000000000000}"
Argument
一般に
[HKCR\CLSID\{Id}\Context]
@="[!Server] Argument"
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]
@="[!comserv.dll] /arg1 /arg2 /arg3"
Control
一般に
"yes" の値が指定されると:
[HKCR\CLSID\{Id}\Control]
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Control]
Description
一般に
[HKCR\CLSID\{Id}]
@="Description"
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}]
@="Description of Example COM Component"
Handler
一般に
"1" の値が指定されると:
[HKCR\CLSID\{Id}\InprocHandler]
@="ole.dll"
"2" の値が指定されると:
[HKCR\CLSID\{Id}\InprocHandler32]
@="ole32.dll"
"3" の値が指定されると:
[HKCR\CLSID\{Id}\InprocHandler]
@="ole.dll"
[HKCR\CLSID\{Id}\InprocHandler32]
@="ole32.dll"
その他の値が指定されると:
[HKCR\CLSID\{Id}\InprocHandler32]
@="Handler"
(その他の値に関しての)具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\InprocHandler32]
@="handler.dll"
Icon/IconIndex
これは現在 適切に処理されません。
Insertable
一般に
"no" の値が指定されると:
[HKCR\CLSID\{Id}\NotInsertable]
"yes" の値が指定されると:
[HKCR\CLSID\{Id}\Insertable]
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Insertable]
Programmable
一般に
"yes" の値が指定されると:
[HKCR\CLSID\{Id}\Programmable]
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Programmable]
RelativePath
サポートされていません。もしご存知であれば、WiX にご寄稿下さい。
SafeForInitializing
一般に
"yes" の値が指定されると:
[HKCR\CLSID\{Id}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95802-9882-11CF-9FA9-00AA006C42C4}]
SafeForScripting
一般に
"yes" の値が指定されると:
[HKCR\CLSID\{Id}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Implemented Categories\{7DD95801-9882-11CF-9FA9-00AA006C42C4}]
ThreadingModel
一般に
[HKCR\CLSID\{Id}\Context]
ThreadingModel="ThreadingModel"
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\LocalServer32]
ThreadingModel="Apartment"
TypeLibId(親 TypeLib/@Id から)
一般に
[HKCR\CLSID\{Id}\TypeLib]
@="{TypeLibId}"
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\TypeLib]
@="{11111111-89AB-1111-0123-111111111111}"
Version
一般に
[HKCR\CLSID\{Id}\Version]
@="Version"
具体的な例
[HKCR\CLSID\{01234567-89AB-CDEF-0123-456789ABCDEF}\Version]
@="1.0.0.0"
See Also
Wix Schema, AppId