Share via


DPA_Merge-Funktion (dpa_dsa.h)

[DPA_Merge ist über Windows XP mit Service Pack 2 (SP2) verfügbar. Sie kann in nachfolgenden Versionen geändert oder nicht verfügbar sein.]

Kombiniert den Inhalt von zwei dynamischen Zeigerarrays (DPAs).

Syntax

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

Parameter

[in, out] hdpaDest

Typ: HDPA

Ein Handle für die erste DPA. Dieses Array kann optional vorsortiert werden. Wenn diese Funktion zurückgegeben wird, enthält das Handle für das zusammengeführte Array.

[in] hdpaSrc

Typ: HDPA

Ein Handle für die zweite DPA. Dieses Array kann optional vorsortiert werden.

[in] dwFlags

Typ: DWORD

Optionen, die die Methode bestimmen, die zum Zusammenführen der beiden Arrays verwendet wird. DPAM_NORMAL, DPAM_UNION und DPAM_UNION schließen sich gegenseitig aus– es kann nur eines dieser Flags festgelegt werden, optional in Verbindung mit DPAM_SORTED.

Wert Bedeutung
DPAM_SORTED
0x00000001
Die Arrays sind vorsortiert. Die Sortierung wird übersprungen. Wenn dieses Flag nicht festgelegt ist, werden die Arrays sortiert, bevor sie zusammengeführt werden.
DPAM_NORMAL
0x00000002
Das endgültige Array besteht aus allen Elementen, die ursprünglich in hdpaDest vorhanden sind. Wenn eines dieser Elemente auch in hdpaSrc gefunden wird, werden diese Elemente im endgültigen Array zusammengeführt. Die PFNDPAMERGE-Rückruffunktion wird mit der DPAMM_MERGE-Nachricht aufgerufen.

Wenn dieses Flag festgelegt ist, entspricht die endgültige Größe des Arrays bei hdpaDest der ursprünglichen Größe.

DPAM_UNION
0x00000004
Das letzte Array ist die Vereinigung aller Elemente in beiden Arrays. Elemente, die in beiden Arrays gefunden werden, werden im endgültigen Array zusammengeführt. Elemente, die nur in einem array oder dem anderen gefunden werden, werden als gefunden hinzugefügt. Wenn dieses Flag festgelegt ist, kann die PFNDPAMERGE-Rückruffunktion mit der DPAMM_MERGE- oder DPAMM_INSERT-Nachricht aufgerufen werden.

Die endgültige Größe des Arrays ist mindestens die Größe des größeren von hdpaDest und hdpaSrc und höchstens die Summe der beiden.

DPAM_INTERSECT
0x00000008
Nur Elemente, die in hdpaSrc und hdpaDest gefunden werden, werden zusammengeführt, um das endgültige Array zu bilden. Wenn dieses Flag festgelegt ist, kann die PFNDPAMERGE-Rückruffunktion mit der DPAMM_MERGE- oder DPAMM_DELETE-Nachricht aufgerufen werden.

Die endgültige Größe des Arrays kann zwischen 0 und der kleineren größe von hdpaDest und hdpaSrc liegen.

[in] pfnCompare

Typ: PFNDPACOMPARE

Die PFNDPACOMPARE-Rückruffunktion , die zwei Elemente vergleicht, eines aus jedem DPA, um zu bestimmen, ob es sich um dasselbe Element handelt. Wenn ja, wird die Rückruffunktion aufgerufen, auf die pfnCompare verweist.

[in] pfnMerge

Typ: PFNDPAMERGE

Die PFNDPAMERGE-Rückruffunktion , die den Inhalt zusammenführt, wenn ein Element in beiden DPAs gefunden wird und von PFNDPACOMPARE als dasselbe Element ermittelt wird.

[in] lParam

Typ: LPARAM

Zusätzlicher Parameter, der verwendet wird, um die Grundlage des Vergleichs zu deklarieren, auf der die Gleichheit bestimmt wird.

Rückgabewert

Typ: BOOL

TRUE , wenn erfolgreich; andernfalls FALSE.

Hinweise

DPA_Merge wird nicht anhand des Namens exportiert. Um sie zu verwenden, müssen Sie GetProcAddress verwenden und die Ordnungszahl 11 von ComCtl32.dll anfordern, um einen Funktionszeiger abzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile dpa_dsa.h
DLL Comctl32.dll (Version 5.0 oder höher)