タイトル | : Re^3: 便乗質問:Side by Side |
記事No | : 7085 |
投稿日 | : 2008/02/25(Mon) 09:54 |
投稿者 | : 魔界の仮面弁士 |
> ScriptingオブジェクトとShellオブジェクトは.Net Frameworkの標準品では > ないということでしょうかね。あえて.Net Frameworkの構成物から除いている?
標準物ではありません。
それらのオブジェクトは、.NET テクノロジの産物ではなく、それ以前にある COM(ActiveX)テクノロジと呼ばれる技術の産物であり、.NET 非対応言語である 非.NET な VBScript, Excel VBA, JScript, Delphi 等からも利用できる代物です。
Scriptingオブジェクトの歴史は、VB6 よりもさらに前、Internet Explorer 3.0 の 時代には、既に存在していました。 もう一方の Shell オブジェクトの方はそれよりも少し新しく、シェル統合実装と 呼ばれていた Windows 95/OSR 2.1 や Windows 98、あるいは Internet Explorer 4.0 の 時代に登場しました。 両者ともに .NET よりも古くからあるオブジェクトです。
.NET から COM を扱う場合、相互運用アセンブリ(IA:Interop Assembly)と呼ばれる ライブラリを中継する事になります(その分、.NET用ライブラリよりも効率が落ちます)。 Interop.Scripting.dll や Interop.Shell32.dll は、Visual Studio から COM を 参照設定したときに自動的に生成される .NET 用ライブラリですが、役割としては、 そうした「COM と .NET の間を取り持つ中継役」にあたるラッパー(wrapper)です。
ちなみに IA には、自動生成されるものだけではなく、グローバル アセンブリ キャッシュ (GAC)と呼ばれる領域にインストールされる、Microsoft らによって事前に用意された 検証済み/電子署名済みの「プライマリ相互運用機能アセンブリ」(PIA)と呼ばれる物も あります。(たとえば、Excel 用の Microsoft.Office.Interop.Excel.dll など)
なお PIA は、Microsoft による正式なサポートを受けることができますが、 IA の方は自動生成されるライブラリという事もあって、動作は保証されていません。
|