「COM」の版間の差分
ナビゲーションに移動
検索に移動
1行目: | 1行目: | ||
− | ==COM == | + | ==[[COM]] == |
[[Python Win32 Extensions]] | | [[Python Win32 Extensions]] | | ||
Component Object Model | Component Object Model | ||
5行目: | 5行目: | ||
===概要=== | ===概要=== | ||
− | *COM | + | *COM は、特定の開発言語に依存せず、C言語や[[Java]]など、様々な言語により開発を行うことができる。 |
− | *COM によって、ソフトウェア コンポーネントは通信することができる。 | + | *[[COM]] によって、ソフトウェア コンポーネントは通信することができる。 |
− | *COM を利用することで再利用可能なコンポーネントを作成し、アプリケーションを構成するコンポーネントを相互連携できる。 | + | *[[COM]] を利用することで再利用可能なコンポーネントを作成し、アプリケーションを構成するコンポーネントを相互連携できる。 |
− | *COM は、Microsoft Office ファミリ製品のようなアプリケーションで利用されている。 | + | *COM は、Microsoft [[Office]] ファミリ製品のようなアプリケーションで利用されている。 |
− | **COM OLE 技術を利用することで Word 文書を Excel スプレッドシートの中のデータに動的にリンク | + | **COM OLE 技術を利用することで Word 文書を [[Excel]] スプレッドシートの中のデータに動的にリンク |
− | **COM オートメーション技術によって、ユーザーが自分のアプリケーションで、繰り返しの作業を行ったり、あるアプリケーションを別のアプリケーションから制御するようなスクリプトを記述することができる | + | **[[COM]] オートメーション技術によって、ユーザーが自分のアプリケーションで、繰り返しの作業を行ったり、あるアプリケーションを別のアプリケーションから制御するようなスクリプトを記述することができる |
− | ====COM テクノロジファミリー==== | + | ====[[COM]] テクノロジファミリー==== |
− | *COM+ | + | *[[COM]]+ |
− | *Distributed COM ( | + | *Distributed [[COM]] (D[[COM]]) |
− | * | + | *ActiveX[[R]] Controls. |
− | ====COM インターフェースを提供するアプリケーションサービス==== | + | ====[[COM]] インターフェースを提供するアプリケーションサービス==== |
以下など多数 | 以下など多数 | ||
*Microsoft Message Queuing (MSMQ) | *Microsoft Message Queuing (MSMQ) | ||
*Microsoft Active Directory (AD) | *Microsoft Active Directory (AD) | ||
− | *Windows Management and Instrumentation (WMI) | + | *[[Windows]] Management and Instrumentation (WMI) |
− | ====COM と .NET の関連==== | + | ====COM と [[.NET]] の関連==== |
− | *COM と .NET は相補的な関係にある | + | *COM と [[.NET]] は相補的な関係にある |
− | *.NET 共通言語ランタイムは、COM との双方向で透過的な統合機能を提供。 | + | *[[.NET]] 共通言語ランタイムは、COM との双方向で透過的な統合機能を提供。 |
− | *COM と .NET アプリケーションやコンポーネントはそれぞれのシステムから機能を利用することができる | + | *COM と [[.NET]] アプリケーションやコンポーネントはそれぞれのシステムから機能を利用することができる |
− | =====.NET と COM の相互呼び出し===== | + | =====[[.NET]] と COM の相互呼び出し===== |
*[http://www.microsoft.com/japan/msdn/net/upgrade/callcomcomp.aspx .NET からの COM コンポーネントの呼び出す] | *[http://www.microsoft.com/japan/msdn/net/upgrade/callcomcomp.aspx .NET からの COM コンポーネントの呼び出す] | ||
*[http://msdn.microsoft.com/library/en-us/dndotnet/html/callnetfrcom.asp COM から .NET コンポーネントを呼び出す] | *[http://msdn.microsoft.com/library/en-us/dndotnet/html/callnetfrcom.asp COM から .NET コンポーネントを呼び出す] | ||
− | ====COM+==== | + | ====[[COM]]+==== |
− | COM+ は COM を基盤としたサービスと技術の名称 | + | [[COM]]+ は [[COM]] を基盤としたサービスと技術の名称 |
− | *COM+ COM コンポーネント技術と Microsoft Transaction Server (MTS) のアプリケーション ホスト機能の両方を提供 | + | *[[COM]]+ [[COM]] コンポーネント技術と Microsoft Transaction Server (MTS) のアプリケーション ホスト機能の両方を提供 |
− | *COM+ | + | *COM+ は自動的にリソースのプーリングや、非接続アプリケーション、イベントのパブリッシュやサブスクライブ、分散[[トランザクション]]といった困難なプログラミング作業を自動的に処理 |
− | *.NET Framework のSystem.EnterpriseServices 名前空間の機能を通じて提供 | + | *[[.NET]] Framework のSystem.EnterpriseServices 名前空間の機能を通じて提供 |
− | ===COM と Windows レジストリ=== | + | ===COM と [[Windows]] レジストリ=== |
− | ==== | + | ====[[COM]]コンポーネントはCLSIDをキーにディスク上の位置情報を持っている==== |
− | * | + | *[[COM]]コンポーネントは、DLLかEXE |
− | * | + | *[[COM]]は、レジストリから、CLSIDを参照することで、ディスク上からコンポーネントを探し出す。 |
*以下はShell.Application のCLSID | *以下はShell.Application のCLSID | ||
[[File:0313_py_win32com00.jpg]] | [[File:0313_py_win32com00.jpg]] | ||
====プログラム名から、間接的にCLSIDを取得できる。==== | ====プログラム名から、間接的にCLSIDを取得できる。==== | ||
− | =====レジストリ | + | =====レジストリ HKEY_CLASSES_[[R]]OOT 以下に登録されている、Shell.Application===== |
[[File:0314_py_win32com01.jpg]] | [[File:0314_py_win32com01.jpg]] | ||
− | * | + | *HKEY_CLASSES_[[R]]OOT\Shell.Application |
[[File:0315_py_win32com02.jpg]] | [[File:0315_py_win32com02.jpg]] |
2020年2月16日 (日) 04:23時点における最新版
目次
COM
Python Win32 Extensions | Component Object Model http://www.microsoft.com/japan/com/
概要
- COM は、特定の開発言語に依存せず、C言語やJavaなど、様々な言語により開発を行うことができる。
- COM によって、ソフトウェア コンポーネントは通信することができる。
- COM を利用することで再利用可能なコンポーネントを作成し、アプリケーションを構成するコンポーネントを相互連携できる。
- COM は、Microsoft Office ファミリ製品のようなアプリケーションで利用されている。
COM テクノロジファミリー
COM インターフェースを提供するアプリケーションサービス
以下など多数
- Microsoft Message Queuing (MSMQ)
- Microsoft Active Directory (AD)
- Windows Management and Instrumentation (WMI)
COM と .NET の関連
- COM と .NET は相補的な関係にある
- .NET 共通言語ランタイムは、COM との双方向で透過的な統合機能を提供。
- COM と .NET アプリケーションやコンポーネントはそれぞれのシステムから機能を利用することができる
.NET と COM の相互呼び出し
COM+
- COM+ COM コンポーネント技術と Microsoft Transaction Server (MTS) のアプリケーション ホスト機能の両方を提供
- COM+ は自動的にリソースのプーリングや、非接続アプリケーション、イベントのパブリッシュやサブスクライブ、分散トランザクションといった困難なプログラミング作業を自動的に処理
- .NET Framework のSystem.EnterpriseServices 名前空間の機能を通じて提供
COM と Windows レジストリ
COMコンポーネントはCLSIDをキーにディスク上の位置情報を持っている
- 以下はShell.Application のCLSID
プログラム名から、間接的にCLSIDを取得できる。
レジストリ HKEY_CLASSES_ROOT 以下に登録されている、Shell.Application
- HKEY_CLASSES_ROOT\Shell.Application
© 2006 矢木浩人