最終更新:2015-04-20 (月) 11:37:49 (3556d)
COM
Top / COM
Component Object Model
Microsoftが提唱する、部品化されたプログラムを作成・利用するための基盤となる技術仕様。
概要
- 特定の機能のみを持つプログラム部品を組み合わせる(公開されているインタフェースを介してCOMコンポーネントと通信)ことでアプリケーションソフトの開発が容易になる。
COMオブジェクト
インターフェイス
全てのCOMコンポーネントはIUnknownと呼ばれるインタフェースを継承する必要がある
COM/関数
- CoInitialize
- CoCreateInstance
- CoUninitialize?
メモ
- COM関連の関数の戻り値の型は、ほとんどHRESULT
メモ2
- DLLは簡単です。要は関数の塊です。
- LoadLibraryでメモリに展開してGetProcAddressで使いたい関数のポインタを取得して使うだけです。
- COMの場合は、関数ポインタではなくインターフェースを取得して使います。
- インターフェースはCoCreateInstanceを使って取得します。
クラスID
COMコンポーネントにはクラスID (CLSID) が割り当てられ、COMコンポーネント同士はクラスIDによって区別される。CLSIDはGUIDで構成されている。各COMコンポーネントは1つ以上のインタフェースを公開することで機能を提供している。インタフェース同士はインタフェースID (IID?) で区別される。IID?もGUIDで構成されている。
- UUID: オブジェクトやインターフェースに一意なIDを与えるために使用される一般的な規格
アパートメント
実行形態の種類