IMAPITable::CreateBookmark
适用于:Outlook 2013 | Outlook 2016
在表的当前位置创建书签。
HRESULT CreateBookmark(
BOOKMARK FAR * lpbkPosition
);
参数
lpbkPosition
[out]指向返回的 32 位书签值的指针。 此书签稍后可以在对 IMAPITable::SeekRow 方法的调用中传递。
返回值
S_OK
调用成功,并返回了预期的值。
MAPI_E_UNABLE_TO_COMPLETE
无法完成请求的操作。
备注
IMAPITable::CreateBookmark 方法通过创建名为书签的值来标记表位置。 书签可用于返回到书签标识的位置。 带书签的位置与表中该行的 对象相关联。
附件表不支持书签, CreateBookmark 的附件表实现返回MAPI_E_NO_SUPPORT。
针对实现者的说明
由于使用书签维护游标位置会产生内存开销,因此请限制可以创建的书签数。 达到该数字时,从对 CreateBookmark 的所有后续调用中返回MAPI_E_UNABLE_TO_COMPLETE。
有时,书签指向表视图中不再包含的行。 如果调用方使用此类书签,请将光标移动到下一个可见行并停止。
当调用方尝试使用一个书签,该书签指向不可见行,因为该行已被折叠,请在移动书签后返回MAPI_W_POSITION_CHANGED。 此时或在 SetCollapseState 方法中发生折叠时,可以将书签重新定位到下一个可见行。 如果在折叠行时移动书签,则必须在书签中保留一个位,以准确指示书签的移动时间:自上次使用以来或创建后从未使用过书签。
给调用方的说明
CreateBookmark 为其创建的书签分配内存。 通过调用 IMAPITable::FreeBookmark 方法释放书签的资源。