COM/DCOM は Adobe ColdFusion(2025 リリース)で削除されました
ColdFusion は、オートメーション (実行時バインディング) COM クライアントです。 したがって、COM オブジェクトでは、IDispatch インターフェイスがサポートされている必要があります。また、メソッドの引数とプロパティは、標準のオートメーション型である必要があります。 ColdFusion では型の宣言が行われないので、呼び出し時の引数のセットアップには、オブジェクトの型情報が使用されます。 オブジェクトのデータ型があいまいな場合は、予期しない動作が発生することがあります。
ColdFusion では、グラフィカルユーザーインターフェイスを持たない、サーバーサイド COM オブジェクトのみを使用してください。 グラフィカルユーザーインターフェイスを持つオブジェクトを ColdFusion アプリケーションで呼び出すと、そのコンポーネントは、クライアントのデスクトップではなく、Web サーバーのデスクトップに表示されます。 この動作によって、ColdFusion サーバースレッドが占有され、web サーバーでリクエストが処理できなくなる場合があります。
ColdFusion では、Inproc COM オブジェクト、ローカル COM オブジェクト、またはリモート COM オブジェクトを呼び出せます。どのタイプのオブジェクトを呼び出すかは、cfobject タグの属性で指定します。
COM の必要条件
ColdFusion アプリケーションで COM コンポーネントを利用するには、少なくとも次のものが必要です。
- ColdFusion アプリケーションページで使用する COM オブジェクト (通常、DLL ファイルまたは EXE ファイル)。 これらのコンポーネントでは IDispatch インターフェイスが実装されるため、実行時バインディングを許可する必要があります。
- Microsoft OLE/COM オブジェクトビューア。Microsoft から入手できます。 このツールを使用すると、登録された COM オブジェクトを表示できます。 オブジェクトビューアを使用すると、オブジェクトのクラス情報を表示できるので、cfobject タグの class 属性を指定するときに役立ちます。また、オブジェクトでサポートされているインターフェイスを表示できるので、オブジェクトの (IDispatch インターフェイスの) プロパティおよびメソッドを確認できます。
オブジェクトの登録
オブジェクトを取得したら、ColdFusion(や他のプログラム)がそのオブジェクトを検出できるように、Windows に登録します。オブジェクトには、自動的に登録を行うセットアッププログラムを持つものもあれば、手動での登録が必要なものもあります。
Inproc オブジェクトサーバー(.dll または .ocx ファイル)を手動で登録するには、次のように、regsvr32.exe ユーティリティを使用します。
regsvr32 c:\path\servername.dll |
ローカルサーバー(.exe ファイル)を登録するには、それらのサーバーを起動するか、次のようなコマンドラインパラメーターを指定します。
C:\pathname\servername.exe -register |
コンポーネントの ProgID とメソッドの確認
多くの場合、コンポーネントのメソッドや ProgID に関する資料は、COM オブジェクトのサプライヤから入手できます。 ドキュメントがない場合は、ColdFusion の cfdump タグか OLE/COM オブジェクトビューアを使用して、コンポーネントのインターフェイスを確認できます。
cfdump タグによる COM オブジェクトインターフェイスの表示
ColdFusion 上では、ColdFusion cfdump タグを使用して、COM オブジェクトに関する次の情報を表示できます。
- パブリックメソッド
- put プロパティ
- get プロパティ
メソッドやプロパティの情報では、パラメーターやプロパティの型と、その値が in、out、optional、retval のいずれであるかが示されます。cfdump タグの出力には、オブジェクトの ProgID は含まれません。
メモ:ダンプヘッダーには、ColdFusion オブジェクトクラス(coldfusion.runtime.com.ComProxy)と、COM オブジェクトの CLSID が示されます。 |
OLE/COM オブジェクトビューアの使用
OLE/COM オブジェクトビューアをインストールすると、デフォルトで ¥mstools¥bin¥oleview.exe という実行可能ファイルがインストールされます。オブジェクトビューアを使用すると、COM オブジェクトの ProgID や、メソッドおよびプロパティを確認できます。
オブジェクトビューアにオブジェクトを表示するには、そのオブジェクトを登録しておく必要があります。詳しくは、オブジェクトの登録を参照してください。オブジェクトビューアでは、レジストリに登録されている COM オブジェクトおよびコントロールがすべて取得され、グループ別にソートされたシンプルな形式で見やすく表示されます。
カテゴリを選択してコンポーネントを選択すれば、COM オブジェクトの ProgID を確認できます。 また、オブジェクトのオペレーションのオプションも確認できます。
オブジェクトのプロパティを表示するには :
- オブジェクトビューアを開き、ウィンドウをスクロールして目的のオブジェクトを探します。
- オブジェクトビューアの左ペインで、オブジェクトを選択して展開します。
- オブジェクトを右クリックして表示します。TypeInfo も表示できます。 TypeInfo を表示すると、オブジェクトのメソッドとプロパティを確認できます。 TypeInfo 領域にアクセスできないオブジェクトもあります。TypeInfo 領域にアクセスできるかどうかは、オブジェクト作成時の設定と使用された言語によって決まります。