Bagikan melalui


fungsi DPA_Merge (dpa_dsa.h)

[DPA_Merge tersedia melalui Windows XP dengan Paket Layanan 2 (SP2). Ini mungkin diubah atau tidak tersedia dalam versi berikutnya.]

Menggabungkan konten dua array penunjuk dinamis (DPA).

Sintaks

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

Jenis: HDPA

Handel ke DPA pertama. Array ini dapat disortir secara opsional. Ketika fungsi ini kembali, berisi handel ke array yang digabungkan.

[in] hdpaSrc

Jenis: HDPA

Handel ke DPA kedua. Array ini dapat disortir secara opsional.

[in] dwFlags

Jenis: DWORD

Opsi yang menentukan metode yang digunakan untuk menggabungkan dua array. DPAM_NORMAL, DPAM_UNION, dan DPAM_UNION saling eksklusif—hanya salah satu bendera tersebut yang dapat diatur, secara opsional bersama dengan DPAM_SORTED.

Nilai Makna
DPAM_SORTED
0x00000001
Array disortir; lewati pengurutan. Jika bendera ini tidak diatur, array diurutkan sebelum digabungkan.
DPAM_NORMAL
0x00000002
Array akhir terdiri dari semua elemen yang awalnya ada dalam hdpaDest. Jika salah satu elemen tersebut juga ditemukan di hdpaSrc, elemen-elemen tersebut digabungkan dalam array akhir. Fungsi panggilan balik PFNDPAMERGE dipanggil dengan pesan DPAMM_MERGE.

Ketika bendera ini diatur, ukuran akhir array di hdpaDest sama dengan ukuran awalnya.

DPAM_UNION
0x00000004
Array akhir adalah persatuan semua elemen di kedua array. Elemen yang ditemukan di kedua array digabungkan dalam array akhir. Elemen yang ditemukan hanya dalam satu array atau yang lain ditambahkan seperti yang ditemukan. Ketika bendera ini diatur, fungsi panggilan balik PFNDPAMERGE dapat dipanggil dengan pesan DPAMM_MERGE atau DPAMM_INSERT.

Ukuran akhir array setidaknya berukuran lebih besar dari hdpaDest dan hdpaSrc, dan paling banyak jumlah keduanya.

DPAM_INTERSECT
0x00000008
Hanya elemen yang ditemukan di hdpaSrc dan hdpaDest yang digabungkan untuk membentuk array akhir. Ketika bendera ini diatur, fungsi panggilan balik PFNDPAMERGE dapat dipanggil dengan pesan DPAMM_MERGE atau DPAMM_DELETE.

Ukuran akhir array dapat berkisar antara 0 dan yang lebih kecil dari hdpaDest dan hdpaSrc.

[in] pfnCompare

Jenis: PFNDPACOMPARE

Fungsi panggilan balik PFNDPACOMPARE yang membandingkan dua elemen, satu dari setiap DPA, untuk menentukan apakah mereka adalah item yang sama. Jika demikian, fungsi panggilan balik yang ditunjukkan oleh pfnCompare dipanggil.

[in] pfnMerge

Jenis: PFNDPAMERGE

Fungsi panggilan balik PFNDPAMERGE yang menggabungkan konten ketika elemen ditemukan di DPA dan ditemukan sebagai item yang sama dengan PFNDPACOMPARE.

[in] lParam

Jenis: LPARAM

Parameter tambahan yang digunakan untuk mendeklarasikan dasar perbandingan di mana kesetaraan ditentukan.

Nilai kembali

Jenis: BOOL

TRUE jika berhasil; jika tidak, FALSE.

Keterangan

DPA_Merge tidak diekspor berdasarkan nama. Untuk menggunakannya, Anda harus menggunakan GetProcAddress dan meminta ordinal 11 dari ComCtl32.dll untuk mendapatkan penunjuk fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header dpa_dsa.h
DLL Comctl32.dll (versi 5.0 atau yang lebih baru)