| ページ一覧 | ブログ | twitter |  書式 | 書式(表) |

MyMemoWiki

「COM」の版間の差分

提供: MyMemoWiki
ナビゲーションに移動 検索に移動
 
1行目: 1行目:
==COM ==
+
==[[COM]] ==
 
[[Python Win32 Extensions]] |  
 
[[Python Win32 Extensions]] |  
 
Component Object Model  
 
Component Object Model  
5行目: 5行目:
  
 
===概要===
 
===概要===
*COM は、特定の開発言語に依存せず、C言語やJavaなど、様々な言語により開発を行うことができる。
+
*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 (DCOM)  
+
*Distributed [[COM]] (D[[COM]])  
*ActiveXR Controls.
+
*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]]コンポーネントはCLSIDをキーにディスク上の位置情報を持っている====
*COMコンポーネントは、DLLかEXE
+
*[[COM]]コンポーネントは、DLLかEXE
*COMは、レジストリから、CLSIDを参照することで、ディスク上からコンポーネントを探し出す。
+
*[[COM]]は、レジストリから、CLSIDを参照することで、ディスク上からコンポーネントを探し出す。
  
 
*以下はShell.Application のCLSID
 
*以下はShell.Application のCLSID
 
[[File:0313_py_win32com00.jpg]]
 
[[File:0313_py_win32com00.jpg]]
 
====プログラム名から、間接的にCLSIDを取得できる。====
 
====プログラム名から、間接的にCLSIDを取得できる。====
=====レジストリ HKEY_CLASSES_ROOT 以下に登録されている、Shell.Application=====
+
=====レジストリ HKEY_CLASSES_[[R]]OOT 以下に登録されている、Shell.Application=====
 
[[File:0314_py_win32com01.jpg]]
 
[[File:0314_py_win32com01.jpg]]
*HKEY_CLASSES_ROOT\Shell.Application
+
*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 OLE 技術を利用することで Word 文書を Excel スプレッドシートの中のデータに動的にリンク
    • COM オートメーション技術によって、ユーザーが自分のアプリケーションで、繰り返しの作業を行ったり、あるアプリケーションを別のアプリケーションから制御するようなスクリプトを記述することができる

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 を基盤としたサービスと技術の名称

  • COM+ COM コンポーネント技術と Microsoft Transaction Server (MTS) のアプリケーション ホスト機能の両方を提供
  • COM+ は自動的にリソースのプーリングや、非接続アプリケーション、イベントのパブリッシュやサブスクライブ、分散トランザクションといった困難なプログラミング作業を自動的に処理
  • .NET Framework のSystem.EnterpriseServices 名前空間の機能を通じて提供

COM と Windows レジストリ

COMコンポーネントはCLSIDをキーにディスク上の位置情報を持っている

  • COMコンポーネントは、DLLかEXE
  • COMは、レジストリから、CLSIDを参照することで、ディスク上からコンポーネントを探し出す。
  • 以下はShell.Application のCLSID

0313 py win32com00.jpg

プログラム名から、間接的にCLSIDを取得できる。

レジストリ HKEY_CLASSES_ROOT 以下に登録されている、Shell.Application

0314 py win32com01.jpg

  • HKEY_CLASSES_ROOT\Shell.Application

0315 py win32com02.jpg