ユーザーが OLE 対応アプリケーションを実行している間、アプリケーションで操作を実行するためにユーザーからの情報が必要な場合があります。 MFC OLE クラスには、必要な情報を収集するための既定のダイアログ ボックスが用意されています。 この記事では、OLE ダイアログ ボックスで処理されるタスクと、それらのダイアログ ボックスを表示するために必要なクラスの一覧を示します。 OLE ダイアログ ボックスとその動作のカスタマイズに使用される構造体の詳細については、「 MFC リファレンス」を参照してください。
一般的なダイアログ ボックス
オブジェクトの挿入
このダイアログ ボックスを使用すると、新しく作成されたオブジェクトまたは既存のオブジェクトを複合ドキュメントに挿入できます。 また、ユーザーは項目をアイコンとして表示し、[アイコンの変更] コマンド ボタンを有効にすることもできます。 ユーザーが [編集] メニューから [オブジェクトの挿入] を選択したときに、このダイアログ ボックスを表示します。 このダイアログ ボックスを表示するには、 COleInsertDialog
クラスを使用します。 MDI アプリケーションをそれ自体に挿入することはできません。 コンテナー/サーバーであるアプリケーションは、SDI アプリケーションでない限り、それ自体に挿入することはできません。
特殊な貼り付け
このダイアログ ボックスでは、データを複合ドキュメントに貼り付けるときに使用する形式をユーザーが制御できます。 ユーザーは、データの形式、データを埋め込むかリンクするか、アイコンとして表示するかを選択できます。 ユーザーが [編集] メニューから [特別な貼り付け] を選択したときに、このダイアログ ボックスを表示します。 このダイアログ ボックスを表示するには、 COlePasteSpecialDialog
クラスを使用します。
変更アイコン
このダイアログ ボックスでは、リンクされたアイテムまたは埋め込みアイテムを表すアイコンを選択できます。 ユーザーが [編集] メニューから [変更] アイコンを選択するか、[貼り付け] ダイアログ ボックスまたは [変換] ダイアログ ボックスで [アイコンの変更] ボタンを選択したときに、このダイアログ ボックスを表示します。 また、ユーザーが [オブジェクトの挿入] ダイアログ ボックスを開き、[アイコンとして表示] を選択したときにも表示されます。 このダイアログ ボックスを表示するには、 COleChangeIconDialog
クラスを使用します。
コンバート
このダイアログ ボックスを使用すると、ユーザーは埋め込みまたはリンクされたアイテムの種類を変更できます。 たとえば、複合ドキュメントにメタファイルを埋め込み、後で別のアプリケーションを使用して埋め込みメタファイルを変更する場合は、[変換] ダイアログ ボックスを使用できます。 このダイアログ ボックスは、多くの場合、[編集] メニューの 項目の種類 [オブジェクト] をクリックし、カスケード メニューの [変換] をクリックして表示されます。 このダイアログ ボックスを表示するには、 COleConvertDialog
クラスを使用します。 たとえば、MFC OLE サンプル OCLIENT を実行します。
リンクの編集またはリンクの更新
[リンクの編集] ダイアログ ボックスを使用すると、リンク オブジェクトのソースに関する情報をユーザーが変更できます。 [リンクの更新] ダイアログ ボックスは、現在のダイアログ ボックス内のすべてのリンクされたアイテムのソースを確認し、必要に応じて [リンクの編集] ダイアログ ボックスを表示します。 ユーザーが [編集] メニューから [リンク] を選択すると、[リンクの編集] ダイアログ ボックスを表示します。 通常、[リンクの更新] ダイアログ ボックスは、複合ドキュメントを初めて開いたときに表示されます。 表示するダイアログ ボックスに応じて、 COleLinksDialog
または COleUpdateDialog
クラスを使用します。
サーバービジー状態またはサーバーが応答しない
ユーザーがアイテムのアクティブ化を試み、サーバーが現在要求を処理できない場合(通常は、サーバーが別のユーザーまたはタスクによって使用されているため)、サーバービジーダイアログ ボックスが表示されます。 サーバーがアクティブ化要求にまったく応答しない場合は、[サーバーが応答しない] ダイアログ ボックスが表示されます。 これらのダイアログ ボックスは、OLE インターフェイス IMessageFilter
の実装に基づいて、COleMessageFilter
を介して表示され、ユーザーはアクティブ化要求を再試行するかどうかを決定できます。 このダイアログ ボックスを表示するには、 COleBusyDialog
クラスを使用します。