IMAPITable::ExpandRow
适用于:Outlook 2013 | Outlook 2016
展开折叠表类别,将属于该类别的叶或较低级别的标题行添加到表视图中。
HRESULT ExpandRow(
ULONG cbInstanceKey,
LPBYTE pbInstanceKey,
ULONG ulRowCount,
ULONG ulFlags,
LPSRowSet FAR * lppRows,
ULONG FAR * lpulMoreRows
);
参数
cbInstanceKey
[in] pbInstanceKey 参数指向的 PR_INSTANCE_KEY 属性中的字节计数。
pbInstanceKey
[in]指向 PR_INSTANCE_KEY 的指针 (PidTagInstanceKey) 属性,该属性标识类别的标题行。
ulRowCount
[in] lppRows 参数中要返回的最大行数。
ulFlags
保留;必须为零。
lppRows
[out]指向 SRowSet 结构的指针,该结构接收到 ulRowCount 的第一个 (,) 由于扩展而插入到表视图中的行。 这些行插入到 pbInstanceKey 参数标识的标题行之后。 如果 ulRowCount 参数为零,则 lppRows 参数可以为 NULL。
lpulMoreRows
[out]指向添加到表视图的行总数的指针。
返回值
S_OK
已成功扩展类别。
MAPI_E_NOT_FOUND
pbInstanceKey 参数标识的行不存在。
备注
IMAPITable::ExpandRow 方法展开折叠表类别,将属于该类别的叶或较低级别的标题行添加到表视图。 可以在 ulRowCount 参数中指定 lppRows 参数中要返回的行数限制。 当 ulRowCount 设置为大于零的值,并在 lppRows 指向的行集中返回一行或多行时,书签BOOKMARK_CURRENT的位置将移动到行集中最后一行之后的行。
当 ulRowCount 设置为零时,请求将零叶或较低级别的标题行添加到类别,或返回零行,因为类别中没有叶或较低级别的标题行,BOOKMARK_CURRENT的位置将设置为 pbInstanceKey 标识的行后面的行。
针对实现者的说明
不要对由于类别扩展而添加到表视图的行生成通知。
给调用方的说明
lppRows 参数指向的行集中的行数可能不等于实际添加到表的行数,即类别的整个叶或较低级别的标题行集。 可能会出现错误,例如内存不足或类别中的行数超过 ulRowCount 参数中指定的数量。 在任一情况下,BOOKMARK_CURRENT都将定位在返回的最后一行。 若要立即检索类别中的其余行,请调用 IMAPITable::QueryRows。
不要期望在类别更改其状态时收到表通知。 可以维护行的本地缓存,这些行可以通过每次 调用 ExpandRow 或 CollapseRow 进行更新。
有关分类表的详细信息,请参阅 排序和分类。
MFCMAPI 引用
有关 MFCMAPI 示例代码,请参阅下表。
文件 | 函数 | Comment |
---|---|---|
ContentsTableListCtrl.cpp |
CContentsTableListCtrl::D oExpandCollapse |
MFCMAPI 使用 IMAPITable::ExpandRow 方法展开折叠的表类别。 |