DPA_Merge 函数 (dpa_dsa.h)
[DPA_Merge 通过 Windows XP 和 Service Pack 2 (SP2) 提供。 它在后续版本中可能已更改或不可用。]
将两个动态指针数组的内容合并 (DPA) 。
语法
BOOL DPA_Merge(
[in, out] HDPA hdpaDest,
[in] HDPA hdpaSrc,
[in] DWORD dwFlags,
[in] PFNDACOMPARE pfnCompare,
[in] PFNDPAMERGE pfnMerge,
[in] LPARAM lParam
);
参数
[in, out] hdpaDest
类型: HDPA
第一个 DPA 的句柄。 可以选择预排序此数组。 当此函数返回时,包含合并数组的句柄。
[in] hdpaSrc
类型: HDPA
第二个 DPA 的句柄。 可以选择预排序此数组。
[in] dwFlags
类型: DWORD
用于确定用于合并两个数组的方法的选项。 DPAM_NORMAL、DPAM_UNION和DPAM_UNION是互斥的,只能设置其中一个标志,可以选择与DPAM_SORTED结合使用。
值 | 含义 |
---|---|
|
数组是预先排序的;跳过排序。 如果未设置此标志,则会在合并数组之前对其进行排序。 |
|
最终数组由 最初存在于 hdpaDest 中的所有元素组成。 如果在 hdpaSrc 中也找到了这些元素中的任何一个,则这些元素将合并到最终数组中。 使用DPAMM_MERGE消息调用 PFNDPAMERGE 回调函数。
设置此标志后, hdpaDest 处数组的最终大小与其初始大小相同。 |
|
最后一个数组是两个数组中所有元素的并集。 在两个数组中找到的元素将合并到最终数组中。 仅在一个数组或另一个数组中找到的元素将添加为找到的元素。 设置此标志后,可以使用DPAMM_MERGE或DPAMM_INSERT消息调用 PFNDPAMERGE 回调函数。
数组的最终大小至少是 hdpaDest 和 hdpaSrc 的较大大小,并且最多是两者的总和。 |
|
只有在 hdpaSrc 和 hdpaDest 中找到的元素才会合并以形成最终数组。 设置此标志后,可以使用DPAMM_MERGE或DPAMM_DELETE消息调用 PFNDPAMERGE 回调函数。
数组的最终大小范围为 0 和 hdpaDest 和 hdpaSrc 的较小值。 |
[in] pfnCompare
类型: PFNDPACOMPARE
PFNDPACOMPARE 回调函数,用于比较两个元素(每个 DPA 中的一个元素),以确定它们是否为同一项。 如果是,则调用 pfnCompare 指向的回调函数。
[in] pfnMerge
类型: PFNDPAMERGE
PFNDPAMERGE 回调函数,当元素在两个 DPA 中找到并且由 PFNDPACOMPARE 发现为同一项时合并内容。
[in] lParam
类型: LPARAM
用于声明确定相等性的比较基础的其他参数。
返回值
类型: BOOL
如果成功,则为 TRUE;否则为 FALSE。
注解
DPA_Merge 不按名称导出。 若要使用它,必须使用 GetProcAddress 并从 ComCtl32.dll 请求序号 11 来获取函数指针。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | dpa_dsa.h |
DLL | Comctl32.dll (5.0 或更高版本) |