Windows フォーム ActiveX コントロール インポータ (Aximp.exe)
ActiveX コントロール インポータは、ActiveX コントロール用の COM タイプ ライブラリに属する型定義を Windows フォーム コントロールに変換します。
Windows フォームがホストできるのは、Control から派生するクラスである Windows フォームのコントロールだけです。Aximp.exe は Windows フォーム上でホストできる ActiveX コントロール用のラッパー クラスを生成します。このため、他の Windows フォーム コントロールに適用できるのと同じデザイン時サポートとプログラミング手順を使用できます。
ActiveX コントロールをホストするには、AxHost から派生するラッパー コントロールを生成する必要があります。ラッパー コントロールには、基になる ActiveX コントロールのインスタンスが 1 つ含まれます。このインスタンスは、ActiveX コントロールとの通信方法を認識しますが、Windows フォーム コントロールとして表示されます。生成されたコントロールは、ActiveX コントロールをホストし、そのプロパティ、メソッド、およびイベントを、生成されたコントロールのプロパティ、メソッド、およびイベントとして公開します。
aximp [options]{file.dll | file.ocx}
解説
引数 | 説明 |
---|---|
file |
変換する ActiveX コントロールを含むソース ファイルの名前。引数 file の拡張子は .dll または .ocx であることが必要です。 |
オプション | 説明 |
---|---|
/delaysign |
Aximp.exe が遅延署名を使用して、生成されたコントロールに名前を割り当てるように指定します。このオプションは、/keycontainer:、/keyfile:、または /publickey: のいずれかのオプションと共に指定する必要があります。遅延署名プロセスの詳細については、「アセンブリへの遅延署名」を参照してください。 |
/help |
このツールのコマンド構文とオプションを表示します。 |
/keycontainer: containerName |
containerName で指定されたキー コンテナの公開キーと秘密キーのペアを使用して、生成されたコントロールに厳密な名前で署名します。 |
/keyfile: filename |
filename にある発行者の正式な公開キーと秘密キーのペアを使用して、生成されたコントロールに厳密な名前で署名します。 |
/nologo |
Microsoft 著作権情報を表示しません。 |
/out: filename |
作成するアセンブリの名前を指定します。 |
/publickey: filename |
filename で指定されたファイルの公開キーを使用して、生成されたコントロールに厳密な名前で署名します。 |
/silent |
成功メッセージを表示しません。 |
/source |
Windows フォーム ラッパーの C# ソース コードを生成します。 |
/verbose |
詳細出力モードを指定します。進行状況に関する追加情報が表示されます。 |
/? |
このツールのコマンド構文とオプションを表示します。 |
Aximp.exe は、ActiveX コントロール タイプ ライブラリの全体を一度に変換し、元のタイプ ライブラリの中で定義されていたタイプのための共通言語ランタイム メタデータとコントロール実装を含む、アセンブリのセットを生成します。生成されるファイルには、次のパターンに従って名前が付けられます。
COM タイプ用の共通言語ランタイム プロキシ : progid.dll
ActiveX コントロール用 Windows フォーム プロキシ (Ax は ActiveX を表します) : Axprogid.dll
メモ : |
---|
ActiveX コントロールのメンバの名前が .NET Framework で定義された名前と一致する場合、Aximp.exe は、AxHost 派生クラスを作成するときにメンバ名の前に "Ctl" を付けます。たとえば、ActiveX コントロールに "Layout" というメンバが含まれている場合、.NET Framework 内で Layout イベントが定義されているため、メンバ名は、AxHost 派生クラスでは "CtlLayout" に変更されます。 |
これらの生成されたファイルは、MSIL 逆アセンブラ (Ildasm.exe) などのツールでチェックできます。
ActiveX Control shdocvw.dll に対して Aximp.exe を実行すると、ツールが実行されるディレクトリに shdocvw.dll という名前の別のファイルが常に作成されます。この生成されたファイルが Documents ディレクトリおよび Settings ディレクトリに置かれると、Microsoft Internet Explorer や Windows エクスプローラに対して問題を引き起こします。コンピュータを再起動すると、Windows は shdocvw.dll のコピーを見つけるために、system32 ディレクトリの前に Documents ディレクトリと Settings ディレクトリを調べます。Windows は Documents と Settings で見つけたコピーを使用して、マネージ ラッパーを読み込もうとします。Internet Explorer と Windows エクスプローラは、system32 ディレクトリにある shdocvw.dll のバージョンのレンダリング エンジンに依存しているため、正しく機能しません。このような問題が発生したら、Documents ディレクトリおよび Settings ディレクトリにある shdocvw.dll を削除して、コンピュータを再起動します。
使用例
Media Player コントロール msdxm.ocx
の MediaPlayer.dll と AxMediaPlayer.dll を生成するコマンドを次に示します。
aximp c:\systemroot\system32\msdxm.ocx