容器:客户端项状态

本文介绍了客户端项在其生存期内所经历的不同状态。

客户端项在创建、激活、修改和保存时要经历多个状态。 每次项的状态更改时,框架都会使用 OLE_CHANGED_STATE 通知调用 COleClientItem::OnChange。 第二个参数是来自 COleClientItem::ItemState 枚举的值。 该参数可以是下列值之一:

  • COleClientItem::emptyState

  • COleClientItem::loadedState

  • COleClientItem::openState

  • COleClientItem::activeState

  • COleClientItem::activeUIState

在空状态下,客户端项还不完全是一个项。 已为其分配内存,但它还没有使用 OLE 项的数据进行初始化。 这是客户端项通过调用 new 创建时的状态,但尚未执行典型的两步创建过程的第二步。

在第二步中,通过调用 COleClientItem::CreateFromFile 或其他 CreateFromxxxx 函数执行,该项将完全创建。 OLE 数据(来自文件或其他源,例如剪贴板)已与 COleClientItem-derived 对象相关联。 现在该项处于已加载状态。

当一个项在服务器的窗口中打开而不是在容器的文档中就地打开时,它就处于打开 (或完全打开) 状态。 在此状态下,通常在容器窗口中的项表示形式上绘制一个交叉线阴影,以表明该项在其他位置处于活动状态。

当某个项就地激活时,它通常只会短暂地通过激活状态。 然后它会进入 UI 活动状态,在该状态下,服务器将其菜单、工具栏和其他用户界面组件与容器的组件合并在一起。 这些用户界面组件的存在用于将 UI 活动状态与活动状态区分开来。 否则,活动状态类似于 UI 活动状态。 如果服务器支持撤消,则服务器需要保留 OLE 项的撤消状态信息,直到它达到已加载或打开状态。

另请参阅

容器
激活
容器:客户端项通知
跟踪器
CRectTracker 类