コンテナ : クライアント アイテムの状態

更新 : 2007 年 11 月

ここでは、クライアント アイテムが作成されてから破棄されるまでの状態について説明します。

クライアント アイテムは、作成、アクティブ化、変更、保存などの操作を受けると、それに応じた状態に移行します。状態が変化すると、フレームワークは OLE_CHANGED_STATE を指定して関数 COleClientItem::OnChange を呼び出します。2 番目のパラメータは、COleClientItem::ItemState 列挙値で定義されている値です。次のいずれかの値になります。

  • COleClientItem::emptyState

  • COleClientItem::loadedState

  • COleClientItem::openState

  • COleClientItem::activeState

  • COleClientItem::activeUIState

"empty" (空) の状態では、クライアント アイテムはまだ完全なアイテムになっていません。メモリは割り当てられていますが、OLE アイテムのデータで初期化されていません。通常、アイテムは 2 工程で作成されます。"empty" 状態では、前段階の new 演算子の呼び出しは行われましたが、2 段階目の処理がまだ実行されていません。

2 段階目の処理では、関数 COleClientItem::CreateFromFile か、または別の関数 CreateFromxxxx が呼び出され、アイテムの生成が完了します。OLE データ (ファイルやクリップボードなどから得られるデータ) は COleClientItem の派生クラスのオブジェクトに関連付けられます。これで、アイテムの状態が "loaded" (読み込み済み) になります。

アイテムが、コンテナのドキュメントではなく (埋め込み先編集でなく)、サーバーのウィンドウで開かれた場合、アイテムは "open" (オープン) 状態 (つまり完全に開かれた状態) になります。この状態では、コンテナ ウィンドウ内のアイテムは斜線付きで表示され、アイテムが別の場所でアクティブになっていることを示します。

アイテムの埋め込み先編集が有効になると、アイテムは短時間 "active" (アクティブ) 状態になります。サーバーのメニュー、ツール バーなどのユーザー インターフェイス コンポーネントがコンテナで使えるようになると、"UI active" (UI アクティブ) 状態になります。"UI active" 状態と "active" 状態ではユーザー インターフェイス コンポーネントが異なります。これ以外の点では両者は類似しています。サーバーが元に戻す機能をサポートしている場合は、"loaded" 状態または "open" 状態になるまで、OLE アイテムの状態を元に戻すための情報を残しておく必要があります。

参照

概念

コンテナ

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

コンテナ : クライアント アイテムへの通知

トラッカ

参照

CRectTracker クラス