登録
ユーザーがアプリケーションに OLE アイテムを挿入するときは、 OLE から選択するオブジェクト型の一覧を示します。OLE は、すべてのサーバー アプリケーションから提供される情報を含むシステム登録データベースからこのリストを取得します。サーバーを登録すると、システム登録データベース (レジストリ)を提供するオブジェクト、そのほかの情報内のそれ自体へのファイル拡張子とパスの種類を、入力したエントリは記述する。
フレームワークと OLE システムのダイナミック リンク ライブラリ (DLL) はどのような OLE アイテムがシステムで使用できることを確認するには、このレジストリを使用します。OLE システム DLL は、リンクまたは埋め込みオブジェクトをアクティブにすると判断するには、このレジストリをサーバー アプリケーションを起動方法を使用します。
この技術情報がインストールされており、常に実行される場合、各サーバー アプリケーションの必要があるかを記述します。
これを更新するために使用される .reg ファイルのシステム登録データベースをフォームについての詳細については 、 OLE プログラマの手引きを参照してください。
サーバーのインストール
まず、サーバー アプリケーションをインストールすると、サポートする OLE 項目のすべての種類を登録する必要があります。スタンドアロン アプリケーションとして実行するたびに、サーバーをシステム登録データベースを更新することもできます。これにより、サーバーの実行可能ファイルが移動されて登録データベースを最新の状態に維持されます。
[!メモ]
アプリケーション ウィザードで生成する MFC アプリケーションが自動的にスタンドアロン アプリケーションとして実行した場合、自身を登録します。
インストール時にアプリケーションを登録する場合は、 RegEdit.exe のプログラムを使用します。(Windows 95、 Windows 98、および Windows ME には、 RegEdit Windows ディレクトリにあります。Windows NT、および Windows 2000 では、 RegEdit は、 Windows System32 ディレクトリにあります)。アプリケーションのセットアップ プログラムが含まれている場合は、セットアップ プログラムによって実装される RegEdit 「/S」 appname.regがあります。(/S フラグはサイレント操作を示します。つまり、コマンドのダイアログ ボックスのレポートが正常に完了を表示します。)それ以外の場合は、ユーザーに RegEdit を手動で実行するように指示します。
[!メモ]
アプリケーション ウィザードで作成した .reg ファイルは、実行可能ファイルの完全パスが含まれていません。インストール プログラムで完全パスが実行可能ファイルに含めるか、インストール ディレクトリが含まれるようにパスの環境変数を変更して .reg ファイルを変更する必要があります。
RegEdit は登録データベースに .reg のテキスト ファイルの内容をマージします。データベースを確認または修正するには、レジストリ エディターを使用します。必要な OLE エントリを削除することを回避お元気で。(Windows 95、 Windows 98、および Windows ME には、レジストリ エディター RegEdit.exe です。Windows NT、および Windows 2000 では、 RegEdit32.exe です)。
サーバー初期化
アプリケーション ウィザードとサーバー アプリケーションを作成するときに、ウィザードによってすべての初期化タスクを自動的に実行します。このセクションでは、サーバー アプリケーションを手動で記述する必要があるかを記述します。
サーバー アプリケーションがコンテナー アプリケーションが起動したときに、 OLE システム DLL はサーバーのコマンド ラインに 「」 /Embedding オプションを追加します。サーバー アプリケーションの動作は、がである 「/Embedding」のチェックや 「開始すると、コンテナーによって起動されるため、最初に、アプリケーション -」コマンド ラインのオプションを埋め込むようにする必要があるかどうかによって異なります。このスイッチがある場合は、開くとしてサーバーをリソースの異なる設定を読み取り、埋め込み先編集するか、完全に。詳細については、 メニューとリソース: サーバー加算を参照してください。
サーバー アプリケーションは、コマンド ラインを解析するに CWinApp::RunEmbedded の関数をダイヤルする必要があります。これがゼロ以外の値を返した場合、アプリケーションはスタンドアロン アプリケーションとしてコンテナー アプリケーションから実行するためにペインを、表示することはできません。この関数は、システム登録データベースのサーバーのエントリを更新し、インスタンスの登録を実行するための RegisterAll のメンバー関数をダイヤルします。
サーバー アプリケーションが起動すると、インスタンスの登録を実行できることを確認します。インスタンスの登録は、サーバーがアクティブ、コンテナーから要求を受け取る準備ができたら、 OLE システム DLL を通知します。これは、登録データベースにエントリを追加しません。ConnectTemplate のメンバー関数を COleTemplateServerによって定義されて呼び出して、サーバーのインスタンスの登録を実行します。これは COleTemplateServer のオブジェクトへの CDocTemplate のオブジェクトを接続します。
ConnectTemplate の関数は 3 の三つのパラメーターをとります: CDocTemplate のオブジェクトに対するサーバーの CLSID、ポインター、およびサーバーが複数のインスタンスをサポートするかどうかを示すフラグ。ミニサーバーは複数のインスタンスをサポートする必要があります。つまり、同時に実行すると、各コンテナーの 1 つがサーバー上の複数のインスタンスが可能である必要があります。その結果ミニサーバーを起動するときに、このフラグのパス TRUE 。
ミニサーバーを作成する場合、定義上、コンテナーによって常に起動します。まだ 「/Embedding」オプションをチェックするコマンド ラインを解析する必要があります。コマンド ラインでこのオプションの休暇期間は、ユーザーがスタンドアロン アプリケーションとしてミニサーバーを起動したことを意味します。この場合、システム登録データベースがインストールされているサーバーを登録し、コンテナー アプリケーションからミニサーバーを起動するようにユーザーに通知するメッセージ ボックスが表示されます。