タイプ ライブラリを持たないサーバーに対するクライアントの作成
COM クライアントの作成:インデックス への移動
オブジェクトのリンクと埋め込み(OLE)などの一部の古い COM テクノロジーは,タイプライブラリ内に型情報を提供しません。そのかわりに,定義済みインターフェースの標準セットに依存しています。このようなオブジェクトのホストになるクライアントを作成するには,Vcl.OleCtnrs.TOleContainer コンポーネントを使用します。このコンポーネントは,ツールパレットの[System]カテゴリにあります。
TOleContainer は,Ole2 オブジェクトのホストサイトとして機能します。IOleClientSite インターフェースを実装し,オプションで IOleDocumentSite を実装します。通信の処理には OLE Verb が使用されます。
TOleContainer を使用する手順は次のとおりです。
- TOleContainer コンポーネントをフォーム上に配置します。
- ActiveX ドキュメントのホストにする場合は,AllowActiveDoc プロパティを true に設定します。
- AllowInPlace プロパティを設定して,ホスト下に置かれるオブジェクトを TOleContainer または独立したウィンドウのどちらに表示するかを指定します。
- オブジェクトの起動,停止,移動,またはサイズ変更が行われたときに応答するイベントハンドラを作成します。
- 設計時に TOleContainer オブジェクトをバインドするには,右クリックして[オブジェクトの挿入]を選択します。[オブジェクトの挿入]ダイアログで,ホストになるサーバーオブジェクトを選択します。
- 実行時に TOleContainer オブジェクトをバインドする場合は,サーバーオブジェクトを識別する方法に応じて,いくつかのメソッドを使用できます。CreateObject はプログラム ID をとり,CreateObjectFromFile はオブジェクトの保存先ファイル名をとり,CreateObjectFromInfo はオブジェクトの作成方法の情報が入ったレコードをとり,CreateLinkToFile はオブジェクトの保存先ファイル名をとり,このファイルに埋め込むのではなくリンクします。
- オブジェクトのバインドを終えると,OleObjectInterface プロパティを使ってインターフェースにアクセスできるようになります。ただし,Ole2 オブジェクトとの通信は OLE Verb に基づいていたので,サーバーへのコマンド送信には DoVerb メソッドを使用したいと考える場合が多くなります。
- サーバーオブジェクトを解放したい場合は,DestroyObject メソッドを呼び出します。