アクティベーション (C++)

この記事では、OLE 項目のビジュアル編集におけるアクティブ化の役割について説明します。 ユーザーが OLE 項目をコンテナー ドキュメントに埋め込んだ後、それを使用することが必要になる場合があります。 そのために、ユーザーは項目をダブルクリックします。これにより、その項目がアクティブになります。 アクティブ化を伴う最も頻繁に実行されるアクティビティは編集操作です。 現在の OLE 項目の多くでは、編集のためにアクティブ化されると、現在のフレーム ウィンドウのメニューとツール バーに代わって、その項目を作成したサーバー アプリケーションに属しているメニューとツール バーが反映されます。 インプレース アクティブ化と呼ばれるこの動作により、ユーザーは、コンテナー ドキュメントのウィンドウを離れることなく、複合ドキュメント内の任意の埋め込み項目を編集できます。

また、埋め込み OLE 項目を別のウィンドウで編集することもできます。 これは、コンテナーまたはサーバー アプリケーションのいずれかがインプレース アクティブ化をサポートしていない場合に発生します。 この場合、ユーザーが埋め込み項目をダブルクリックすると、サーバー アプリケーションが別のウィンドウで起動され、埋め込み項目が独自のドキュメントとして表示されます。 ユーザーは、このウィンドウ内で項目を編集します。 編集が完了すると、ユーザーは、サーバー アプリケーションを終了してコンテナー アプリケーションに戻ります。

別の方法として、ユーザーは、[編集] メニューの [<object> Open] (<オブジェクト> を開く) コマンドを使用して "open editing (編集用に開く)" を選択できます。 これにより、オブジェクトが別のウィンドウで開きます。

Note

別ウィンドウでの埋め込み項目の編集は OLE バージョン 1 での標準動作であり、一部の OLE アプリケーションではこのスタイルの編集のみがサポートされている場合があります。

インプレース アクティブ化は、ドキュメント作成へのドキュメント中心のアプローチを促進します。 ユーザーは、複合ドキュメントを単一のエンティティとして扱い、アプリケーションを切り替えることなく作業できます。 ただし、インプレース アクティブ化は埋め込み項目に対してのみ使用され、リンク項目には使用されません。これらは別のウィンドウで編集する必要があります。 これは、リンク項目が実際には別の場所に保存されているためです。 リンク項目の編集は、データの実際のコンテキスト内、つまりデータが保存されている場所で行われます。 リンク項目の編集が別のウィンドウで行われることで、ユーザーはデータが別のドキュメントに属していることに気付きます。

MFC では、入れ子になったインプレース アクティブ化はサポートされていません。 コンテナーまたはサーバー アプリケーションをビルドしたとします。そのコンテナーまたはサーバーが別のコンテナーに埋め込まれていて、インプレースでアクティブ化されている場合、その中に埋め込まれているオブジェクトをインプレースでアクティブ化することはできません。

ユーザーが埋め込み項目をダブルクリックしたときの動作は、項目に定義されている動詞によって異なります。 詳細については、「アクティブ化: 動詞」を参照してください。

関連項目

OLE
Containers
サーバー