次の方法で共有


実行中の状態の入力

埋め込みオブジェクトが実行中の状態に遷移する場合、オブジェクト ハンドラーは、サーバーのみが提供するサービスを利用するために、サーバー アプリケーションを見つけて実行する必要があります。 埋め込みオブジェクトは、コンテナーによる要求を通じて明示的に実行状態に配置されます。たとえば、現在キャッシュされていない形式を描画する必要がある場合や、コンテナーのユーザーがオブジェクトをダブルクリックした場合など、何らかの操作の呼び出しに応じて OLE によって暗黙的に配置されます。

リンクされたオブジェクトが実行中の状態に遷移すると、プロセスはバインド と呼ばれます。 バインドのプロセスでは、オブジェクト ハンドラーは、格納されているモニカーにリンクのデータを検索するよう要求し、サーバー アプリケーションを実行します。

一見すると、リンクされたオブジェクトのバインドは、埋め込みオブジェクトを実行するよりも複雑ではないようです。 ただし、次の点でプロセスが複雑になります。

  • リンクは、別のコンテナーに埋め込まれているオブジェクトまたはその一部を参照できます。 この可能性は、入れ子構造の埋め込みを意味します。 このような階層への参照を解決するには、右端のメンバーから始まる 複合モニカーを再帰的に走査する必要があります。
  • リンク ソースが実行されている場合、OLE は別のインスタンスを実行するのではなく、オブジェクトの実行中のインスタンスにバインドします。 埋め込みオブジェクトが入れ子になっていて、その中の1つがリンク ソースである場合、OLE は任意の瞬間に既に実行中のオブジェクトにバインドできる必要があります。
  • オブジェクトを実行するには、オブジェクトの記憶域にアクセスする必要があります。 埋め込みオブジェクトを実行すると、OLE は読み込みプロセス中にストレージへのポインターを受け取り、OLE サーバー アプリケーションに渡します。 ただし、リンクされたオブジェクトの場合、ストレージにアクセスするための標準インターフェイスはありません。 OLE サーバー アプリケーションでは、ファイル システム インターフェイスまたはその他のメカニズムを使用できます。