Nikolay Sivov : comctl32/dsa: Implement DSA_Clone().
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Mar 31 10:38:50 CDT 2015
Module: wine
Branch: master
Commit: ff0634dfe18b87f75d2d00e8c114d25c27f0f0a4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ff0634dfe18b87f75d2d00e8c114d25c27f0f0a4
Author: Nikolay Sivov <nsivov at codeweavers.com>
Date: Tue Mar 31 08:44:23 2015 +0300
comctl32/dsa: Implement DSA_Clone().
---
dlls/comctl32/comctl32.spec | 1 +
dlls/comctl32/dsa.c | 36 ++++++++++++++++++++++++++++++++++++
2 files changed, 37 insertions(+)
diff --git a/dlls/comctl32/comctl32.spec b/dlls/comctl32/comctl32.spec
index 0bd8b13..aff8c8b 100644
--- a/dlls/comctl32/comctl32.spec
+++ b/dlls/comctl32/comctl32.spec
@@ -131,6 +131,7 @@
@ stdcall DrawShadowText(long wstr long ptr long long long long long)
@ stdcall DrawStatusText(long ptr ptr long) DrawStatusTextA
@ stdcall DrawStatusTextW(long ptr wstr long)
+@ stdcall DSA_Clone(ptr)
@ stdcall FlatSB_EnableScrollBar (long long long)
@ stdcall FlatSB_GetScrollInfo (long long ptr)
@ stdcall FlatSB_GetScrollPos (long long)
diff --git a/dlls/comctl32/dsa.c b/dlls/comctl32/dsa.c
index 71837db..73f0d30 100644
--- a/dlls/comctl32/dsa.c
+++ b/dlls/comctl32/dsa.c
@@ -434,3 +434,39 @@ void WINAPI DSA_DestroyCallback (HDSA hdsa, PFNDSAENUMCALLBACK enumProc,
DSA_EnumCallback (hdsa, enumProc, lParam);
DSA_Destroy (hdsa);
}
+
+/**************************************************************************
+ * DSA_Clone [COMCTL32.@]
+ *
+ * Creates a copy of a dsa
+ *
+ * PARAMS
+ * hdsa [I] handle to the dynamic storage array
+ *
+ * RETURNS
+ * Cloned dsa
+ */
+HDSA WINAPI DSA_Clone(HDSA hdsa)
+{
+ HDSA dest;
+ INT i;
+
+ TRACE("(%p)\n", hdsa);
+
+ if (!hdsa)
+ return NULL;
+
+ dest = DSA_Create (hdsa->nItemSize, hdsa->nGrow);
+ if (!dest)
+ return NULL;
+
+ for (i = 0; i < hdsa->nItemCount; i++) {
+ void *ptr = DSA_GetItemPtr (hdsa, i);
+ if (DSA_InsertItem (dest, DA_LAST, ptr) == -1) {
+ DSA_Destroy (dest);
+ return NULL;
+ }
+ }
+
+ return dest;
+}
More information about the wine-cvs
mailing list