==[[COM ]] ==
[[Python Win32 Extensions]] |
Component Object Model
===概要===
*COM は、特定の開発言語に依存せず、C言語やJavaなど、様々な言語により開発を行うことができる。は、特定の開発言語に依存せず、C言語や[[Java]]など、様々な言語により開発を行うことができる。*[[COM ]] によって、ソフトウェア コンポーネントは通信することができる。*[[COM ]] を利用することで再利用可能なコンポーネントを作成し、アプリケーションを構成するコンポーネントを相互連携できる。*COM は、Microsoft [[Office ]] ファミリ製品のようなアプリケーションで利用されている。**COM OLE 技術を利用することで Word 文書を [[Excel ]] スプレッドシートの中のデータに動的にリンク**[[COM ]] オートメーション技術によって、ユーザーが自分のアプリケーションで、繰り返しの作業を行ったり、あるアプリケーションを別のアプリケーションから制御するようなスクリプトを記述することができる
====[[COM ]] テクノロジファミリー====*[[COM]]+*Distributed [[COM ]] (DCOMD[[COM]]) *ActiveXR ActiveX[[R]] Controls.
====[[COM ]] インターフェースを提供するアプリケーションサービス====
以下など多数
*Microsoft Message Queuing (MSMQ)
*Microsoft Active Directory (AD)
*[[Windows ]] Management and Instrumentation (WMI)
====COM と [[.NET ]] の関連====*COM と [[.NET ]] は相補的な関係にある*[[.NET ]] 共通言語ランタイムは、COM との双方向で透過的な統合機能を提供。*COM と [[.NET ]] アプリケーションやコンポーネントはそれぞれのシステムから機能を利用することができる
=====[[.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 コンポーネントを呼び出す]
====[[COM]]+====[[COM]]+ は [[COM ]] を基盤としたサービスと技術の名称*[[COM]]+ [[COM ]] コンポーネント技術と Microsoft Transaction Server (MTS) のアプリケーション ホスト機能の両方を提供*COM+ は自動的にリソースのプーリングや、非接続アプリケーション、イベントのパブリッシュやサブスクライブ、分散トランザクションといった困難なプログラミング作業を自動的に処理は自動的にリソースのプーリングや、非接続アプリケーション、イベントのパブリッシュやサブスクライブ、分散[[トランザクション]]といった困難なプログラミング作業を自動的に処理*[[.NET ]] Framework のSystem.EnterpriseServices 名前空間の機能を通じて提供
===COM と [[Windows ]] レジストリ=======COMコンポーネントはCLSIDをキーにディスク上の位置情報を持っている[[COM]]コンポーネントはCLSIDをキーにディスク上の位置情報を持っている====*COMコンポーネントは、DLLかEXE[[COM]]コンポーネントは、DLLかEXE*COMは、レジストリから、CLSIDを参照することで、ディスク上からコンポーネントを探し出す。[[COM]]は、レジストリから、CLSIDを参照することで、ディスク上からコンポーネントを探し出す。
*以下はShell.Application のCLSID
[[File:0313_py_win32com00.jpg]]
====プログラム名から、間接的にCLSIDを取得できる。====
=====レジストリ HKEY_CLASSES_ROOT HKEY_CLASSES_[[R]]OOT 以下に登録されている、Shell.Application=====
[[File:0314_py_win32com01.jpg]]
*HKEY_CLASSES_ROOTHKEY_CLASSES_[[R]]OOT\Shell.Application
[[File:0315_py_win32com02.jpg]]