Windows フォームで ActiveX コントロールをホストする場合の考慮事項
更新 : 2007 年 11 月
Windows フォームは、Windows フォーム コントロールをホストするために最適化されていますが、代わりに ActiveX コントロールも使用できます。アプリケーションで ActiveX コントロールを使用する場合には、以下の点を考慮してください。
セキュリティ 共通言語ランタイムは、コード アクセスのセキュリティについて強化されています。Windows フォームを使用するアプリケーションは、問題のない完全に信頼できる環境で実行するか、またはほとんどの機能にアクセスできる、やや信頼性の低い環境で実行できます。Windows フォーム コントロールは、ブラウザで簡単にホストできます。ただし、Windows フォーム上の ActiveX コントロールでは、これらのセキュリティの拡張機能を利用できません。ActiveX コントロールの実行には、SecurityPermissionAttribute.UnmanagedCode プロパティで設定されるアンマネージ コード アクセス許可が必要です。セキュリティおよびアンマネージ コード アクセス許可の詳細については、「SecurityPermissionAttribute クラス」を参照してください。
TCO (Total Cost of Ownership) Windows フォームに追加された ActiveX コントロールは、その全体が Windows フォームと共に配置されるため、作成されるファイルのサイズがかなり大きくなる場合があります。また、Windows フォーム上で ActiveX コントロールを使用するには、レジストリへの書き込みが必要です。そのため、レジストリへの書き込みを必要としない Windows フォーム コントロールに比べて、ユーザーがコンピュータに干渉する度合いが大きくなります。
メモ : ActiveX コントロールを使用するには、COM 相互運用ラッパーが必要です。詳細については、「Visual Basic および Visual C# における COM 相互運用性」を参照してください。
メモ : ActiveX コントロールの中に、.NET Framework で定義されている名前と同じ名前のメンバがある場合、AxHost の派生クラスの作成時に、ActiveX コントロール インポータによって、これらのメンバにプレフィックス Ctl が付けられます。たとえば、ActiveX コントロールに Layout という名前のメンバが含まれる場合、.NET Framework に Layout イベントが定義されているため、AxHost 派生クラスでは CtlLayout という名前に変更されます。
参照
処理手順
方法 : Windows フォームに ActiveX コントロールを追加する
参照
各言語およびライブラリにおける、コントロールとプログラミング可能オブジェクトの比較