OLE のダイアログ ボックス
更新 : 2007 年 11 月
OLE 対応アプリケーションの実行中に、そのアプリケーションの操作を実行するためにユーザーからの情報が必要になることがあります。MFC OLE クラスでは、必要な情報を収集するためのダイアログ ボックスがいくつか用意されています。ここでは、OLE ダイアログ ボックスで処理されるタスク、およびそれらのダイアログ ボックスを表示するために必要なクラスを紹介します。OLE ダイアログ ボックスと、ダイアログ ボックスの動作をカスタマイズするために使用する構造体の詳細については、「MFC リファレンス」を参照してください。
[オブジェクトの挿入]
このダイアログ ボックスでは、ユーザーは新規作成のオブジェクトまたは既存のオブジェクトを複合ドキュメントに挿入できます。さらに、アイテムのアイコン表示を選択したり、[アイコンの変更] コマンド ボタンを使用したりすることもできます。このダイアログ ボックスは、ユーザーが [編集] メニューの [オブジェクトの挿入] をクリックしたときに表示されます。ダイアログ ボックスを表示するには、COleInsertDialog クラスを使います。MDI アプリケーション自身に MDI アプリケーションを埋め込むことはできません。SDI アプリケーションでない限り、コンテナ/サーバー アプリケーションにそのアプリケーション自身を埋め込むことはできません。[形式を選択して貼り付け]
このダイアログ ボックスでは、ユーザーはデータを複合ドキュメントに貼り付けるときに使用する書式を制御できます。ユーザーは、データの書式、データが埋め込まれるのかリンクされるのか、およびデータがアイコンとして表示されるのかどうかを選択できます。このダイアログ ボックスは、ユーザーが [編集] メニューの [形式を選択して貼り付け] をクリックしたときに表示されます。ダイアログ ボックスを表示するには、COlePasteSpecialDialog クラスを使います。[アイコンの変更]
このダイアログ ボックスでは、ユーザーはリンク アイテムまたは埋め込みアイテムを表すために表示するアイコンを選択できます。このダイアログ ボックスは、ユーザーが [編集] メニューの [アイコンの変更] をクリックしたとき、あるいは [形式を選択して貼り付け] ダイアログ ボックスまたは [変換] ダイアログ ボックスの [アイコンの変更] をクリックしたときに表示されます。また、このダイアログ ボックスは、ユーザーが [オブジェクトの挿入] ダイアログ ボックスを開いて [アイコンで表示] をクリックしたときにも表示されます。ダイアログ ボックスを表示するには、COleChangeIconDialog クラスを使います。[変換]
このダイアログ ボックスでは、ユーザーは埋め込みアイテムまたはリンク アイテムの種類を変更できます。たとえば、複合ドキュメントに既にメタファイルが埋め込まれていて、後から別のアプリケーションを使用してそのメタファイルを修正する必要がある場合に、[変換] ダイアログ ボックスを使用できます。通常、このダイアログ ボックスは、[編集] メニューの [ <オブジェクト名> オブジェクト] をポイントし、[変換] をクリックしたときに表示されます。ダイアログ ボックスを表示するには、COleConvertDialog クラスを使います。例については、MFC OLE のサンプル OCLIENT を実行してください。[リンク] または [リンク元の変更]
[リンク] ダイアログ ボックスでは、ユーザーはリンク オブジェクトのソースに関する情報を変更できます。[リンク元の変更] ダイアログ ボックスでは、現在のダイアログ ボックスのすべてのリンク アイテムのソースが検査され、必要に応じて [リンク] ダイアログ ボックスが表示されます。[リンク] ダイアログ ボックスは、ユーザーが [編集] メニューの [リンク] をクリックしたときに表示されます。通常、[リンク元の変更] ダイアログ ボックスは、複合ドキュメントが初めて開いたときに表示されます。どのダイアログ ボックスを表示する必要があるのかに応じて、COleLinksDialog クラスまたは COleUpdateDialog クラスを使い分けます。[サーバーを使用できません] または [サーバーが応答しません]
[サーバーを使用できません] ダイアログ ボックスは、ユーザーがアイテムをアクティブにしようとしたが、別のユーザーまたはタスクによって使用されているためにサーバーで要求を処理できない場合に表示されます。[サーバーが応答しません] ダイアログ ボックスは、アクティベーション要求の応答がサーバーからまったくない場合に表示されます。これらのダイアログ ボックスは、OLE インターフェイスの IMessageFilter の実装に基づいて COleMessageFilter を通じて表示されます。ユーザーは、アクティベーション要求を再試行するかどうかを選択できます。ダイアログ ボックスを表示するには、COleBusyDialog クラスを使います。