DPA_Merge 函式 (dpa_dsa.h)

[DPA_Merge 可透過 Windows XP 搭配 Service Pack 2 (SP2) 取得。 後續版本可能會改變或無法使用。

結合兩個動態指標陣列的內容, (DPA) 。

語法

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

第二個 DPA 的句柄。 這個陣列可以選擇性地預先排序。

[in] dwFlags

類型: DWORD

決定用來合併兩個陣列之方法的選項。 DPAM_NORMAL、DPAM_UNION和DPAM_UNION互斥—只有其中一個旗標可以設定,選擇性地與DPAM_SORTED一起使用。

意義
DPAM_SORTED
0x00000001
陣列已預先排序;略過排序。 如果未設定此旗標,陣列會在合併之前排序。
DPAM_NORMAL
0x00000002
最終陣列是由原本存在於 hdpaDest 中的所有元素所組成。 如果 hdpaSrc 中也找到任何這些元素,這些元素就會合併到最終陣列中。 使用DPAMM_MERGE訊息呼叫 PFNDPAMERGE 回呼函式。

設定此旗標時, hdpaDest 數位列的最終大小與其初始大小相同。

DPAM_UNION
0x00000004
最後一個陣列是這兩個數位中所有項目的聯集。 這兩個陣列中找到的專案都會合併在最終陣列中。 只有一個陣列或另一個中找到的專案會如找到一樣新增。 設定此旗標時,可以使用DPAMM_MERGE或DPAMM_INSERT訊息呼叫 PFNDPAMERGE 回呼函式。

陣列的最終大小至少是較大 hdpaDesthdpaSrc 的大小,以及兩者的最大總和。

DPAM_INTERSECT
0x00000008
只有 hdpaSrchdpaDest 中找到的項目會合併成最終陣列。 設定此旗標時,可以使用DPAMM_MERGE或DPAMM_DELETE訊息呼叫 PFNDPAMERGE 回呼函式。

陣列的最終大小可以介於 0 和較小的 hdpaDesthdpaSrc 之間。

[in] pfnCompare

類型: PFNDPACOMPARE

比較兩個元素的 PFNDPACOMPARE 回呼函式,每個 DPA 各一個元素,以判斷它們是否相同專案。 如果是,則會呼叫 pfnCompare 所指向的回呼函式。

[in] pfnMerge

類型: PFNDPAMERGE

PFNDPAMERGE 回呼函式,會在 PFNDPACOMPARE 找到元素時合併內容,且找到為 PFNDPACOMPARE 的相同專案。

[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 版或更新版本)