Share via


DPA_Merge関数 (dpa_dsa.h)

[DPA_Merge は、Service Pack 2 (SP2) を使用して Windows XP から入手できます。 以降のバージョンでは、変更または使用できない可能性があります。

2 つの動的ポインター配列 (DBA) の内容を結合します。

構文

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

2 番目の DPA へのハンドル。 この配列は、必要に応じて事前に並べ替えることができます。

[in] dwFlags

型: DWORD

2 つの配列のマージに使用するメソッドを決定するオプション。 DPAM_NORMAL、DPAM_UNION、およびDPAM_UNIONは相互に排他的です。これらのフラグの 1 つだけを設定でき、必要に応じてDPAM_SORTEDと組み合わせて設定できます。

意味
DPAM_SORTED
0x00000001
配列は事前に並べ替え済みです。並べ替えをスキップします。 このフラグが設定されていない場合、配列はマージされる前に並べ替えられます。
DPAM_NORMAL
0x00000002
最後の配列は、最初に hdpaDest に存在するすべての要素で構成されます。 これらの要素のいずれかが hdpaSrc にも見つかった場合、それらの要素は最終的な配列にマージされます。 PFNDPAMERGE コールバック関数は、DPAMM_MERGE メッセージと共に呼び出されます。

このフラグを設定すると、 hdpaDest の配列の最終サイズは初期サイズと同じになります。

DPAM_UNION
0x00000004
最後の配列は、両方の配列内のすべての要素の和集合です。 両方の配列で見つかった要素は、最終的な配列にマージされます。 1 つの配列またはもう 1 つの配列でのみ検出された要素は、見つかったとおりに追加されます。 このフラグが設定されている場合、 PFNDPAMERGE コールバック関数は、DPAMM_MERGEまたはDPAMM_INSERT メッセージと共に呼び出すことができます。

配列の最終的なサイズは、少なくとも hdpaDesthdpaSrc の大きい方のサイズであり、最大では 2 つの合計です。

DPAM_INTERSECT
0x00000008
hdpaSrchdpaDest の両方で見つかった要素のみがマージされ、最終的な配列が形成されます。 このフラグを設定すると、 PFNDPAMERGE コールバック関数を DPAMM_MERGE または DPAMM_DELETE メッセージと共に呼び出すことができます。

配列の最終的なサイズは、0 から hdpaDesthdpaSrc の小さい方の範囲になります。

[in] pfnCompare

型: PFNDPACOMPARE

各 DPA の 2 つの要素を比較して、それらが同じ項目であるかどうかを判断する PFNDPACOMPARE コールバック関数。 その場合、 pfnCompare が指すコールバック関数が呼び出されます。

[in] pfnMerge

種類: PFNDPAMERGE

要素が両方の DPA で見つかり、 PFNDPACOMPARE によって同じ項目であることが判明したときにコンテンツをマージする PFNDPAMERGE コールバック関数。

[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 以降)