Partager via


fonction DPA_Merge (dpa_dsa.h)

[DPA_Merge est disponible via Windows XP avec Service Pack 2 (SP2). Il peut être modifié ou indisponible dans les versions suivantes.]

Combine le contenu de deux tableaux de pointeurs dynamiques (DPA).

Syntaxe

BOOL DPA_Merge(
  [in, out] HDPA         hdpaDest,
  [in]      HDPA         hdpaSrc,
  [in]      DWORD        dwFlags,
  [in]      PFNDACOMPARE pfnCompare,
  [in]      PFNDPAMERGE  pfnMerge,
  [in]      LPARAM       lParam
);

Paramètres

[in, out] hdpaDest

Type : HDPA

Handle du premier DPA. Ce tableau peut être éventuellement pré-trié. Lorsque cette fonction retourne, contient le handle du tableau fusionné.

[in] hdpaSrc

Type : HDPA

Handle du deuxième DPA. Ce tableau peut être éventuellement pré-trié.

[in] dwFlags

Type : DWORD

Options déterminant la méthode utilisée pour fusionner les deux tableaux. DPAM_NORMAL, DPAM_UNION et DPAM_UNION s’excluent mutuellement : un seul de ces indicateurs peut être défini, éventuellement conjointement avec DPAM_SORTED.

Valeur Signification
DPAM_SORTED
0x00000001
Les tableaux sont pré-triés ; ignorer le tri. Si cet indicateur n’est pas défini, les tableaux sont triés avant leur fusion.
DPAM_NORMAL
0x00000002
Le tableau final se compose de tous les éléments initialement présents dans hdpaDest. Si l’un de ces éléments se trouve également dans hdpaSrc, ces éléments sont fusionnés dans le tableau final. La fonction de rappel PFNDPAMERGE est appelée avec le message DPAMM_MERGE.

Lorsque cet indicateur est défini, la taille finale du tableau à hdpaDest est identique à sa taille initiale.

DPAM_UNION
0x00000004
Le tableau final est l’union de tous les éléments des deux tableaux. Les éléments trouvés dans les deux tableaux sont fusionnés dans le tableau final. Les éléments trouvés dans un seul tableau ou l’autre sont ajoutés tels qu’ils ont été trouvés. Lorsque cet indicateur est défini, la fonction de rappel PFNDPAMERGE peut être appelée avec le message DPAMM_MERGE ou DPAMM_INSERT.

La taille finale du tableau correspond au moins à la taille du plus grand de hdpaDest et hdpaSrc, et au plus la somme des deux.

DPAM_INTERSECT
0x00000008
Seuls les éléments trouvés dans hdpaSrc et hdpaDest sont fusionnés pour former le tableau final. Lorsque cet indicateur est défini, la fonction de rappel PFNDPAMERGE peut être appelée avec le message DPAMM_MERGE ou DPAMM_DELETE.

La taille finale du tableau peut varier entre 0 et la plus petite de hdpaDest et hdpaSrc.

[in] pfnCompare

Type : PFNDPACOMPARE

Fonction de rappel PFNDPACOMPARE qui compare deux éléments, un de chaque DPA, pour déterminer s’il s’agit du même élément. Si c’est le cas, la fonction de rappel pointée par pfnCompare est appelée.

[in] pfnMerge

Type : PFNDPAMERGE

Fonction de rappel PFNDPAMERGE qui fusionne le contenu lorsqu’un élément se trouve dans les deux DPA et qu’il s’avère être le même élément par PFNDPACOMPARE.

[in] lParam

Type : LPARAM

Paramètre supplémentaire utilisé pour déclarer la base de comparaison sur laquelle l’égalité est déterminée.

Valeur retournée

Type : BOOL

TRUE en cas de réussite ; sinon, FALSE.

Remarques

DPA_Merge n’est pas exporté par nom. Pour l’utiliser, vous devez utiliser GetProcAddress et demander l’ordinal 11 à ComCtl32.dll pour obtenir un pointeur de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête dpa_dsa.h
DLL Comctl32.dll (version 5.0 ou ultérieure)