IMAPITable::SetCollapseState
适用于:Outlook 2013 | Outlook 2016
使用先前调用 IMAPITable::GetCollapseState 方法保存的数据重新生成分类表的当前展开或折叠状态。
HRESULT SetCollapseState(
ULONG ulFlags,
ULONG cbCollapseState,
LPBYTE pbCollapseState,
BOOKMARK FAR * lpbkLocation
);
参数
ulFlags
保留;必须为零。
cbCollapseState
[in] pbCollapseState 参数指向的结构中的字节数。
pbCollapseState
[in]指向包含重新生成表视图所需数据的结构的指针。
lpbkLocation
[out]指向书签的指针,该书签标识表中应重新生成折叠或展开状态的行。 此书签和在调用 IMAPITable::GetCollapseState 时传递的 lpbInstanceKey 参数中的实例键标识同一行。
返回值
S_OK
已成功重建分类表的状态。
MAPI_E_BUSY
另一个操作正在进行中,该操作阻止操作启动。 应允许正在进行的操作完成,或者应停止该操作。
MAPI_E_UNABLE_TO_COMPLETE
该表无法完成重新生成折叠或展开的视图。
备注
IMAPITable::SetCollapseState 方法重新建立表视图的展开或折叠状态。 SetCollapseState 和 GetCollapseState 协同工作,如下所示:
当分类表的状态即将更改时,将调用 IMAPITable::GetCollapseState ,以在更改之前保存与状态相关的所有数据。
若要将表的视图还原到其保存状态,请调用 SetCollapseState 。 GetCollapseState 保存的数据将传递给 SetCollapseState。 SetCollapseState 能够使用该数据还原状态。
SetCollapseState 返回一个书签作为输出参数,该书签标识与作为输入传递给 GetCollapseState 的实例键相同的行。
有关分类表的详细信息,请参阅 排序和分类。
针对实现者的说明
你负责验证排序顺序和限制是否与 GetCollapseState 调用时完全相同。 如果已进行更改,则不应调用 SetCollapseState ,因为结果可能不可预知。 例如,如果客户端调用 GetCollapseState ,然后在 调用SetCollapseState 之前更改排序键,则可能会发生这种情况。 为安全起检查,在继续还原之前,保存的数据仍然有效。
给调用方的说明
若要调用 SetCollapseState,必须以前名为 GetCollapseState。 对于这两种方法,建立类别的排序顺序应相同。 如果排序顺序不同, SetCollapseState 操作的结果是不可预测的。