次の方法で共有


メニューとリソース : サーバーの変更点

ここでは、ビジュアル編集サーバー (コンポーネント) アプリケーションのメニューなどのリソースに必要な変更内容について説明します。 3 つのモードのいずれかで起動できるため、サーバー アプリケーション メニュー構造とその他のリソースに大幅な追加が必要です。だけで、埋め込み、または場所に立っています。 「メニューとリソース (OLE)」で説明したように、最大 4 組のメニューを作成できます。 MDI のフル サーバー アプリケーションでは 4 個のメニューをすべて使用しますが、ミニサーバーでは 3 個しか使用しません。 アプリケーション ウィザードは、サーバーのタイプに応じて必要な構成のメニューを生成します。 また、生成されたメニューのカスタマイズが必要になる場合もあります。

アプリケーション ウィザードを使わない場合は、MFC のサンプル アプリケーション HIERSVR のリソース スクリプト HIERSVR.RC を参考にして、変更の実装方法を確認してください。

ここでは、次のトピックについて説明します。

サーバー メニューの変更点

サーバー (コンポネーント) アプリケーションには、OLE のビジュアル編集をサポートするためのメニュー リソースを追加する必要があります。 アプリケーションがスタンドアロン モードで実行するときに使用、メニューを変更するには、必要はありませんが、アプリケーションをビルドする前に 2 つの新しいメニュー リソースを追加する必要があります。インプレース アクティブ化をサポートする、完全にされているサーバーをサポートするには、1 つを開きます。 この 2 個のメニュー リソースは、フル サーバーとミニサーバーの両方のアプリケーションで必要です。

  • 埋め込み先編集の有効化をサポートするアプリケーションを作成するには、スタンドアロン モードで使うメニュー リソースとよく似たメニュー リソースを作成する必要があります。 このメニューには、[ファイル] メニューと [ウィンドウ] メニュー (およびデータ以外のアプリケーション操作に関するその他のメニュー) がありません。 これらのメニューはコンテナー アプリケーションが用意します。 以上、このメニューのマージの手法の例については、記事を参照してくださいメニューとリソース:メニューのマージ

  • 独立したウィンドウを開くサーバーを作成するときは、スタンドアロン モードで使うメニュー リソースとほとんど同じメニュー リソースを作成する必要があります。 このメニュー リソースに対する唯一の変更点は、複合ドキュメントに埋め込まれているオブジェクトをサーバーが操作するときに、メニュー項目の名前を書き換える点です。

これらの変更のほか、リソース ファイルに AFXOLESV.RC をインクルードする必要があります。AFXOLESV.RC は、MFC ライブラリを利用するために必要です。 このファイルは、MFC\Include サブディレクトリにあります。

サーバー アプリケーションのアクセラレータ テーブルの変更点

サーバー アプリケーションには、前述のメニュー リソースに対応する 2 個の新しいアクセラレータ キー テーブルを追加する必要があります。 第 1 のアクセラレータ テーブルは、サーバー アプリケーションが埋め込み先編集用に起動されたときに使用されます。 このテーブルには、ビューのアクセラレータ テーブルのエントリのうち、[ファイル] メニューと [ウィンドウ] メニュー用のエントリ以外がすべて含まれます。

第 2 のテーブルは、ビューのアクセラレータ テーブルとほとんど同じです。 ただし、「サーバー メニューの変更点」で説明したメニューの変更に合わせて内容を書き換えておきます。

アクセラレータ テーブルの変更例については、MFC OLE サンプル アプリケーション HIERSVR のファイル HIERSVR.RC 内の IDR_MAINFRAME に対するアクセラレータ テーブル IDR_HIERSVRTYPE_SRVR_IPIDR_HIERSVRTYPE_SRVR_EMB を比較してください。 埋め込み先編集用のテーブルには、[ファイル] メニューと [ウィンドウ] メニュー用のアクセラレータがありません。独立したウィンドウを開くときのアクセラレータ キー テーブルは、元のテーブルと同じです。

サーバー アプリケーションのストリング テーブルの変更点

サーバー アプリケーションを作成するときは、ストリング テーブルを 1 つだけ追加します。この文字列は、OLE の初期化が失敗したことを示すメッセージとして使用されます。 例として、アプリケーション ウィザードが生成するストリング テーブルのエントリを次に示します。

[ID]

文字列

IDP_OLE_INIT_FAILED

OLE の初期化に失敗しました。 OLE ライブラリが正しいバージョンのものであることを確認してください。

ミニサーバーの変更点

ミニサーバーを作成する場合も、フル サーバーと同じ変更を加えます。 ただし、ミニサーバーはスタンドアロン モードでは実行されないので、メイン メニューがかなり小さくなります。 アプリケーション ウィザードが生成するメイン メニューには、[アプリケーションの終了] と [バージョン情報] だけで構成される [ファイル] メニューだけがあります。 埋め込み先編集用と独立したウィンドウ用のメニューおよびアクセラレータは、フル サーバーのメニューと同じです。

参照

概念

メニューとリソース (OLE)

メニューとリソース : メニューの結合