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と組み合わせて設定できます。
値 | 意味 |
---|---|
|
配列は事前に並べ替え済みです。並べ替えをスキップします。 このフラグが設定されていない場合、配列はマージされる前に並べ替えられます。 |
|
最後の配列は、最初に hdpaDest に存在するすべての要素で構成されます。 これらの要素のいずれかが hdpaSrc にも見つかった場合、それらの要素は最終的な配列にマージされます。
PFNDPAMERGE コールバック関数は、DPAMM_MERGE メッセージと共に呼び出されます。
このフラグを設定すると、 hdpaDest の配列の最終サイズは初期サイズと同じになります。 |
|
最後の配列は、両方の配列内のすべての要素の和集合です。 両方の配列で見つかった要素は、最終的な配列にマージされます。 1 つの配列またはもう 1 つの配列でのみ検出された要素は、見つかったとおりに追加されます。 このフラグが設定されている場合、 PFNDPAMERGE コールバック関数は、DPAMM_MERGEまたはDPAMM_INSERT メッセージと共に呼び出すことができます。
配列の最終的なサイズは、少なくとも hdpaDest と hdpaSrc の大きい方のサイズであり、最大では 2 つの合計です。 |
|
hdpaSrc と hdpaDest の両方で見つかった要素のみがマージされ、最終的な配列が形成されます。 このフラグを設定すると、 PFNDPAMERGE コールバック関数を DPAMM_MERGE または DPAMM_DELETE メッセージと共に呼び出すことができます。
配列の最終的なサイズは、0 から hdpaDest と hdpaSrc の小さい方の範囲になります。 |
[in] pfnCompare
各 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 以降) |