функция DPA_Merge (dpa_dsa.h)
[DPA_Merge доступна в Windows XP с пакетом обновления 2 (SP2). В последующих версиях он может быть изменен или недоступен.]
Объединяет содержимое двух динамических массивов указателей .
Синтаксис
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, эти элементы объединяются в окончательный массив. Функция обратного вызова PFNDPAMERGE вызывается с сообщением DPAMM_MERGE.
Если этот флаг установлен, окончательный размер массива в hdpaDest совпадает с его первоначальным размером. |
|
Окончательный массив — это объединение всех элементов в обоих массивах. Элементы, найденные в обоих массивах, объединяются в окончательном массиве. Элементы, найденные только в одном массиве или в другом массиве, добавляются как найденные. Если этот флаг установлен, функцию обратного вызова PFNDPAMERGE можно вызвать с сообщением DPAMM_MERGE или DPAMM_INSERT.
Окончательный размер массива — это, по крайней мере, размер больше hdpaDest и hdpaSrc, а также не более суммы двух. |
|
Для формирования окончательного массива объединяются только элементы, найденные в hdpaSrc и hdpaDest . Если этот флаг установлен, функцию обратного вызова PFNDPAMERGE можно вызвать с сообщением DPAMM_MERGE или DPAMM_DELETE.
Окончательный размер массива может варьироваться от 0 до меньшего значения hdpaDest и hdpaSrc. |
[in] pfnCompare
Тип: PFNDPACOMPARE
Функция обратного вызова PFNDPACOMPARE , которая сравнивает два элемента, по одному из каждого DPA, чтобы определить, являются ли они одним и тем же элементом. Если это так, вызывается функция обратного вызова, на которую указывает pfnCompare .
[in] pfnMerge
Тип: PFNDPAMERGE
Функция обратного вызова PFNDPAMERGE , которая объединяет содержимое при обнаружении элемента в обоих DPA и обнаруженном PFNDPACOMPARE как один и тот же элемент.
[in] lParam
Тип: LPARAM
Дополнительный параметр, используемый для объявления основы сравнения, по которой определяется равенство.
Возвращаемое значение
Тип: BOOL
Значение TRUE в случае успешного выполнения; в противном случае — FALSE.
Комментарии
DPA_Merge не экспортируется по имени. Чтобы использовать его, необходимо использовать GetProcAddress и запросить порядковый номер 11 из ComCtl32.dll, чтобы получить указатель на функцию.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | dpa_dsa.h |
DLL | Comctl32.dll (версия 5.0 или более поздняя) |