HrAddColumnsEx
适用于:Outlook 2013 | Outlook 2016
向现有表的开头添加或移动列。
属性 | 值 |
---|---|
标头文件: |
Mapiutil.h |
实现者: |
MAPI |
调用者: |
客户端应用程序和服务提供商 |
HRESULT HrAddColumnsEx(
LPMAPITABLE lptbl,
LPSPropTagArray lpproptagColumnsNew,
LPALLOCATEBUFFER lpAllocateBuffer,
LPFREEBUFFER lpFreeBuffer,
void (FAR * lpfnFilterColumns)(
LPSPropTagArray ptaga)
);
参数
lptbl
[in]指向受影响的 MAPI 表的指针。
lpproptagColumnsNew
[in]指向 SPropTagArray 结构的指针,该结构包含要添加或移动到表开头的属性的属性标记数组。
lpAllocateBuffer
[in]指向 MAPIAllocateBuffer 函数的指针,用于分配内存。
lpFreeBuffer
[in]指向 MAPIFreeBuffer 函数的指针,用于释放内存。
lpfnFilterColumns
[in]指向调用方提供的回调函数的指针。 如果 lpfnFilterColumns 参数设置为 NULL,则不进行回调。
ptaga
[in]指向 SPropTagArray 结构的指针,该结构包含在添加属性或移动到开头之前表中已存在的属性标记数组。 HrAddColumnsEx 将此指针作为参数传递给 lpfnFilterColumns 指向的回调函数。
返回值
S_OK
调用成功,并且指定的列已移动或添加。
备注
使用 lpproptagColumnsNew 参数传递给 HrAddColumnsEx 的属性将成为后续调用 IMAPITable::QueryRows 方法时公开的第一个属性。 表中以前未在 lpproptagColumnsNew 参数中指定的任何属性都会在所有添加和移动的属性之后公开。
如果在调用 QueryRows 时未定义任何表属性,则返回它们的属性类型PT_NULL和属性标识符PROP_ID_NULL。
给调用方的说明
HrAddColumnsEx 函数允许调用方提供回调函数来筛选表中已有的列,例如将字符串从属性类型PT_UNICODE转换为PT_STRING8。 HrAddColumnsEx 将指向以前现有列集的指针作为参数传递给回调函数。 回调函数可以更改属性标记数组中的数据,但不能添加新标记。
HrAddColumnsEx 首先调用回调函数(如果已提供回调函数),然后添加或移动指定的列,最后调用 IMAPITable::SetColumns。
lpAllocateBuffer 和 lpFreeBuffer 输入参数分别指向 MAPIAllocateBuffer 和 MAPIFreeBuffer 函数。 传递给 HrAddColumnsEx 的指针的确切值取决于调用方是客户端应用程序还是服务提供商。 客户端将指针传递给具有指定名称的 MAPI 函数。 服务提供程序传递在其初始化调用中收到的指针,或通过调用 IMAPISupport::GetMemAllocRoutines 方法检索的指针。